Sunday, June 1, 2008

Is Microsoft Silverlight ready for prime time Business SaaS Development?

There is no doubting the success of Adobe's Flex development product set in the SaaS Web 2.X world and there is no doubt with the release of Microsoft Silverlight Version 2 beta, Microsoft is attempting to head the same way.

Silverlight 1 was clearly targeted at simple website development with video streaming, animations and javascript/Ajax dev framework to enable a richer web experience, but it wasn't close to being ready for business application development.

I spent some time researching SL2 in my continuing endeavours for improving SaaS user experience. It introduces some major functionality including

1. A cutdown .NET managed code environment as an alternative to Javascript. This will be an attractive feature for the literally millions of .NET developers out there.
2. Ability to generate and use proxies for consuming SOAP and RESTful based services (A critical requirement for Business applications who need access to hosted databases).
3. More standard controls such as listboxes and datagrid.
4. Linq to SQL

SL 2 is definitely a huge improvement over SL 1 but there are still some major pieces to the puzzle missing.

1. Certain key controls are yet to be released including a tab control. Tabs are a very common metaphor nowadays in business apps. I cannot seem to find a combobox implementation, the most basic of databound controls.
2. Linq to SQL is great for handling collections of generated proxy data objects but what about situations where the data schema is not known at compile time, for example CRM and Business Intelligence Applications
3. Third party vendors are still building their Silverlight components, vendors such as Infragistics, and Telerik having announced their intentions to release but have yet to do so.
4. Cannot merge external resource dictionaries which makes it difficult for dynamic skinning.
5. No concept of a right click. Which makes it difficult to build right click context menus. Can be done by Javascript hookups, but is not a default behavior in managed code form.

So is Silverlight ready for SaaS? Well, due to its flexible UI design foundations (XAML) which enable you to build your own controls and the new capabilities for managed code development and Service consumption, the answer is yes (if you have time to work around the controls that are lacking). But I suspect that many ISVs will wait before adopting Silverlight as their primary UI platform for delivering SaaS applications, otherwise they risk reinventing the wheel.