Mix 09 Traditionally, version 3.0 is the moment when everything comes together for Microsoft. Has the company pulled this off with Silverlight 3.0, the beta of which was announced today here at Mix 09 in Las Vegas?
The list of new features is impressive, although behind almost every announcement, you can sense Microsoft looking nervously at what Adobe Systems is doing with Flash, both as a media client and as an application platform.
Adobe has AIR, for example, for desktop Flash applications. So, Microsoft has announced Silverlight out of the browser. Developers enable this with a couple of lines in the XML manifest, which configures a Silverlight applet. Users can then right-click and select Install onto this computer. It is also possible to create an install button programmatically. This copies the application locally and creates a shortcut to start it.
There is no security prompt, because Silverlight out of the browser is sandboxed in the same way as Silverlight in the browser. Access to local storage is limited to Microsoft's Isolated Storage, which is an application-specific area. It is 25MB by default but can be increased with user consent. You can write code to detect whether the system is online or offline, and changes in network status trigger an event you can handle. Application updates are near automatic when the version on the Internet changes.
What's different between AIR and Silverlight out of the browser? Quite a lot. Most AIR applications ask for full, local-file access, which means passing a security prompt. Microsoft's vice president of the .NET development platform Scott Guthrie told us this is a key point.
"End users are concerned when they see a big security dialog. What we're doing with Silverlight is to provide a sandbox experience. That starts to dramatically increase the number of scenarios where people feel comfortable clicking OK," he said.
Sandboxing is a double-edged sword. There are scenarios where an AIR application can make good use of its greater permissions. AIR applications also have features that Silverlight lacks. Only pure Silverlight applications will run out of the browser. If your application also needs HTML or script running in the browser, it cannot work, whereas AIR also includes WebKit for offline browser applications.
AIR also has a local-database manager, embedded SQLite. AIR has support for the notification area - sometimes wrongly called the system tray on Windows. Silverlight out of the browser will probably have this, though it is not certain. "It's something we will enable, but I don't know the timeframe," Guthrie said.
Microsoft has also addressed weaknesses in Silverlight's remote-data support. A new binary XML protocol means more efficient access to data delivered as XML. There is also a new server-side feature called .NET RIA Services.
"You can expose a domain service and do change tracking of any data you retrieve, submit the changes back, and the server will revalidate and then persist," explained Guthrie.
This is a REST service that builds on ADO.NET Data Services, once known as Astoria, and will be usable from AJAX web applications as well as in Silverlight. Data comes down by default in JSON format. Automatic synchronization of offline changes is not yet included, though Guthrie said: "The architecture is designed to enable that in future."