Talking about integrating Silverlight with existing sites and workflows

Posted 16 April 2007  

[RAW]

I’m interested to see how people integrate Microsoft® Silverlight™ into their design & development workflow…  I look forward to hearing what others are thinking about this topic at MIX ’07, or as comments here. 

This is the "talking" component: some day I hope to post a "seeing" post to follow up with examples.

A new component, not a replacement for the browser

One question that I have observed is “what’s up with yet another plug-in?”—and it’s a fair question.  I believe that it comes down to giving a creative team access to all the components they may want, and leaving it to them to create something that is interactive, beautiful, usable, and works on all of their target audience’s machines.

The fact that Silverlight isn’t an imposing download (just a few megs) is good… even with high speed connections these days, I know I’d much rather be using that bandwidth to download awesome video content from YouTube than downloading a 250MB application framework and class libraries just to open a page!

I view the promise of Silverlight as a new component: one to be considered in conjunction with AJAX, traditional XHTML, CSS, and web graphics, as opposed to another technology for building “site intro” pages.  Oh, I’m sure it’ll create nice intro pages if you’d like those, of course.  But this is no replacement for your browser of choice.

There are 3 levels of integration that I see myself using, depending on the goal… The ability to create a “zero by zero” or hidden control that performs some important functionality for your page.  Others may want a large canvas similar to a traditional Flash object for movies.  And I expect you’ll probably see some very rich navigation or input controls that use Silverlight and the windowless mode to render on top of your page, only there when you need it to be.

When I think of Silverlight augmenting a traditional website, I am thinking mostly of the last scenario: a rich navigation or control that goes beyond JavaScript and AJAX.  Something that gives me animation, interactive components, and perhaps sound (there’s a built-in MP3 decoder).  Obviously, a social video network site is going to probably want to make Silverlight the primary media component—and not just implement nice navigation.

Integrating into an existing site

I try to practice a “minimalist” site design methodology when I first begin a project, while working in parallel on the rich experience.  Sometimes it is difficult to schedule time during web site development for the minimalistic implementation, especially if you’re dealing with a designer’s set of spliced images, ready for CSS and tables.

Part of the reason for this dual design theory is the time I used to spend using the Lynx and Konquerer browsers in the past… understanding that I needed to provide a decent experience for everyone first, followed eventually by the “fun” AJAX version.  The same is going to need to apply for many people as they come online with sites powered by Silverlight.

A very useful resource I’ve come across more recently was while reading Bulletproof Ajax by Jeremy Keith.  He has a chapter entitled “Hijax” which deals exclusively with the conundrum of providing everyone equal access to your web application, while implementing your slick AJAX skills.  I really like his method of “hijacking” the links on his own pages, and rewriting them to instead deal with your JavaScript endpoints.  I imagine something like this will also be possible for Silverlight—and highly recommend that everyone check out his book.

Web Resources

The MIX ’07 web site: http://www.visitmix.com/
Silverlight Community Site: http://www.silverlight.net/
Silverlight Product Site: http://www.microsoft.com/silverlight/
Silverlight developer center: http://msdn2.microsoft.com/en-us/asp.net/bb187358.aspx

[/RAW]

Jeff Wilcox is a Principal Software Engineer at Microsoft in the Open Source Programs Office, helping Microsoft scale to 10,000+ engineers using, contributing to and releasing open source.

comments powered by Disqus