What’s new in Silverlight 3?
Silverlight 3 was released in July already, but since I happened to be attending Brad Abrams’s presentation on “What’s new in Silverlight 3” (ReMix 2009 Helsinki, see the video), I might just as well publish my notes. This isn’t intended as a primer to all version 3 goodness, but rather an overview on the changes and their potential impact.
There are five key areas of changes. First, new media features include multiple changes to improve support for streaming video. Second, graphics changes provide more features for building even more compelling, modern user interfaces. Third category of changes includes various features geared at improving developer productivity. Fourth, new features in Expression Blend 3 make quite a difference in the developer experience.
And finally, the fifth part is less of a category, more of a new feature greatly expanding the scope of Silverlight 3: The ability to run Silverlight applications offline, outside the browser.
In the following, I will analyze each of the categories a bit more. All changes – performance improvements in particular – are not fully enumerated.
Media
From a technical perspective, the key change was the simultaneous launch of IIS Media Services. Combined with Silverlight, the new IIS extension allows very dynamic and smooth delivery of high-resolution video. The server and client will negotiate the connection rate automatically and transparently, providing the user with a seamless video experience even if the bandwidth varies.
This improvement also supports other features such as quick seeking: if you skip 10 minutes forward in an HD video, that would traditionally imply a short but noticeable buffering break. The new streaming causes IIS to first send a quick burst at a lower bit rate, providing the user an instantaneous seek experience, and then improving the stream quality as bandwidth allows.
See the streaming demo at Microsoft’s site!
Commercially speaking, equal importance lies on other new media features. Support for H.264 and AAC video formats is relevant, as is the support for full-screen true HD video playback. Also, DRM is now supported through the PlayReady model.
Media summary: Silverlight just made itself a whole lot more relevant as a media distribution platform. Although I’m still inclined to label Silverlight as “The RIA engine for developers”, video distribution is a field where Silverlight’s compatibility, ease of installation and light weight will give it quite a good foundation to stand on. Media companies should look into this – it is doubtful that the higher installation base of Flash will compensate for the feature set Microsoft is pushing out.
Graphics
The key point in graphics changes is to improve rendering speed and fidelity. For example, text rendering is both better-looking as well as more speedy. Totally new features include support for 3D transformations, new bitmap APIs and pixel shaders.
Also, a new theming subsystem makes the skinning and styling Silverlight applications a whole lot different, providing designers very quick opportunities to impact the looks of even existing applications. From a new application design perspective, the new system with its cascading style relations enables a rather sophisticated styling process. See Corrina Black’s blog entry for some example themes available and their effect on some simple UIs.
Graphics summary: The graphics subsystem’s changes are important, but require learning. It enables scenarios which are very easy to demo, but effective use in production only comes through skilled developers and designers. Unfortunately, some of the benefits will further steepen the learning curve of Silverlight, although the features themselves are reasonably well-designed.
Developer productivity
While the Silverlight developer story is relatively smooth for a RIA platform, there have also been serious problems. Silverlight 3 throws a serious stack of medication onto the table. For starters, we have over 60 new controls ranging from things that should have always been there (grids, trees, data forms) to stuff that is actually quite impressive (charting and treemaps come to mind).
One thing that doesn’t bother everybody but makes life hell for some is making RIAs a real part of the web. Or as Brad puts it, bring Silverlight to “first-class citizenship on the web”, including back/forward navigation, bookmarking through deep linking and search engine discoverability. Stuff like this was reasonably hard to build in the past, and while Silverlight 3 doesn’t quite do it for you, it certainly adds tooling to ease up the effort.
Entirely another beast is the .NET RIA Services stack (formerly known as Alexandria). It is a client/server code library that makes transferring data between the Silverlight application and its backing ASP.NET application very simple. Things like querying, change tracking and submission are rather straightforward. The .NET RIA Services is still in CTP phase, but is quite decently usable. See Brad Abrams’s blog post series for a demo.
Developer productivity summary: The .NET RIA Services stack opens up a different world altogether. It is not the final solution in bridging the gap between the client and the server, but it is certainly one of the most complete solutions available. Combined with the new controls, whipping up basic business applications approaches the ease involved with Windows Forms, but with the additional bonus of having a full three-tier architecture.
Design tooling
While Visual Studio has traditionally offered a reasonable design experience for building Silverlight applications, it is ill-suited for more graphics oriented design. This is starkly highlighted by the fact that Silverlight 3 add-in for Visual Studio no longer includes a graphical preview mode, but rather forces the developer to resort to editing XAML markup. Previous versions displayed a simple graphical rendition, and a visual designer is making a comeback in Visual Studio 2010 – but for now, the only way to have a decent visual design experience is to use Expression Blend 3.
Blend 3 contains a bunch of improvements related to the very basic editing operations. For example, the new Blend can generate randomized sample data to use in populating the forms, greatly easing the design process of data-driven applications. Also, a new feature called behaviors allows the designer to declaratively apply a predefined set of transformations so that simple functionality and animation are easily reached without a single line of code. Also, a long desired practical improvement is the addition of source control integration as well as the ability to import designs from Adobe Photoshop and Illustrator.
A totally new Blend feature is SketchFlow, the ability to quickly create mockups of Silverlight user interfaces, including a rough visualization of the UI as well as the navigation between different screens. The mockups are not limited to static screenshots, but rather support a dynamic view of the interface, including elements such as selection lists and dropdown menus. Also, SketchFlow supports a review workflow, allowing clients to review the designers' mockups and add comments onto them.
Design tooling summary: It’s commonly said that Microsoft products are ready at their version 3.0. While Silverlight itself was already quite useful at version 2, Blend only seems to have reached maturity with its third incarnation. One of the key hindrances in Silverlight’s victory march is the fact that designers have found their spiritual home in Adobe products; luring people over to the Expression family isn’t easy. However, the developer experience beats the Flash equivalent – it is likely that people without existing Adobe experience are more likely to find value in the Expression family.
Out of Browser
While Silverlight versions 1 and 2 have been confined to programming applications embedded on web pages, Silverlight 3 expands its scope to offline applications. Conceptually this is very similar to what Adobe AIR allows for Flash applications, although the Silverlight offline experience is still strongly web-driven: The user must first open the application on the web, but then can be offered the possibility of installing the application offline. Such an installation appears as an icon on the user’s desktop, enabling launching the application from the desktop, with or without network connectivity.
The out of browser experience is not intended to replace other deployment models; for example, the Silverlight application still has the typical browser sandbox limitations, which is both a good and a bad thing. The positive side is the security benefit; the negative side is that Silverlight apps still can only access the local disk and devices in a very limited way. The positive side is that installing and running the apps requires no more client-side privileges than browsing the web.
For an example application using the out of browser feature, take a look at Slidentity, a PowerPoint-like application made in Silverlight. To install it offline, right-click on the app. While offline, applications can detect the connection state and if necessary, use a modest amount of local disk storage to manage their data. Also, Silverlight runtime manages automatic updates of the application just like the way it would work when running the apps from the web.
Out of Browser summary: Now that Silverlight apps can extend onto the desktop, it provides one more option for software deployment. However, the most compelling scenario for Silverlight OOB is probably extending consumer apps to work in connected/disconnected scenarios – in-house deployments may still have requirements that will be better satisfied through the use of configuration management applications and/or ClickOnce-style deployment schemes.
October 9, 2009
· Jouni Heikniemi · No Comments
Tags: Expression Blend, Silverlight · Posted in: .NET
Leave a Reply