SL can offer us many advantages in UX development over the traditional ASP.NET/AJAX solutions:
1. Silverlight simplifies the development and support process by allowing the development of a rich UX using the same server side tools that we have been fostering throughout the organization such as C#, Linq and WCF. Thus there is no need for Javascript. This is huge as it allows our developers to work in the same object-orientated patterns that they are now using in server side development. As such, they can be much more productive then using Javascript where object support is not native. It can be done using tools like Prototype, however even these do not support important OO concepts such as polymorphism. Additionally all events are handled locally in the SL client application using the same model (IObservable, INotify) that are used in WPF , the rich data binding models allows for easy two-way binding between UX elements and serialized forms of our business objects. The same event model allows development of rich interaction between different controls on a page such as a Slider and a Chart. As a result, it is easy to deliver a highly responsive UX without the need for Javascript.
2. Silverlight allows developers and designers to work together. This is probably much less important for Infinite Energy but it a factor as the user expectations rise. Tools like Expression Blend can be used by the designer as the developer is working on the code in Visual Studio.
3. SL is a strong subset of WPF so the application can be run on the desktop natively, if required.
4. There is no need for Ajax or Viewstate making application development much simpler.
5. State can be maintained on the client. There is by default a 1M Isolated storage on the client again easing the development effort. This 1M limit can be configured higher and streams read and written to the store.
6 Silverlight is cross browser so support for Mac or Linux is included and one does not
have to fight with CSS to resolve browser differences.
7. Asynchronous programming model that allows a background thread to carry out tasks while the application is freed for user interaction.
8. We also must keep in mind that the development of a product is actually a small part of the lifecycle of the product as support and extensibility take much more time. Not only will SL lead to faster development time but the support and extensibility will be much less as the model and debugging tools are so much better.
Additionally there are benefits for the end-user:
XAML is the Silverlight's Lingua Franca for user interface design. As it is interpreted by the .Net runtime, a much richer experience such as scalable vector graphics can be delivered then thru HTML.
2. C# code runs magnitudes faster then Javascript/Ajax as it is compiled. This again allows for development of UX that were not possible in ASP.NET
Labels: silverlight2