Microsoft Silverlight

Silverlight is Microsoft's attempt at providing developers with the ability to create rich Internet applications that provide much of the functionality normally associated with Windows applications, but with the ability for them to run within web browsers.

Its direct competitor is Adobe Flex, which produces applications that can run using the Adobe Flash browser plugin. Released in 2007 it has made rapid progress through to version 3.0, with version 4.0 due soon - all versions require the Microsoft Silverlight browser plugin. The initial release provided developers with a basic set of tools to create rich Internet applications, but it was version 2.0 that introduced the .NET framework and brought real world usability.

Silverlight or Flex?

Because of the dominance of Adobe Flash, Flex has gained good developer support because it allows for the creation of applications that run using the Flash browser plugin. This is important to developers because you want to create applications that can be easily used and because the Flash browser plugin is so widely supported this makes for a good development platform.

However, Adobe have been slow to progress Flex forward and Microsoft are gaining very closely! In 2010 both Microsoft Silverlight and Adobe Flex will reach version 4.0 (speculation suggests that Adobe Flex 4.0 will be the first to released) and we will have some real competition in the market - but which is best?

Well I guess that all depends on your approach to development and your requirements, those developers who have traditionally used Adobe products will probably stay with Flex, but the feature list of Silverlight and the take-up in the plugin makes it a very attractive choice.

Adobe seem to be focusing version 4.0 on ease of development, better integration with other tools and a faster to market approach which is all well and good, but where are the big features? Conversely Microsoft are throwing everything at Silverlight - webcam support, better printing, deep zoom, right-click, multi-touch and enhanced support for mobile devices.

It has to be said that Flex already includes some pretty good features and possibly Adobe doesn't have to add so much functionality to stay ahead, but the underlying programming language, ActionScript, isn't as good as .NET and the lack of multithreading can cause problems for development projects.

What benefits does it bring to software applications?

I think it is fair to say that people expect applications to be on the Internet and that demand for Windows based applications is diminishing. Using traditional technologies such as HTML, ASP.NET and PHP is fine and will suffice for many simple applications, but users are starting to demand the same functionality that they find with their desktop applications from their browser based applications. That means that as developers we need to ensure we can deliver this rich functionality easily and cost effectively.

Silverlight is catching up on Flex quickly and with it providing much better support for more in demand features and is probably likely to surpass it soon. That means clients can expect better user experiences and richer functionality from the next generation applications and without the need to install and manage software on their own machine. With Silverlight we can retain the core knowledge built up with .NET whilst providing this standard of application that is becoming much in demand.

This is certainly a part of software development that is going to be very exciting over the next few years!

Microsoft and Adobe Logos