Offline Silverlight and Live Mesh under the microscope
Microsoft Live Mess?
Web bling tone The BBC recently released a new cross-platform version of its desktop iPlayer, for downloading programmes and watching them offline. It may the most prominent example yet of an Adobe Systems' AIR application - a runtime that includes the Flash player and the WebKit HTML rendering engine.
By contrast Microsoft's Silverlight player only runs in the browser - or does it?
At the company's Professional Developers' Conference in October, Microsoft unveiled Live Mesh for applications, including the ability to run DTHML and Silverlight applications offline in a desktop runtime. Such applications are called Mesh-enabled Web Applications, or MEWA in the jargon.
A MEWA is an interesting option, particularly since Microsoft is promising cross-platform support for Windows, Mac and mobile devices. It has some advantages over AIR, including sandboxed local clients, built-in data synchronization, and built-in identity management and authentication. Another plus is that a MEWA lives both on the desktop and in the cloud, so if you are not at your usual machine or your operating system is unsupported, you can use the web version and get the same data.
Unfortunately it is also a tricky subject on which to get clear information, as I discovered when experimenting with the limited access Community Technology Preview (CTP). The documentation is thin, the support forum sparsely populated, and much of the information locked in videos from the PDC.
The Mesh CTP desktop - note the Apps tab
Live Mesh is an application running on Windows Azure, the overall name for Microsoft's cloud computing platform. There is a consumer version available now, which provides an online Live Desktop and the ability to synchronize files across several PCs and share them with others.
Computers that are joined to a Mesh need a runtime called the Live Operating Environment (LOE), a local server that synchronizes its data with the online Mesh. The Mesh CTP adds the ability to deploy applications within the Mesh and to access both the online and local Mesh programmatically.
When you install a MEWA, it automatically creates shortcuts on both the Live Desktop and on your local Mesh-joined PCs. Running the MEWA from the desktop opens the application in its own window, with no surrounding chrome, and it runs offline as well as online. The runtime includes an embedded web browser, which means you can run both Silverlight and HTML applications; in principle you could even use it for a Flash application though I have not tried this.
The runtime is tightly sandboxed, and has hardly any access to local resources other than to objects also in the user's Mesh, such as synchronized folders, and even these require specific user consent. An application also has its own data feeds, of which more in a moment, and it can use local isolated storage though this is almost useless since it is not synchronized.
A MEWA can make web requests, provided these are permitted by a cross-domain policy file on the target server - this is standard for Flash and Silverlight applications. There is also provision for a special CallbackHomeLink, which is embedded in the application manifest, and specifies a URI the application is allowed to call. Finally, a MEWA has access to the user's live data, such as contacts, if consent has been given.
Developers always like something for free, and free data synchronization sounds a particularly good offer. So how does it work? The magic only applies to data in the Mesh.