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.
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.
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.
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.
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.
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.