Rich Internet Apps the Microsoft Way

Evaluating Silverlight 2, Visual Studio 2008 and Expression Studio 2, it's no surprise that Microsoft shines in programming and comes up short on creative tools. As the wave of RIA and Web 2.0 rides on, the choice between the Adobe and Microsoft camps might be one of the bigger bets an enterprise IT shop can make.

Nelson King, Contributor

August 18, 2008

12 Min Read

Microsoft has been on the trail of improved Web-based user interfaces for many years. In this, as in many other areas, Microsoft works incrementally making smallish changes, adding pieces, forever integrating. Here's an evaluation of where Microsoft is at this writing with its main tools for creating rich Internet applications (RIAs): Silverlight 2, Visual Studio 2008, and Expression Studio 2.

As usual, it is said that Microsoft is "late." If the name of the RIA game is based on the wide distribution of a necessary client programfor example, Microsoft Silverlight or Adobe Flashthen Microsoft is almost a decade late and has a way to go to catch up in worldwide distribution. However, many software developers and tool vendors don't see the downloaded client (browser add-on or not) as the only way to do RIA. Many prefer some variation of browser, scripted language (usually JavaScript), and enhancement of HTML Ajax comes immediately to mind.

Almost all vendors give at least lip service to Ajax these days. With a twist of irony, the new Ajax industry is partly a spinoff of Microsoft's own efforts to boost the Web UI; but ultimately for Microsoft, the only profitable way to RIA was to incorporate Ajax (and a lot of other UI features) into its programming bulwarks, the Visual Studio IDE and .Net Framework. It's also ironic that although what Microsoft had long ago accomplished with Visual Studio and .Net (or their precursors) rich desktop applications it had to reestablish with Web applications.

The retrofitting of Visual Studio for the Web goes back to the mid-nineties with relatively painful efforts such as Visual InterDev, then FrontPage, and finally their absorption into Visual Studio. Each iteration of Visual Studio reflected the growing importance of Web application development and, with that, the importance of graphics and media. With the coming of Windows Vista, Microsoft reengineered its entire graphics capability and created Windows Presentation Foundation (WPF). WPF was geared for desktop applications; it was streamlined for the Web as WPF/ E (Everywhere), which in turn became Silverlight in 2006.

Silverlight 2 - client module
Visual Studio 2008 - development environment
Expression Studio 2 - Web development and creative tools
Silverlight 2.0: Sights on Streaming

This bit of history helps put Silverlight in context. It's too easy to say that Silverlight was developed as the "Flash killer." Microsoft has its own reasons for Silverlight (packaging WPF capability), which as usual has a competitive purpose as well.

Like Adobe Flash, Silverlight requires the installation of a client module, a browser plug-in, which Microsoft is feverishly trying to get pre-installed or downloaded into as many systems as possible. This rude and potentially problematic deployment is reckoned necessary to package generic code for applications with animation, vector-graphics, audio-video playback, and certain communications, data management, and application management requirements. It also tends to provide a controllable platform (proprietary or otherwise) that favors the original manufacturer. Silverlight is essentially proprietary. It is mostly compatible with the major browsers. Currently Silverlight 1.0 is the official version, although beta versions of Silverlight 2 have been around long enough to be quite stable. Release of version 2 is expected in October.

