The most important piece of news from last week's PDC was Microsoft's decision to turn Silverlight into the universal platform for building cross platform applications.
The upcoming version of Silverlight will no longer be a Web-only technology. It will now be possible to build full desktop applications with Silverlight.
Desktop Silverlight applications differ from the standard Silverlight in a few ways:
- Full access to the host file system, like any other .NET application would have.
- None of the socket connectivity limitations that are present on the sandboxed versioned of Silverlight. Full network access (we should build a MonoTorrent UI for it!)
- Built-in Notifications API to show up bubbles to the user when they need to interact with the application.
Although Moonlight has supported this mode of operation since day one, turning this into a standard way to develop applications was going to take a long time. We would have needed to port Moonlight to Windows and OSX and then we would have to bootstrap the ecosystem of "Silverlight+" applications.
But having Microsoft stand behind this new model will open the gates to a whole new class of desktop applications for the desktop. The ones that I was dreaming about just two weeks ago.
This was a big surprise for everyone. For years folks have been asking Microsoft to give Silverlight this capability to build desktop apps and to compete with Air and it is now finally here. This is a case of doing the right thing for users and developers.
Desktop Tools in Silverlight?
Now that this technology is available, perhaps it is a good time to start a movement to create a suite of Silverlight-based desktop applications.
The benefits to me are many:
- .NET applications that actually look good. In the past your choices were basically of Gtk# or Winforms, neither one really designed for this graphic-designer driven world.
- We can join forces with Windows/MacOS developers to create the next generation of desktop applications.
- Developers can tap into the large ecosystem of third-party controls that exists for Silverlight.
For the Moonlight team, this means that there is a lot of work ahead of us to bring every Silverlight 3 and 4 feature. I think I speak for the whole Mono team when I say that this is exciting, fascinating, challenging and feels like we just drank a huge energy boost drink.
If you want to help, come join us in the #moonlight or #mono channels on the IRC server at irc.gnome.org.
There are many other great features in Silverlight 4, but none as important as Silverlight becoming a universal runtime for the CLR. This is a revolution.
If you are curious about all the new tactical features of the revolution, check Tim's Complete Guide to the new Silverlight Features.
If you have the time, watch Scott's keynote's presentation where he introduced the new features (he starts at 1:02). I loved the use of HTML as a Silverlight brush (paint with HTML and even Flash). If you have time, these are some great sessions on Silverlight:
- Microsoft Silverlight 4 Overview: A good intro, repeats a lot from Scott's keynote.
- Improving and Extending the Sandbox with Silverlight 4: Joe Stegman's presentation on the revolution.
- RIA Services: The technique that lets you "remove four acronyms" from your development, mindblowing.
Miguel de Icaza.