Thursday, September 27, 2007

10 things you should know about Microsoft's Silverlight

Crafting a Web strategy is important for any thriving business. However, implementing that strategy with rich Internet applications (RIA) is not always as easy as it should be. To ease that pain, Microsoft recently announced Silverlight, a cross-platform, cross-browser plug-in for Web application developers. The plug-in, currently available as a "Release Candidate" (which for all intents and purposes means it's released now), enables rich application development including media, interactivity and animation. The Silverlight plug-in currently works with Internet Explorer and Firefox Web browsers on Windows and with Firefox and Safari on Mac OS X.

I've been using Silverlight since I taught a course for internal Microsoft developers, shortly before the software's public unveiling as "WPF/E." I've written several books about Microsoft-based software development (such as Pragmatic ADO.NET [Addison-Wesley]), I co-wrote four Microsoft developer certification books, and I have invested quite a bit of time in examining the promises that the company is making for this "Flash killer." It's always hard to be critical of software that isn't fully released yet (for one thing, it's impossible to point out serious bugs since they may be addressed by the time you fire up the development tool), but the following reflects my professional and technical judgment based on several months of hands-on experience.

With the public release of Silverlight imminent, now is the right time to become familiar with Silverlight and how it might impact your Web application strategy. With so much Silverlight information available right now, it is difficult to distill what is important and what is hype. I'll do my best to lift the fog with these 10 things that you should know about Microsoft's Silverlight.

1. Silverlight Avoids Cross-Browser/OS Issues
For most development teams, developing a website that will work identically with the popular browsers of the day (including Internet Explorer, Firefox, Safari and Opera) is a difficult proposition. The problem is not simply the necessity for multiple code implementations but also exponentially large testing sets. As a developer creates matrices of browser versions and operating systems, the number of test beds needed becomes enormous.

Usually there are two ways that a development project addresses this: support only a small subset of Web browsers, or increase the number of quality assurance personnel.

In contrast, the Silverlight plug-in enables an identical development model regardless of user operating system and browser. Currently, two operating systems and three browsers are supported. Microsoft is promising to add support for the Opera browser on Windows and Mac. In addition, the Mono project has made tremendous strides in its Moonlight project, which intends to bring Silverlight to the Linux platform.

2. Silverlight 1.1 Is the Real Story
The recent Release Candidate of Silverlight 1.0 has many organizations considering whether they should start working with Silverlight. While Silverlight 1.0 has many important and interesting features, in reality most Silverlight adoption hangs on its anticipated 1.1 release.

The Silverlight 1.1 release (currently in an Alpha preview) is the first to support .NET in any appreciable way. This includes the basic .NET languages, C# and Visual Basic. In addition, according to Microsoft, Silverlight 1.1 will have .NET support for dynamic languages, such as Ruby, Python, dynamic Visual Basic and managed JScript. In my opinion, the important languages for Silverlight to support are C# and Visual Basic, as they allow current .NET developers to create interesting Silverlight applications. In the Silverlight 1.1 release, any .NET language should be supported, since what is actually delivered to the browser are .NET assemblies.

In contrast, Silverlight 1.0 only supports ECMA languages that are interpreted in the client. Silverlight 1.0 works well for existing Web developers who are already using client-side script for their work.

Silverlight 1.1 also supports a rich custom control model, which is important to ensure an integrated development experience. The Silverlight 1.0 experience is much less mature and is unlikely to get third parties interested in control development.

No comments: