A lot of stuff was announced today at MIX09 (and Scott Guthrie is always fun to watch) and one of the more interesting things was that Silverlight is supporting an Out of Browser Experience. At first I thought AIR would be the direct competitor but after sitting in on Mike Harsh’s session, I think AIR and the Silverlight OOB (Out of Browser) are two very different technologies for two very different scenarios.
Installation
Because you’re in the browser context, Silverlight OOB doesn’t make you install anything extra, you can just bring any piece of Silverlight content to the desktop. Silverlight OOB has both events you can call as well as a right-click context menu item that becomes available when you edit the application’s manifest file. When you do that, you get a dialog box with an icon you can customize and the option to add the application to the start menu and/or desktop. Uninstallation is done through the same right-click menu. Silverlight OOB applications don’t show up in the add/remove programs menu or Applications directory. In some ways it is similar to Gears’ Desktop API. With AIR applications, you of course have to download the AIR runtime and you get the standard AIR installation screen and the user has to click through a couple of times. We also want you to sign your applications because when a user installs an AIR application, they’re not in the browser security sandbox but a regular desktop security sandbox.
System Access/Features
The major difference, and what really causes all of the other differences, is that Silverlight OOB runs in the web browser’s sandbox. That means you can’t do anything the web browser can’t do. That means no full file system access, custom chrome, notifications, native menus, etc. Silverlight OOB gives you a bit of isolated storage space where you can read and write from the hard drive, but not direct access like AIR. Everything aside from that isolated storage has to go through a save/open dialog. This is the clear separation between AIR and Silverlight OOB because the install process you go through with AIR gives you access to more desktop hooks. Silverlight OOB also doesn’t have any kind of SQL database and you’re restricted to non printable characters when you’re in full screen mode. Mike said in his session that the Silverlight OOB team was looking into SQL as an option down the road.
Updating
Tim Heuer has a pretty good post up about the differences in updating applications. The significant difference I saw is that with Silverlight OOB, your users are required to update. With AIR, the developer gets to choose whether or not to force users to download an update. The Silverlight team is looking at allowing developers a choice Tim says.
Summary
AIR and Silverlight OOB don’t really compete in the same space. AIR is about letting you take your web application skills to build desktop applications and Silverlight OOB is more about letting you take your Silverlight applications to the desktop. The different models will be different for everyone, but right now AIR gives you a lot more flexibility and more API hooks into the operating system. You can also combine HTML and Flash and it doesn’t sound like you have any HTML functionality in Silverlight OOB. I obviously work for Adobe, so I’m biased in favor of the AIR model, but I think Silverlight OOB has a lot of good scenarios; it just doesn’t really compete with AIR in my mind. And I think we’ll be watching to see how developers use it and if there’s a demand for that kind of experience with Flash.