Silverlight 2 RC0 - Important & Less Obvious things developers need to know
Silverlight 2 RC0 is released to the public. Yay! With this release, there are a lot of changes to the way Microsoft is doing things and behind the scenes (if you read into some of the posts) how things are going to shape up for the RTM release. So after reading a lot of information and playing with RC0, I decided to write a small article on what is important in this release for developers. I am not trying to rehash what other posts said, but focus on the main & important issues every Silverlight developer should know about the RC0 release.
Silverlight 2 RC0 is a Developers release ONLY
There is no non-developer runtime that is available for public deployments. Before you go off and uninstall Beta 2, make sure you understand the ramifications of this. RIA shops who are building Silverlight applications and have client demos or betas for clients SHOULD keep Beta 2 installed. RC0 should be used for developer testing and getting ready for RTM. The entire purpose of this release is just to get developers ready for Silverlight.
RC0 is "feature complete"
If you were hoping for a certain feature inside Silverlight, give RC0 a run. Most likely if it is not in RC0, it will not be there in Silverlight 2 RTM. For example, the two biggest features on my wishlist for RTM were: WS compliant WCF binding support and printing. Both of these will not be in RTM version. The nice thing is they are done adding features and changing stuff on developers. However, the downside is that some of the features people were hoping for are not in this release cycle.
Still no official Silverlight 2 RTM release date
Microsoft has updated their release date for Silverlight 2 RTM for "later this year". I don't know if this means Novemeber (PDC, Devconnections) or December. However, that date could slip. Earlier this year Microsoft was targeting a "late summer" release for Silverlight 2 RTM. With RC0 being a "developer only" release, you need to plan your development accordingly. This might include continuing with Beta 2 while keeping in mind the breaking changes so that your upgrade path to RTM is easy.
What is going on with Expression Suite (Blend) ?
Those who have been working with Silverlight for a while will note that with each Silverlight Beta release Microsoft released a new update to Expression Blend 2.5. Since the RTM release is almost upon us, Microsoft has given us insight on the version of Blend that will work with Silverlight 2 RTM. Blend 2.0 + SP1 will work with Silverlight 2 RC0 and eventually Silverlight 2 RTM. The nice point there is that those that invested in Expression Blend 2.0 several months ago will not have to upgrade to a new version and simply will have to download the SP1 upgrade.
For those that have not purchased the Expression 2.0 Studio or Blend 2.0, it might be a good time to purchase it or plan for it in your budget. If you do not have Expression Blend 2.0, you can:
I would recommend purchasing the Expression Professional Subscription if you do not already have an MSDN subscription and are looking to get the best value. For $999, you get the Expression Studio 2 (699) and Visual Studio/Office/Vista, etc. So for $300 more, you get a lot more Microsoft developer licenses.
Base Controls and additional controls
Silverlight RC0 adds a few more controls to the Silverlight 2 gallery: ComboBox, Password text box and a progress bar. That is all the controls you should expect to see inside Silverlight 2 RTM. However, Shawn Burke a couple of weeks ago gave some additional insight on additional controls that are going to be added. The Silverlight controls are going to be released in a similar model in which the AJAX Control Toolkit was released:
- Controls will be posted on CodePlex (source code available)
- They will have frequent releases (every 2 months)
- Once the controls get baked and are heavily requested by customers, they might make it into the Silverlight Core product
This is very cool news! Since the release cycle of Silverlight 2 (going back to Silverlight 1.1 Alpha last year) has been pretty long, it would suck if Microsoft didn't adopt his add-in model. This is going to work out really great because it will allow the community to participate in some of the innovation of the controls and possibly speed up adoption inside Silverlight. Plus, you get to learn from the best on control development.
Look and feel upgrade(s)
Scott Guthrie outlined in his latest article the improved look and feel for RC0 and the RTM release. There have been additional themes released by individuals that were pretty cool but not always complete. Scott mentioned that after the RTM release, there will be additional themes made available for Silverlight. Hopefully this has some additional integration with Blend. This is pretty positive news (the same way that Microsoft will add more controls after the RTM release) Non-designers don't have to struggle to create their own or rely on just third party themes. Hopefully that is released seamlessly into the Silverlight or Expression Suite stack.
Silverlight 2 Client Runtime
Microsoft confirmed that when Silverlight 2 RTM ships, all the client runtimes will automatically upgrade to Silverlight 2 RTM from Silverlight Beta 1/2. Once your product is ready to ship, you should be okay. However, you want to make sure the release date coordinates with your product release. As the runtime updates are controlled by Microsoft, your product might stop working. Plan accordingly.
Silverlight 2 Best Practices
With RC0 and RTM probably around the corner, the codebase is pretty much done. Now you will have a flurry of articles from the Microsoft team, MVPs and others on how best to implement certain features using Silverlight 2 RTM. For example, printing is not available but this does not stop you from using the HTML access inside Silverlight. Furthermore, using the MVC design inside Silverlight will become a little more refined. Other "tips and hacks" will come over time; however, you do not want to spin your wheels for 2 weeks trying to figure out something or writing your own when either someone has already done it or someone can point you in the right direction. In the next couple of weeks/months, Google should become your best friend for Silverlight content!
Once Silverlight 2 is out there, it is going to be a large release of Silverlight eye candy. I think these products will largely replace existing Web 1.0/2.0 features in small chunks. To me, this reminds me of when the XBOX 360 came out. The games looked a little better than the XBOX but nothing blew me away. The next generation of games is where the innovation started. In my opinion, the same concept applies to Silverlight 2. Don't think just by adding a carousel, cool intro screen or some animations is it. Think of what RIA technology inside Silverlight 2 RTM brings to life and how it can REVOLUTIONIZE a business. The big picture risks always pay the biggest dividends in the long run. The main reason I say this is that Silverlight RIA becomes different than just a "copy" of the Flash/Flex RIA applications.
Microsoft is doing the same. As I mentioned above, they are going to be releasing additional themes & controls (possibly other back-end libraries). Silverlight 2 RTM is not going to end with the core library release and the innovation should continue on both sides (Microsoft's and yours).
Note: I have made a promise to myself not to rehash other people's ideas and provide original content with my information. This is why I post infrequently and you will never see posts "Silverlight is out" with a download link. Having said that, there are a lot of details and information I am omitting from this article. For further information about Silverlight 2 RC0, check out Tim Heuer's blog articl on this or Scott Guthrie's blog.