PDC09 News

November 19, 2009

Unfortunately I’m not at PDC09, but luckily the keynote today was being streamed (I will be on a bandwidth diet for the remainder of the month now) and came with some brilliant news for Silverlight business application developers.

After a laptop giveaway that was very Oprah (everyone gets free multitouch laptops!), the Gu came out (aka Scott Guthrie) for an epic keynote that even included an appearance by Scott Hanselman.  The announcement of Silverlight 4 was pretty much expected, but the breadth of new features it will contain pretty much takes away most reasons people will find to use WPF over Silverlight.  There was announcement after announcement after announcement – with major new features just receiving a single bullet point on the slides.  What has been included in the (expected) 5mb runtime is phenomenal.  I’m not going to go into all these features as Tim Heuer has done a fantasic job (as usual) of writing those up, but I will skim over what (in a business sense) I see as being important to business application developers.  Obviously the UserVoice site demonstrated its value, with people being able to vote on their most requested features.  Apparently 9 of the top 10 voted feature requests have been implemented in Silverlight 4 (although I’m not so sure of that regarding mobile incl. iPhone support).  Certainly the ones I voted for and really wanted are now included!

  • Printing + Print Preview – everyone wanted that.  Will stop the “Silverlight’s not ready for business because it can’t print” crowd (although I wrote up ways around that).
  • Commanding!  So important for MVVM.  MVVM will finally not need (as many?) nasty hacks.
  • MEF support!  I’m yet to discover this fully though as it was not covered in the keynote.
  • Rich text box – great news for displaying and editing documents.  I’m yet to find out if/how XPS documents get supported.
  • Drop target support – Scott Gu demonstrated dragging a Word document onto a Silverlight application which opened in the Rich text box!  Still need to see details of this example as to how it was achieved.
  • Web browser control – host any web page (including Flash even!) in your app.  So cool for integration and migration possiblities.
  • Clipboard support!  Demo included copying the contents of an entire datagrid into Excel – very cool.
  • IDataErrorInfo for validation.  Is this the end of nasty exceptions being raised for validation – I’m still to find out.
  • RIA Services – released version to work with the VS2010 beta 2.  I still need to investigate the other new features – I’m not sure what they are yet.  At least I can now write the RIA Services chapter of my VS2010 book!
  • WCF bindings – I believe I heard something about a wider range of bindings now available in WCF?  Hopefully wsHttpBinding.  I need to investigate.
  • Scroll wheel support in all of the controls out of the box (I don’t know why this wasn’t in V3 actually).
  • More data bindings (I believe – still to investigate if it’s on par with WPF now).
  • Implicit Styling – now themes can be developed without needing the (not so bad) hack that was the ImplicitStyleManager.
  • Out of sandbox, including accessing files on the client machine (user profile folders only) which is a big boon for a more streamlined user experience.  Also allows apps to be run with elevated trust.
  • COM object access, enabling integration with Office applications!  Not much good for cross platform support though.
  • Right-click / context menu support
  • Mention of keyboard support in full screen mode.  Security was a big concern for why this wasn’t permitted previously, now available to trusted applications (only).
  • Cross-domain calls (for trusted applications only).
  • Somebody mentioned custom chrome on Twitter – I think that was a mix up with Google Chrome (the browser) support, as Tim’s blog entry doesn’t mention it and I don’t recall hearing it in the keynote.