A Silverlight application is invoked from an HTML page, which starts by running a XAML file (Microsoft's own version of an extended XML-style markup language). The XAML file sets up the user interface for the application and frames the "code-behind," Microsoft's terminology for program logic and control. Silverlight 2 makes several big jumps from 1.0, but none more important than the incorporation of a version of the .Net Framework 3.0. This allows Silverlight to use any Common Language Runtime (CLR) supported language for the code-behind. The original JavaScript will remain popular, but many shops will probably shift to C# (or Visual Basic). The ability to use mature and powerful languages will be an important advantage for Silverlight.

Less mature, but potentially important, is the inclusion in Silverlight 2 of the Dynamic Language Runtime (DLR), which provides for the compilation and running of dynamic scripts and a big performance advantage over interpreted script. So far only Microsoft Managed JScript, IronPython and IronRuby are in line for DLR, with Visual Basic .Net 10.0 planned in the future. Theoretically a controlled platform such as Silverlight (or Flash) should be able to squeeze out better overall performance than generic approaches; for Silverlight, DLR capability is part of that.

Although heavy on the infrastructure improvements, Silverlight 2 doesn't neglect the UI. For one thing it now ships with more than 30 controls, which are skinnable with control templates and styles. It also includes Microsoft Deep Zoom, which allows zooming in and out of images with the mouse wheel. Third-party vendors are lining up to extend and enhance the list of controls. This is the fun part of working with Silverlight; impressive effects are possible, although depending on the choice of tools, they may not all come easily.

It's too early to characterize Silverlight as being particularly strong in one way or another, but it's clear that Microsoft has outfitted and positioned Silverlight to perform effectively for streaming applications. The choice of VC-1 as the official video codec appeals to broadcast industry professionals, although it has caused a ruction for those (such as Adobe) supporting the H.264 video standard. As confirmation of its direction, Microsoft launched Silverlight Streaming, a media server online service, which provides (free up to a limit) streaming media for Web applications. Microsoft also includes Expression Encoder 2 for VC-1 conversion in Expression Studio 2.

Visual Studio 2008: Bring Out the Big Guns

Microsoft uses Visual Studio to bring to the production of Web applications its vast machinery for desktop application software development, including, among other things: multiple programming languages, code support (Intellisense), debugging, profiling, team programming, and programmers' community. This is appealing to (Windows) desktop programmers who also need to develop Web applications. It also makes the most sense in the enterprise setting, where the expense is acceptable to acquire the depth and range of the tools. As a Web developer it's not necessary to be a fan of Microsoft to appreciate what these tools can do for larger, more complex, and demanding Web applications.

Silverlight is currently an add-in for Visual Studio. You download the Silverlight client and the Silverlight Toolkit for Visual Studio at no charge (like an SDK that plugs into Visual Studio), install them and then configure Visual Studio for Silverlight projects. The basic setup is straightforward, but Visual Studio-plus-Silverlight can't be a casual acquaintanceship. It requires a long learning curve, probably with formal training required.

Silverlight 2 has been integrated into Visual Studio at a functional level for example, there is specific support for debugging Silverlight applications but conceptually and in presentation (as reflected in documentation and in the UI of Visual Studio's surfaces) some details are missing or difficult to piece together. This goes double for the other great strength of Visual Studio-plus-Silverlight, the ties to the Microsoft .Net solution stack - the legion of servers, database tools, communication systems, and other infrastructure elements in the Microsoft product lineup. Some of these ties, such as LINQ (Language Integrated Query, Microsoft .Net data access operators) are obvious and easily implemented; others (for example to Microsoft Live products) are more obscure; some ties (such as to Microsoft Exchange Server) are more potential than real.

Expression Studio 2: Green Apples

Without question the depth and polish of Visual Studio 2008 will appeal to potential Silverlight developers; but it's overwhelming for Web designers and lots of other artistic folk who also want to create rich applications and content. Microsoft's answer is the Expression suite. The recently released Expression Studio 2 is the ber-package containing: Expression Blend 2 (Silverlight application development), Expression Web 2 (Web site development), Expression Design 2 (graphics creation), Expression Media 2 (graphics/image management), and Expression Encoder 2 (streaming media preparation). It's a big bundle, requiring almost a gigabyte of disk space and .Net Framework 3.5. However it comes at a very competitive price: $699 versus $1,899 for the roughly equivalent Adobe Creative Suite 3.3 Design Premium package. However the comparison is not exact, it's like comparing green apples with apple pie a la mode.

Good creative tools, like good software development tools, take time to produce many cycles of design- and user-feedback and many years. For the most part, Microsoft's Expression suite is just getting started and looks it, with inconsistent user interfaces between some of the individual products. Recall however, that it has been Microsoft's pattern to jump into a category with less-than-stellar software and keep plugging away until it becomes competitive or even dominant. For now, however, with the exception of Expression Web 2, there's little about the Expression suite that seriously challenges Adobe's products. There is, for example, no Expression product that even begins to compare with Adobe Photoshop.

Expression Blend 2 This is the most significant product in the suite for developers. Expression Blend is the UI design surface for Silverlight and WPF (desktop) applications. It's close in function, if not polish, to Adobe's Flash Professional. For Silverlight, its primary task is converting designs and content into XAML. Expression Blend 2 provides the means for non-programmers to at least design the look of Silverlight apps and do complex graphics such as animation. It can create standalone programs, but it's not really intended to complete the job. When it comes to creating sophisticated code-behind, debugging, and deployment, Visual Studio 2008 is required. The integration here is impressive, a (live) two-way coding connection between Expression Blend and Visual Studio, which begs for a division of labor between designer and programmer.

Note that Expression Blend 2 supports only Silverlight 1.0; support for Silverlight 2 is part of Expression Blend 2.5, which is already in beta testing. More significantly, Expression Blend 2 does not have a version for Mac OSX. Expression Blend 2 is obviously a work in accelerated progress. Since it plays to Microsoft's strength in programming tools; expect this to be the centerpiece of the Expression suite within a year or two.

Expression Web 2 It's likely that some of the guts and design surfaces of Expression Web 2 were inherited from Microsoft FrontPage, but this is no whelp of that bug-bitten dog. Microsoft has clearly built on its experience with Web site development tools to make Expression Web 2 attractive for Web professionals. This version may not convince users of Adobe Dreamweaver to hop over to Microsoft, but it shows areas of strength, such as the smooth and more intuitive handling of CSS (like a CSS class browser), that might create some envy.

Expression Web 2 also (at last) takes standards more seriously and broadly. For example, in addition to XHTML, CSS, XML, and XSLT, Expression Web 2 now supports PHP Web sites and can recognize Adobe Photoshop files and open them in a variety of formats. There is better accommodation for Silverlight (note: Silverlight 1.0), although the connection is superficial. As important as Silverlight may be in the long run for Microsoft, it still hangs like "a bag on the side" for some products.

Expression Design 2 This is a competent product to develop bitmap and vector graphics for use in Expression Blend 2. It's much better than Microsoft Paint; but far less than a combination of Adobe Illustrator, Photoshop, and Fireworks. It's a simple program to use, but much of the simplicity is the result of fewer features. For example, the lack of CYMK support is an indication that Expression Design 2 has no business with professional print output; its focus is the Web and specifically Expression Blend.

Expression Media 2 A media organizer that works with images, movies, sounds, fonts, or any other media file; it's roughly equivalent to Adobe Bridge. Expression Media 2 is a rather incompletely adapted version of a third-party product (iView Media Pro). It still requires Apple QuickTime to perform some basic image manipulation. The user interface and feature set look good for about the year 2000.

Play to Strengths

It was probable that evaluating Silverlight would show Microsoft to be strongest at the programming aspects and weakest in the creative (graphics/media) tools. Pretty much the reverse is true for Adobe. Whereas the tools available for Silverlight 2(Expression Blend 2.5 and Visual Studio 2008) are more than good enough to guarantee that Microsoft-committed programmers won't be tempted to try programming similar things in Adobe Flash/Flex; most of the components of Expression Studio 2 will not entice Adobe committed creative professionals.

As the wave of RIA and Web 2.0 rides on, the choice between the Adobe and Microsoft camps might be one of the bigger bets an enterprise IT shop can make. For the most part it's not a features race (thank goodness); it's really about integration integration of programming and content that should be translated into an easier, more efficient development process for RIAs. For Microsoft, the "feed" of creative work images, graphics, video, or audio from Expression Studio needs to pass seamlessly into the programming machinery of Visual Studio and come out as user-friendly and fully debugged Silverlight applications. Microsoft has a way to go to accomplish this kind of integration, but then so has Adobe.

For enterprise IT shops, the pre-deployment of Silverlight and the installation numbers game with Adobe Flash is less of an issue than it is for independent software vendors (though an enterprise shop should be in charge of its own deployment). A more relevant question might be whether a Silverlight or Flash client is necessary at all; but that's an issue for another venue. Despite its brief history, Silverlight has already done some serious kick-butt on Adobe, and that's spurred the creative juices all around. That's good for everybody.

Read more about:

20082008

About the Author(s)

Never Miss a Beat: Get a snapshot of the issues affecting the IT industry straight to your inbox.

You May Also Like


More Insights