A couple of weeks ago, Microsoft released Silverlight 2 as a Release to Web (RTW) product. For us at Microsoft, this was exciting news because it represented a major milestone in presenting to you as solution developers a platform for building rich, immersive experiences on the web.
I'm not going to go through each of the features in Silverlight 2 that you have probably heard already from various sources, but I did want to take some time to talk about a few of the things that you may have missed in all the hype and announcements or not realized was possible with Silverlight in general.
Visual Web Developer 2008 Express
It used to be that you needed Visual Studio Standard or above to be able to create Silverlight applications with minimal configuration and the like. Sure, you could employ certain hacks to make Silverlight work in other tools but this was clunky and didn't lead to a great experience. With the release of Silverlight 2 RTW, you now have the ability to create Silverlight 2 applications not only with Visual Studio Standard and above, but now also with Visual Web Developer 2008 Express (which is entirely free, both to download and use without royalties).
If you use Eclipse as your development UI of choice, you now have the ability to build Silverlight 2 applications using the Eclipse Tools for Silverlight plug-in. This is the result of a partnership Microsoft created with Eclipse plug-in maker Soyatec and represents a significant step forward in Microsoft's commitment to interoperability.
Expression Blend 2 SP1
Many of you who build Silverlight 2 applications probably already know this but XAML, while extremely flexible and complete with respect to expressing user interfaces for Silverlight (and WPF for that matter) is not particularly easy to manipulate, the WPF Designer feature in Visual Studio 2008 notwithstanding. This is especially true if you plan on providing animation capabilities in your Silverlight application. For this reason, Microsoft created Expression Blend which is an interactive design tool for building great UI's for WPF and Silverlight. The problem with this tool is that you needed a special version of Expression Blend 2 in the past in order to build Silverlight applications with it. With the release of Silverlight 2, Microsoft has forgone this separate version of Blend 2 and create Expression Blend 2 SP1 which provides out-of-the-box Silverlight support. As the SP1 designation alludes to, this is a free update to anyone that has a license of Expression Blend 2. You can download SP1 for Blend 2 here.
The Silverlight Toolkit is a collection of controls you can use within your Silverlight 2 application. While not yet complete (we expect to have around 100 controls within the toolkit when all is said and done), there are a large number of extremely important controls that are available in the toolkit now, including: TreeView, DockPanel, WrapPanel, ViewBox, Expander, NumericUpDown and Autocomplete. Some of the future controls that will be included in the toolkit are DataGrid, Radio Button, CheckBox and DatePickerCharting among others.
I mentioned XAML a little earlier in this post, but I wanted to mention something else about it. While it is true that XAML is extremely rich and capable in expressing user interfaces in XML format, that isn't the half of it's real power. What makes XAML truly special is that it is an equal citizen with .NET code in defining objects and properties for your Silverlight application. That means that any object, like a Button created in the XAML code can be manipulated through .NET code. Likewise, .NET code can create a Button object to be used in the presentation layer of your Silverlight application.
Alternative Communication Methods
While HTTP is a great, general protocol for most things available on the web, there are occasions where it doesn't make the best medium for transmitting information back and forth. If you have a Silverlight application that does a great deal of talking back and forth with the server, you have the opportunity to take advantage of the power of sockets in Silverlight in order to do that communication.
Another technology you can use in your Silverlight applications is Windows Communications Foundation (WCF). WCF allows you to build Silverlight applications that have robust communication capabilities back to the server. While you don't need WCF for a Silverlight application to communicate with a server, the technology provides a great deal of goodness (like secure message transfer, custom protocol creation and robust web services implementation) that you can use with your applications. There are some good tutorials on WCF on Silverlight starting here (it's a five-part series of screencasts showing you what you need to know) and there's a great blog on WCF/Web Services enabled Silverlight applications here.
.NET Language Support
Because the Silverlight 2 plug-in for the browser contains a factored subset of the .NET framework, you can build your Silverlight apps using the power of .NET (and with .NET skills you may already have if you build .NET-enabled solutions). Because the .NET framework is largely language-independent, this means you can code your Silverlight application in your language of choice. This includes C#, VB.NET, IronRuby, IronPython, JScript, etc. The choice is yours.
These are just some of the features of Silverlight 2 that I think are important but may not be getting as much airtime as other features. I hope you found some of these points interesting and enlightening.
Are you building a Silverlight 2 application? Let me know!