Today I am going to make an attempt to analyze new features in Silverlight 5.0 and see how they fit into full picture of Microsoft efforts and their announcements regarding Silverlight and HMTL 5.
You can see full list on Scott Guthrie’s blog here. You can also read some more comments by John Papa here. You can watch keynote here.
First of all, multimedia experience in Silverlight 5 further enhances great abilities of Silverlight. Setting up live streaming is very easy in IIS 7. Also, performance of playback will be improved. All-in-all, we all already knew that Silverlight is great for media. I am a lot more interested in business applications though.
One of my biggest pet peeves is productivity. I am glad to see that Microsoft is paying attention to develop experience. Debugging on data binding errors in XAML via breakpoints is pretty neat. Having said that, binding errors are already echoed to the output window today. Default data templates can be setup for a specific type. This feature is super cool to me. I can just put my business object into XAML and it will be automatically resolved via data template and UI will be created for it. I can see that MVVM frameworks will add support for something like that to enable more transparent resolution of data into visuals. You will also be able to use data binding in styles’ property setters. This makes styles ever more powerful. There will be DataContextChanged event added. I have been missing this event ever since I started with Silverlight. One has to always play tricks to create controls that need to update themselves when their data context changes. Those tricks will no longer be needed. Markup extensions will be supported for properties and event handlers. As a result, you can create markup extensions methods that will for example just invoke a method on a view model without having to always create a command. This will make you more productive, saving you from having to write boiler plate code over and over. Ancestor type relative source will allow data binding of data template properties to the control properties that this data template support.
There are improvements in WCF stack and FCW RIA services. WS-Trust will be supported. There will be better support for complex types in RIA services, providing more comprehensive abilities for complex business scenarios. Silverlight 5 network stack will also have support for low-latency scenarios, such as frequent (almost-live) updates.
There is a number of improvement regarding text presentation. Multi-line text that flows around other visuals, clearer typography, just to name a few. Printing is finally better. You will have PostScript vector printing API will provide support for complex documents and reports. Layout transitions make building appealing interfaces much simpler. Text layout performance is greatly improved. Double-click event will be there.
Silverlight 5 will enable 3D GPU accelerated rendering. This may not be applicable for main stream line of business applications.
Out of browser support becomes literally awesome. You can now have child windows that are undocked from main window. They show up in Windows task bar as separate windows as well. You can now have infinite real estate for you applications. Also, you can now invoke WIn32 API directly from out-of-browser and in-browser. If a policy is configures, you can literally export to Word using dynamics and launch Word with new document while in browser. Users will have more control over sandboxing without compromising security. You will also be able to access hardware devices by utilizing COM interop. You can have better kiosk support via on screen keyboard in full screen mode.
64 bit Silverlight is coming. This to me is a critical feature, and should have been there years ago. I do not want to teach my users which browser to use for my app. Now, it is not necessary. Hardware acceleration will be available in windowless mode now. This is a critical piece of general speed improvements.
Developer experience is further improved via Microsoft Visual Studio profiling support including CPU, memory, thread contention.
Now the summary. Rumors of Silverlight death have been greatly exaggerated, and now this is pretty obvious. Actions always speak louder then words, and SL 5 announcement by Scott Guthrie is something that community needed badly ever since Bob Muglia’s comment at PDC.
As you can see, Silverlight is getting performance improvements, productivity improvements, user experience improvements and media handling improvements. The sandbox can be relaxed by users, enabling richer integration with Windows operating system. Silverlight is even getting 3D. What are the lessons learned from this announcement? Here is my prioritized list:
- Silverlight is alive and well and will be with us for many years to come. Nobody should be afraid to use Silverlight platform for business applications.
- Silverlight will be faster for users in version 5.
- Silverlight will be even more productive environment in version 5.
- Integration with Office and Windows will be better. Now, this is bad news for WPF. .
It appears to me that Microsoft is positioning Silverlight to be default de facto platform for line of business application. I cannot say I disagree. Rich applications developed faster and cheaper is what businesses need and Silverlight has.
Here is keynote. Watch and enjoy.