MIX09 Brain Dump, Part 1: The Future of Web Development and Silverlight 3
For those of you that aren’t aware, I spent the majority of last week in Las Vegas, Nevada for Microsoft’s yearly Web, Design, and Media event called MIX. Honestly, this was my first conference experience and I enjoyed every minute of it, but I also thought that it was important for me to come back and share what I took away from the whole thing. Between attending sessions, meeting inspiring and brilliant people from the industry, and just exchanging ideas with random developers and designers, I felt that a switch had gone off somewhere in my brain and suddenly my perspective had changed. The future of development with .NET had presented itself to me, and I was impressed. Therefore, I decided that a brain dump was in order and I found myself sitting in front of a blank Word document and 5 pages of notes side-by-side.
Upfront, let me apologize for the lateness in this post, as MIX wrapped up nearly seven days ago, which is an eternity in internet time. I feel, however, that writing something like this was absolutely necessary for me to wrap my head around what has been called by many as the best MIX yet. To make this post a bit more readable, I am breaking it up into two parts: The Future of Web Development and Silverlight 3, and Prototyping and Designing with Expression Blend 3.
All along my windy four-and-a-half hour drive home from Las Vegas, I had a lot of time to think about the exciting things that I had seen and experienced at MIX. After filling up on gas and drinking a couple Red Bulls, I called a friend and had a great (albeit long) conversation about the future of development with the .NET Framework. We both agreed that Silverlight 3 changed the game in a lot of ways, and I gushed a great deal about how much Expression Blend 3 is going to help my company improve our designer/developer workflow. One thing that I noticed during this conversation was that with every new topic that came up, I began repeating the same thing after describing each feature: “And one of the most exciting things about that is…” This very same phrase has made its way into almost every single conversation I’ve had post-MIX, and it will probably make an appearance throughout this series of posts.
Finally, if you haven’t already, you should definitely watch some of the MIX Videos on their website. I highly recommend Scott Hanselman’s talk, as well as this RIA session, and this session on Expression Blend 3 and SketchFlow.
SuperPreview
Almost all of the work that I have done in the web development space recently has been with Silverlight, but I have to say that Microsoft’s new Expression Web feature, SuperPreview, actually makes me wish that I did more work with HTML and CSS. I know this is disgusting to a lot of web developers, but during the keynote, I found myself itching to find the difference in element pixel positioning for any website I’ve ever had my hands on. The fact that I can now ensure that any website that I work with is cross-browser compatible without installing every browser ever made is incredible to me, especially if it’s integrated into an Expression tool. Throw in support for DOM highlighting, as well as side-by-side and overlay comparisons between renderings of IE6/7/8 on the same machine, and you have a tool that any web developer can utilize.
Microsoft Expression Web SuperPreview (March Preview)
From what I recall, the future release version of SuperPreview will also have support for Firefox, Safari, Opera, and pretty much every other browser on the planet. By utilizing Microsoft cloud services, SuperPreview is able to generate accurate representations of your website in all of these browsers along with the full DOM. With SuperPreview, web developers can ensure that your website delivers the exact same layout for your entire user base, even spanning multiple operating systems. While Microsoft’s web design applications have not been so popular in the past, the new version of Expression Web looks very promising.
Silverlight 3
While SuperPreview reaches out to developers dealing with raw HTML and CSS, everyone at a Microsoft web conference wants to know about new features in Silverlight. This year, Silverlight 3 was given star treatment, with its new features spanning across all 3 of Scott Guthrie’s keynote categories (Web, Media, and RIA). Some interesting facts about Silverlight that were mentioned during the keynote: 350,000,000 installations of Silverlight, 300,000+ developers, and tens of thousands of apps being made globally. Frankly, I’m impressed.
Some of the announcements during the keynote about new features in Silverlight 3 that caught my eye were: support for H.264/AAC/MPEG-4 video codecs, GPU Hardware Acceleration and Hardware Compositing, Perspective 3D, a solid Bitmap/Pixel API, Pixel Shader Effects, WPF-style Theming, Animation Easing Functions, Deep Linking and Navigation URI Routing, Text Quality Improvements, Multi-Touch, ElementName Binding, Validation Error Templates, Full-Duplex WCF Web Services, and Cross-Plugin Communication (multiple SL3 apps communicating to other SL3 apps across multiple tabs and/or browsers).
Typing all that out made me truly realize… that really is a lot of features. Also, this is particularly impressive given that, during the keynote, it was announced that Silverlight 3 is actually 40 kilobytes smaller than Silverlight 2. It’s incredible to think that with all these new features, along with code optimization and compression, they were actually able to shrink the runtime that much. I really want to know the tricks that Microsoft used to add all those features without adding a single byte.
One thing that I want to focus on is Microsoft’s announcement of support for running Silverlight 3 Out-Of-Browser (OOB, or the slightly more hilarious acronym, SLOOB). This is very similar to the functionality that Google Chrome introduced by giving its browser the ability to add web apps such as Gmail and Google Reader to the desktop. This makes a great deal of sense because RIAs should perform in almost the same manner as web-driven desktop applications do. However, Silverlight 3 gives developers extra space in Isolated Storage (and the option to ask users if they’d like to scale that storage) as well as access to out-of-the-box asynchronous/full-duplex WCF services. This could potentially allow a Silverlight OOB to sit in Windows 7’s taskbar, and when run, notify the user when an update is received. And because this is a Silverlight OOB, it’s still run with partial-trust inside the sandbox while also being managed C# or VB with the power of WPF. I am very excited to see the Silverlight 3 OOB solutions that people come up with down the road, and you should be too. Also, please visit Tim Heuer’s blog for a more comprehensive explanation of Silverlight 3’s Out-of-Browser Update Model.
Mike Harsh’s Silverlight 3 demo, Slidentity, running out-of-browser
We will have to wait, however, to see if Silverlight 3 gives developers the power to do some more advanced features, such as customizing the chrome of the Silverlight OOB, which seems to be a popular request. Also, it seems that Silverlight now can compete with not only Google Chrome/Gears, but also with Adobe AIR (especially with native support for full-duplex asynchronous WCF). Hopefully this newfound battle of the Desktop RIAs will inspire innovation within all companies involved, which is ultimately good for both end-users and RIA developers in the long run. Be on the lookout for more posts from me in the future about Multi-touch with Silverlight 3, as well as Silverlight Out-of-Browser.