Welcome to Pete Brown's 10rem.net

First time here? If you are a developer or are interested in Microsoft tools and technology, please consider subscribing to the latest posts.

You may also be interested in my blog archives, the articles section, or some of my lab projects such as the C64 emulator written in Silverlight.

(hide this)

MIX.Silverlight

Pete Brown - 01 May 2007

When I attended MIX last year, it was all about WPF, with only one real session talking about a future technology called WPF/E. At the time, I was focused primarily on WPF and viewed WPF/E as something that was interesting, but too limited to be very useful.

This year, the conversation is almost entirely about Silverlight (both 1.0 and, more interestingly, 1.1). While 1.0 is very much a limited (but more promising than orignally thought) platform for browser apps, 1.1 is extremely promising and feature-rich.

Silverlight 1.1

Silverlight 1.1 (due sometime around Q4 2007) has much more of the real WPF features integrated into it. Unlike 1.0, 1,1 has a control model and support for the .NET CLR on the client. Yes, that means you can aviod using JavaScript in 1.1 and can get all the useful features of C#. Silverlight 1.1 also includes more CLR 3.5 features like LINQ.

All of these things make 1.1 a very compelling browser-based application development platform. If you can live within the cross-platform constraints (currently only Windows and Mac, no Linux support) then you can use this instead of messing with JavaScript AJAX.

The SilverLight CLR includes a large portion of the full .NET CLR. It completely avoids things like COM interop which would be of limited use on a client (and a significant security risk) and instead focuses the core features and functionality in areas that will be usable in this environment. Features which may be interesting but not core (System.Data is one I can think of) may be handled via an optional download "pay for play" approach.

Besides LINQ, other cool features include JSON serialization, planned support for SOAP and WCF serialization, web service calls, isolated storage, HTML DOM access, video streaming (which can also use the new free streaming/hosting from Microsoft),image zooming, full support for IE, Firefox and Safari, the ability to build custom controls, and a huge performance increase when using C# vs Javascript.

Silverlight 1.1 is a 4mb download compared to the approximately 50mb required for the full desktop CLR. The performance and size optimizations made to make Silverlight tight will likely be rolled into the primary CLR, so everyone benefits. Silverlight apps themselves, due to their vector-based nature and the already tight MSIL implementation, are very small.

Cross-Platform Debugging

Easily one of the more interesting things shown today was the ability to debug your Silverlight app, running on the Mac in Safari, from a Windows PC. It appeared to be full debugging with breakpoints and even real immediate window functionality (a change in the immediate window on the Windows PC was reflected in the Mac UI.

Where does Silverlight Fit In?

I love WPF, and I love smart client applications. Unfortunately, most people want web applications even for situations (like internal network apps) where a web app is just plain silly. Nevertheless, that's the requirement. There are also serious needs on the internet, and a browser-based app is almost a given there.

Silverlight gives us many of the features of smart client apps combined with many of the features of browser-based applications. While it does not (and almost certainly will not) have the the advanced WPF features like true hardware accelerated 3d, the changes made in 1.1 make Silverlight a compelling web application client technology. If a Linux port happens, it will help people who need to check that box off when comparing one technology to another.

Last year,  I saw WPF/E as a bit player in the UI. It would live inside a small div tag and offer some additional, but optional, richness to an app - like an enhanced product viewer on an eCommerce site. This year, I see Silverlight as a real application development platform, every bit as important as AJAX. I also expect that since this is a web technology, it will see a significantly higher adoption rate than WPF.

If Microsoft gets the penetration they expect (remember, MSFT has several large properties through which this can be pushed), I see this technology being a required skill for web application development going forward. For a traditional .NET shop, the .NET skills port nicely, the design skills need to be grown or hired, and the core application development skills (tiering, transactions, server-side code etc.) all apply. Best of all, they apply both on the client and on the server, whereas with straight ASP.NET, they only apply on the server.

I can easily see doing rich .NET-based browser applications supported by ASP.NET and WCF (and WF and other important technologies) on the server over the next couple years. I also see this is a place where talented development companies who adopt early can differentiate themselves from the straight low-rate .NET body shops (on and off-shore), and break into some of the area currently controlled by high-rate design shops. 

Tool Support

Silverlight 1.1 uses Expression Blend 2, Expression Media Encoder, Expression Design and Visual Studio Orcas as the development tool suite. Blend 2 and Design will be essential to any design work. Similarly, Orcas will be a requirement for any .NET code. There will be some slight overlaps in functionality between the tools, but you won't be able to develop a real RIA without at least Blend 2 and Orcas.

What Next?

I'm currently working on a Silverlight application for Conservation International (targeting SL 1.0 or 1.1 is up in the air at the moment). This will be a true, self-contained RIA that will showcase a few of the things Silverlight can do with data entry, vector graphics, images, and videos (along with a couple other extras thrown in for good measure). I'll post more once that is complete this summer.

References

 

   
posted by Pete Brown on Tuesday, May 1, 2007
filed under:    

1 comment for “MIX.Silverlight”

  1. Pete Brownsays:
    PS. LOTS more developers here than last year. The dress is not anywhere near as trendy as last year :)

    To me, that says that I'm not the only developer/designer crossover out there that understands the opportunities here for differentiation and for adding to our core dev toolsets.

Comment on this Post

Remember me

1 trackback for “MIX.Silverlight”