As you can see (and this isn’t all the new features – just the ones I’m most interested in!) there are a ton of new features for business application developers in Silverlight 4 – really almost everything we really wanted.  I think while there will still be a use for WPF, Silverlight 4 is going to seriously reduce the requirement to use WPF and the full .NET Framework – great for developers that have to/ want to support multiple platforms too.  Now we just need the long awaited mobile support – but not mention of that :( .  I’m very excited about this release and look forward to having a good play with it so I can report on it in an informed manner.  Note that you need VS2010 beta 2 to play with this.  Looks like Silverlight 4 development won’t be supported in VS2008.  But for Silverlight development VS2010 is much much much better!  You can get the beta here.

Disclaimer – this is a preliminary summary – I can’t guaranteee just yet until I’ve played with it all that all the above is correct.  Please forgive me if I misreported something…!

Interesting stat that Scott Gu mentioned – apparently 45% of internet connected devices now have Silverlight installed.  The reach of Silverlight is rapidly expanding – and I’m guessing will even more with the Winter Olympics site in Silverlight (I believe – unfortunately the streaming viewers were not allowed to view that demo) :( .

Willoughby “Star Gazing Evening” This Saturday

September 24, 2009

Based in Sydney and not doing anything this Saturday evening?  Do you like looking up at the sky at night?  Do you want a closer look at the Moon, Jupiter, and various beautiful deep sky objects such the Jewel Box, Omega Centauri, and various Messier objects?  Don’t have a clue what I’m talking about but would like to learn a bit about astronomy?  Then join the Northern Sydney Astronomical Society (which I’m a member of) and Willoughby Council for a “star party” this Saturday September 26.  Click here for details on the council website (though there’s not much there).

I’ll have my telescope there showing people Jupiter and its moons (the 4 that are visible from Earth), and there will be 9 other telescopes set up looking at various objects in the sky (fingers crossed for good weather and no dust storms).  There will also be talks, food, and information stalls, and I’m sure lots of fun to be had.

It’s free, so come along and join us between 6pm and 9pm this Saturday at Bicentennial Reserve, Small Street, Willoughby.


Silverlight 3 Released + RIA Services Installer Issue

July 10, 2009

As you probably know already, Silverlight 3 RTW has been released.  Download the tools for Visual Studio here:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=9442b0f2-7465-417a-88f3-5e7b5409e9dd

I made the mistake of uninstalling RIA Services before installing the Silverlight 3 RTW Tools thinking it would be a part of the installer (which it wasn’t).  Silverlight 3 RTW has a new project template called Silverlight Business Application that relies on RIA Services, and doesn’t appear in Visual Studio as a project template unless RIA Services is installed.  When I found it wasn’t installed I tried to install it again the installer told me it needed the Silverlight 3 Beta SDK to be installed in order to continue!  Brad Abrams from Microsoft let me know that there would be an update to the RIA Services installer soon, but in the meantime I came up with a hack to the installer to get it to install.  Download Orca, a .msi editor from here:

http://www.technipages.com/download-orca-msi-editor.html

After installing it, right click on the RiaServices.msi file and select Edit with Orca.  Select the InstallExecuteSequence table, and change the DependencyCheck action to Installed (instead of NOT Installed).  Then select the InstallUISequence table and make the same change to its DependencyCheck action.  Save the file, and try to install it again and it should install!  It’s a hack, and should be fixed soon, but in the meantime if you’ve uninstalled RIA Services like I did or you’re just getting started with Silverlight this should get you going.

Update: No sooner than I blog this then I’m told that the July Preview of RIA Services has been released.  So much for my impatience :) .  Get it here:

http://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&displaylang=en#filelist

One more note, unfortunately the ComboBox control still doesn’t have the SelectedValuePath and SelectedValue properties for databinding in foreign key scenarios – a pet peeve of mine.  Tim Heuer from Microsoft said when I asked him that they have it down on their list but it didn’t make it this time unfortunately.


SDDN Sydney Meeting

April 30, 2009

As Miguel has posted, there is a new Silverlight Designers and Developers Network (SDDN) group starting in Sydney, and meeting for the first time this coming Tuesday, May 5th.  I will be speaking about styling in Silverlight, based upon my current article series hosted over at the SilverlightShow.net website.  I’ll be covering styling from introductory concepts through to advanced topics.  Here’s the invitation if you’d like to come along…

This meeting we will see Chris Anderson (blog), from Peer Placements will be discussing advanced styling in Silverlight for both developers and designers. Topics will cover styling strategies, tools, advanced xaml techniques, fashions, and a discussion on designing user experiences.    

Jordan Knight (Blog) from Readify will run through the exciting new features in Silverlight 3, and demonstrate how you might use them in a real working reference application. This in depth session will cover perspective 3D, pixel shaders, navigation features, out of browser and much more. Other concepts like Model-View-ViewModel, dependency injection, unit testing and designing template friendly (read designer friendly) applications will also be touched upon.  

WIN!  

Attendees will have the opportunity to win a copy of the full Expression 2 suite, worth $1000!  

When and Where?  

The date and time: Tuesday May 5 at 6:00 PM for a 6:30 PM start.  

The venue is the Pyrmont Bridge Hotel, Level 2, Pyrmont, NSW. See map for details.  

Attendance is FREE, but please RSVP by entering your details in the registration in the registration tool on the site (http://www.sddn.org.au) or send an email to info@sddn.org.au.  

Who will this group interest?  

The focus of the group is not just on developers. Traditionally developers have had great community support, whereas designers not so much… now that Silverlight 2 is out we plan to change this.  

Silverlight is as interesting for developers as it is for designers. Due in part to Silverlight’s excellent separation of design and development concerns we have new problems to solve around finding the best ways to work together.  

To this end the SDDN will facilitate an ongoing discussion and promote the development of ideas and best practices for anyone who works with Silverlight.  

To register interest head over to http://www.sddn.org.au. Use the registration tool in the header of the site.


Building a Silverlight Line-Of-Business Application – Part 7.2

April 16, 2009

After a slight delay due to preparing for my Code Camp and SDNUG presentations, here’s part 2 of my styling series.  In this article I cover fashions in UI design, choosing fonts and colours, and using animations and icons and themes.  I then take a look at some good examples of design in Silverlight.  Based on feedback from my first article I threw in some additional discussion about designing user experiences vs designing user interfaces.  You can read the article here:

http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Styling-Part-7.2.aspx


Building a Silverlight Line-Of-Business Application – Part 7.1

March 28, 2009

Part 7.1 (yes, .1) of my series on building a line-of-business application with Silverlight is now available on the SilverlightShow.net website here:

http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Styling-Part-1.aspx

This is the start of a 7 part mini-series on styling the application within my main series of building line of business applications.  As I expected (and hoped) this article (being predominantly opinion based) is generating some controversy so join in and add your own comments – the designer-developer interaction needs to be argued and discussed widely and I thought I’d get some going by prodding it with a big stick.  This is the only opinion article in this mini-series – don’t worry I’ll be getting to the real stuff soon.  The articles in this series will be released on a weekly basis so expect  part 2 in a week or so.  For these articles I’m still working in Silverlight 2 as Silverlight 3 doesn’t have a go-live license yet (and we have no idea when it will) and many people have been working with my existing framework so I want to keep helping them.  I will be noting new Silverlight 3 features throughout the articles where appropriate though that would allow you to do whatever it is in a better way.


Mix09 News

March 22, 2009

Well there’s no doubt about it, Microsoft provided masses of news for the blogosphere over the last few days from Mix09.  While (as I tried to prove through my article series) Silverlight 2 was mostly ready for building business applications, Silverlight 3 is practically designed for building business applications (assuming running in a sandboxed environment is practical for your application).  Up until now I was more or less the only person writing about building business applications in Silverlight in depth, but things will be changing – mere hours after the Silverlight 3 news announced there are numerous (and reasonably extensive) articles on implementing the new features.  I am not a believer in reinventing the wheel and writing on topics that have been covered elsewhere unless I have something different to add, so instead I’ll list what I particularly like and link to articles on each:

RIA Data Services – while not Silverlight specific per se, though it does have a tight integration with Silverlight it also has a lot of potential for all other types of applications.  Previously Microsoft has predominantly released technologies which promote a very tight linkage between the presentation layer and the database with 1:1 links between entities / business objects and database tables in a simple 2 tier/layer fashion (I’m guessing partly because it was easy and partly in order to show how easily an application can be developed in their demos), though that has absolutely no place in real-world applications for obvious reasons.  RIA Data Services finally acknowledges this is not an acceptable strategy and provides a path between database and presentation layer which is customisable at each layer, so we can finally have well structured but flexible application designs in a method that is easy to implement.  Despite my initial scepticism, I am incredibly impressed with RIA Data Services – it’s exactly what I have wanted as a business application developer forever, and I believe it is going to be absolutely revolutionary in enabling developers to build scalable, robust solutions in a standard way.  I was afraid it was going to be another “look how easily we can do this” technology we often see which has absolutely no value in major development projects but looks good from a sales/demonstration perspective, but from my first impressions it’s actually fundamentally very well designed.  I’m sure I will have feedback when I have finished incorporating it into my project, but from my initial play I am really happy where it is going and very impressed with it.  Nikhil Kothari has a good overview of the topic here.

DataGrid Update – the DataGrid control now supports grouping! I’ll now be able to swap back to using it instead of the open source DevExpress grid. In addition there is a new DataPager enabling data to be paged in the DataGrid without retrieving the entire set of data at once. With these features the Silverlight DataGrid overtakes all other platforms (WinForms, ASP.NET, and WPF) in functionality required for business applications.

DataForm – this is a means to view and edit details (such as we did in article 5 in my series), I’m guessing similar to the FormView/DetailsView control in ASP.NET. I still need to play with this more to form a full opinion but it’s looking good.

Validation – my field validation control becomes obsolete now with built in validation using per property metadata (attributes on each property in your business objects). I’m yet to see how this goes with more complicated rules other than hard coded data formatting and value ranges so I’ll reserve my opinion right now, but it does look good. Brad Abrams discusses this (and a lot of the other business related improvements) based upon his Mix09 talk here.

Out of Browser / Run on Desktop – this is pretty major – you can now right click on your Silverlight application (if enabled) and select to run the application out of the browser. The application will then be “installed” on your machine with a shortcut in the Start menu, and for all intents and purposes appear like a desktop application. As a part of the application launch it will check to see if the application has been updated and download it if so, and if not simply use the cached version. Very nice. Tim Heuer has blogged about this here.

ComboBox Nightmare – the infamous “ComboBox Nightmare” that I documented in this article with Silverlight 2 has been half fixed in Silverlight 3. Now when you have cascading dropdown lists the dropdown height will be recalculated properly each time. Unfortunately no SelectedValue support as yet which it will need to be ready for business applications. I will be lobbying for this in the final version!

Another thing worth mentioning is that the new version handles a lot of the async issues when making web service calls behind the scenes. I’m also looking forward to the ClearType font rendering promised in the final version. There are numerous other new features worthwhile checking out in addition to the ones listed above. Tim Heuer lists all the new features here.

The only problem with it all is that I have two talks in 2 weeks time (SDNUG on April 2 and Code Camp in Wagga Wagga on April 4) on building Line of Business Applications in Silverlight and this news changes everything!  I am working on new versions of the presentations now, as the vast majority of my subject matter (summary lists, server communication, edit details forms, validation, etc) is now obsolete with better solutions now available in Silverlight 3.  In fact, I think the only major topic they didn’t infringe on was my reporting solution (which Silverlight 4 will do away with if it has printing support)!  Though Silverlight 3 is in beta and doesn’t have a go-live license as yet I see little point presenting my solutions to building business applications in Silverlight 2 and the workarounds I used, as these new features change the entire landscape for developers, and though we don’t know how long it will be until go-live I see little benefit in starting developing new business applications in Silverlight 2. With these updates Silverlight is really heading in the right direction. I might even go so far to say these updates make Silverlight the best platform in their suite for building business applications upon.

Expect a new release of my business application framework for Silverlight coming sometime in the near future!  The next release will have major styling improvements (along with a 7 part article series on styling), including a drop-in DLL that will provide much of the structural framework for your application (note I am still investigating the new navigation framework in Silverlight 3 and maybe working in with that instead).  It will specifically cater for Silverlight 3 projects, providing an additional layer to what has been announced from Mix09.


Building a Silverlight Line-Of-Business Application – Part 6

January 6, 2009

Part 6 of my series on building a line-of-business application with Silverlight is now available on the SilverlightShow.net website here:

http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-6.aspx

This article is all about implementing reporting in your Silverlight application.


New Silverlight Write And Win Competition

December 18, 2008

silverlight_contest

A few months ago as I was getting into Silverlight I wrote an article on building a line of business application in Silverlight and entered it into a competition on the SilverlightShow.net website and came second.  Since then I’ve continued writing additional articles in this series for the SilverlightShow.net website that have been very popular.  Well this competition is being run again, with the details here:

http://www.silverlightshow.net/SilverlightContestWriteAndWin.aspx

When this competition was run previously the winners were determined by votes from the community.  This time however the winners will be determined by a panel of experts, of which I’ve been invited to be on.  This is quite an honour for me as I hold all the judges in very high esteem (they are the biggest names in the Silverlight community) and I feel privileged to be in their company.

There are awesome prizes on offer so if you’re looking to get into Silverlight or are looking to make a name for yourself there are good incentives to get writing.  I’m not accepting any bribes :) , but I will list some of the criteria I’d expect in the articles I give the most points to:

  • - This is an article competition, so the judging will be based upon the article itself – not the accompanying program or code.  You may write a brilliant program, but the program/code should be seen as supporting the article – it should not be seen as the entry itself.  That’s not to say the program/code isn’t important or required, but it’s not the primary focus.  So don’t spend all your time on the code then leave the article until the last minute!
  • - Not all entrants will be from an English speaking background so I won’t place a lot of emphasis on your spelling or grammar.  The article should be easy and enjoyable to read however.
  • - The quality of the article is more important than its quantity (ie. its length).  You might have noticed that my articles tend to be long (the last one coming close to 7000 words) but often shorter is better.  Clarity is the key, and the longer the article the longer you need to hold the reader’s attention for.
  • - The quality of code is not vital, but does indicate your prowess as a developer.
  • - You shouldn’t need to put swathes of code in your article – just note some interesting or unusual snippets worth mentioning.
  • - Talk about your decision making process – why you did one thing and not the other, what alternatives you had, problems you encountered, your experience working with Silverlight as opposed to other technologies, etc.
  • - The topic you choose may be rated partially on its uniqueness and its usefulness to regular Silverlight developers.  Some topics have been done to death (obtaining data from a web service is one of those) so avoid those unless you have something different to say.

These probably won’t be all the criteria, but are just those I can think of off the top of my head.  I look forward to reading your entry!


Building a Silverlight Line-Of-Business Application – Part 5

December 10, 2008

Part 5 of my series on building a line-of-business application with Silverlight is now available on the SilverlightShow.net website here:

http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-5.aspx

The focus of this article is building the data entry form for a product – it sounds simple but there were quite a few issues to workaround.