MIX09 Day 1 Keynote Pt 2: Scott Guthrie on Advancing User Experiences

Bill Buxton talked about why user-centered design is so important; now we’re going to talk about the “how”. We’re going to be talking about three key categories today: web, media and RIA. One of the things we’re trying to do is to provide a single platform – the .NET Framework – that can be used to build applications for each different location and reuse code and development tools across each place.



Let’s start by talking about front-end development. Tomorrow, Dean Hachamovitch will be talking about how to build great IE applications. Today, I’m going to talk about the work we’re doing with the tooling to support that.

The Microsoft web platform is a powerful set of tools and technologies optimized for building and hosting next-generation web applications. As well as the technologies we produce ourselves, we’re also increasingly integrating with other existing solutions out there in the open source space like jQuery and PHP, and making sure they run well on the Microsoft stack.

Expression Web 3

Let’s start by looking at the work we’re doing with Expression Web 3. Expression Web 3 includes a set of new features, supporting standards-based web authoring, multi-language targeting, secure FTP support, CSS diagnostics and SuperPreview, which solves the common problem web developers face of ensuring that a web application works consistently across a broad set of platforms.

SuperPreview will be built into Expression Web, but today we’re also releasing it to the web in beta form as a standalone tool.


Now let’s talk about server-side development. Over the last year, we’ve been iterating on a new model for ASP.NET MVC as an alternative to the existing Web Forms model. One benefit is that you get full control over your HTML markup; it also supports SEO-friendly URL routing and test-driven development workflow. It’s also easily extensible, and it’s great to see how the broader community is taking advantage of this.

Today, we’re releasing ASP.NET 1.0 MVC to the web, available for download immediately.


Visual Studio 2010 Profile ScreenshotLater in the conference, we’ll also be talking about the next release of ASP.NET 4. This provides lots of improvements: to Web Forms, to controls, more granular view state, and data binding. In the Visual Studio 2010 timeframe, we’ll also ship a second version of MVC, along with updated libraries for AJAX that include jQuery; you’ll also see us shipping a middle-tier cache codenamed “Velocity”. We’re also advancing Visual Studio 2010, including code-focused improvements, better JavaScript / AJAX scripting support (including jQuery, Prototype and Dojo), SharePoint and publishing and deployment improvements including support for multiple profiles.

In addition to the work we’re doing to ASP.NET on the programming side, we’re also doing a lot of work on our core web server. Last year, we shipped IIS 7 – a major update. One of the big innovations was infrastructural work to support extensions. Today we’re shipping eight new IIS extensions, providing a ton of new functionality including URL rewriting, a new FTP stack that supports secure FTP, WebDAV, an application routing engine that supports forward proxy, and bit rate throttling.
IIS Extensions

Web Platform Installer

One of the common themes you’re going to see throughout this event is a lot of new capabilities that you can take advantage of. But one thing we often hear from customers is that it’s hard to find all these different technologies. So today we’re shipping a new 2.0 update to our Web Platform Installer tool, which provides a unified list of all the components in the web platform stack – those shipped in-box and those shipped separately; you can optionally also choose development or design tools to install at the same time and have it all installed in a very easy way. The Web Platform Installer is a 1MB tool that can save you hours of time.

In addition to enabling you to download our own technologies, we’re also integrating support for a Windows Web Application Gallery – a portfolio of tested ASP.NET and PHP applications like DotNetNuke, DasBlog, Graffiti, Drupal, WordPress, phpBB that you can quickly install on your machine to get up and running.

You can download the Web Platform Installer 2.0 Beta immediately online.

Commerce Server 2009

Another release this week is Commerce Server 2009 – there are sessions here where you can learn more.

Azure Services Platform

Microsoft is also making a huge investment in our cloud computing platform; at the PDC08 in October last year, we launched a preview of our Azure Services Platform. We’ve seen a lot of user-generated demand for new features; today, we’re announcing a number of new capabilities that will be available this week.

For the underlying Windows Azure platform, we’re adding FastCGI / PHP support, along with the ability to run full trust .NET applications; SQL Data Services goes relational, allowing you to use the full ADO.NET stack, LINQ to SQL, and so on inside a cloud offering; lastly, the .NET Services Platform expands to support more web standards. We’re on track for commercial release later this year.

Microsoft BizSpark

We’re also highlighting Microsoft BizSpark, a marketing program designed to provide software entrepreneurs and startups access to the software they need to build their business for free for three years.

Jeff Atwood and Joel Spolsky showed off stackoverflow.com, a startup built by developers for developers on Microsoft technology.


Let’s change gears and talk about Silverlight. Silverlight 1.0 launched just eighteen months ago, and we shipped our second release last October at the PDC. We’ve already had over 350 million installs, we have over 300,000+ developers and designers, 200+ partners in 30 countries, over 200+ Microsoft products and websites that are using Silverlight; this week we’re shipping two more sites: a Silverlight-based web client for the Microsoft Worldwide Telescope application, and a Virtual Earth Silverlight Map Control Interactive SDK that makes it easy to add mapping to your app.

There are tens of thousands of Silverlight sites already out there including AOL, eBay, BSkyB, Netflix, CBS, CareerBuilder.com, Samsung Electronics and Yahoo! Japan.



Kevin McEntee, VP of Web Engineering for Netflix shared their experiences as an early adopter of Silverlight.

One year ago, Netflix began looking at Silverlight primarily as a way to get media streamed to Macintosh computers. When we dug in further, we also wanted to broaden support for Firefox. Then we discovered we could produce a better solution for all platforms by eradicating platform-specific code, enabling us as a business to concentrate on producing the best possible experience for all of our customers.

Installers are evil! roughly 20% of our customers who had the appropriate system requirements wouldn’t make it through the process. A lot of the complexity came from the content protection issues. Now Netflix is out of the installer business – there’s just a one-time install that is supported by Microsoft that includes content protection and all the other media elements we need, allowing us to focus on our core business of helping our customers find and watch great movies.

Why is Silverlight uniquely suited for delivering these kinds of experiences? We’ve found that Silverlight is a great platform for developing video players. We want our customers to be able to start watching the video fast and then step up to a higher bit rate as soon as possible, all using a generic HTTP-serving infrastructure. But if we step up the bit rate too quickly, we get stuck in a rebuffering experience.

We’re learning by doing and enhancing our player on a regular basis. We’re using Silverlight to deliver better players transparently to our customers every two weeks without having to take them through a new install. Since we launched our player last November, we’ve halved the rebuffer rate. With our old video player, we were afraid to touch it because we knew it would be a painful experience to our customers – we’d therefore only update it every year. With Silverlight, we’re constantly enhancing!

The media stream source API gives us access at the right point in the pipeline to be able to really push the player. After we’ve done the innovation on Silverlight, we’re also able to take these same experiences and drive them into device-based players like Xbox and Roku.
In Silverlight 3, we’re looking forward to taking advantage of some new features from Microsoft, in particular GPU support for scaling and stretching video, expanding the range of processors and price points for running video playback, as well as taking advantage of all the other innovations and features that Microsoft have added over the last twelve months. We’re very happy with Silverlight.

Silverlight 3 Media

Let’s talk more about the Silverlight 3 enhancements we’re making. In Silverlight 3 we now have hardware-based media acceleration. We have new codec support (H.264, AAC, MPEG-4). We’re adding a new RAW audio/video pipeline API. Now you can write your own codecs in Silverlight using C#, VB or any other .NET language and add them into the pipeline. We’ve also added improved logging for media analytics, so as you watch the video you can monetize it with ads or track it for improving the experience.

We’re also announcing a series of enhancements for IIS Media Services that ship today: smooth (adaptive) streaming for on-demand content, which allows automatic cycling between different bitrates depending on machine and network availability, delivering a smooth experience for both H.264 and VC-1. Today we’re also announcing beta support for live smooth streaming, delivering the same experience even when content isn’t prerecorded. We’re integrating with CDNs like Akamai for edge caching, web playlists, bit-rate throttling and advanced media logging.

Expression Encoder 3 has built-in support for these Silverlight 3 enhancements; beyond support for H.264 and AAC as well as smooth streaming, notable additions include a new smooth streaming preview player that allows you to simulate transient network conditions, along with the ability to do screen capture. With live streaming, I can even pause the recording and seek back, just like using a Tivo.

imageLast summer, NBC hosted the largest sporting event ever held on the web, and they chose Silverlight to do this. Perkins Miller, SVP/GM Digital Media at NBC Sports is on-stage to talk about the background. A cacophony of statistics: 1.3 billion page views, 52.1 unique visitors, 75.5 million videos watched, 9.9 million hours of video consumed, 27 minutes of viewing per session, 5,000 unique clips viewed per day during the final week, 35 million mobile views, 130,000 peak streams, 3.4 petabytes of video delivered.

The next Olympics are the Winter Olympics, in Vancouver, Canada. We’re announcing today a renewal of our partnership with Microsoft for this. This is the ultimate product – fully HD, adaptive smooth streaming delivered at 720p. You’re going to get the DVR experience Scott demonstrated earlier – pause, rewind, super slow motion, high resolution frame capture, metadata overlays, live video alerts and real-time feeds of the latest and most popular clips.


image_thumb[33]Silverlight 3 Core Platform Advances

Let’s switch gears and talk about RIA experiences. In Silverlight 3, we’re introducing a collection of new graphical features for eye-popping experiences: GPU acceleration and hardware compositing (on both PC and Mac), perspective 3D support, bitmap and pixel APIs, HLSL-based pixel shader effects (with out of the box support for blur or drop shadow as well as your own custom effects), and plenty of DeepZoom improvements (hardware-accelerated, larger collections of images). Use this power for good and not evil!

We’re also adding features to improve application development support. Deep linking is a popular request, for ease of navigation and search engine optimization. In Silverlight 3 we’re introducing a page navigation framework that will enable you to hyperlink or bookmark directly into a page of the application. We’ve also done a lot of work to improve the text quality, added multi-touch and gesture support on Windows 7. On the controls side, we’ve added over 100 controls along with support for caching, so you can use more controls without slowing down application initialization.

David Anthony from Bondi Digital Publishing and Scott Stanfield from Vertigo shared their experiences as a Silverlight 3 early adopter. Bondi has always felt like offline publishing would move to the Internet at some point, but we never felt that the user experience was suitably comparable with the printed edition.

Scott: our “competition” is the paper magazine! Showing a beta of a new digital archive of Rolling Stone magazine. This enables you to view and page through articles online just as easily as with a physical magazine. You can zoom in or out using DeepZoom technology, hyperlink through from one page to another, and search for information. Note that the content is highlighted thanks to the bitmap APIs in Silverlight 3; you can also flip the search out of the way using perspective 3D. On a multi-touch machine, you can even use standard gestures like “pinch to zoom”. RollingStone-Screenshot01_thumb[14]

The Rolling Stone application will be made available later this summer from their online site (note that this URL also includes links to their Playboy digital archive, which launches today also – use caution if you’re clicking the link at work…!)

Expression Blend 3

One challenge we have to face as designers and developers is: how do we build one of these things, from requirements gathering to final delivery. Bill talked in the first keynote about the challenges here and some of the ways that we could make it better in the future; in Silverlight 3 and Expression 3 we’re trying to make that future better together.

Today we’re introducing Expression Blend 3. Blend 3 introduces a new feature called SketchFlow, which makes it easier for designers to start iterating on the flow of the application along the lines of Bill Buxton’s talk. It also adds support for importing image assets from Adobe Photoshop and Adobe Illustrator, behaviors (allowing you to add interactivity to objects without writing code), the ability to “design with data”, source code control, along with XAML, C# and VB code IntelliSense in the code editor.

For a more comprehensive guide to SketchFlow, you’ll want to check out Christian Schormann’s blog posting on this technology.

We know how important it is to integrate with existing platforms; in October, we announced our first support for Silverlight development using Eclipse on a PC; today we’re announcing an extension of that support to include the Macintosh.

Eclipse Mac Silverlight Support Screenshot

Silverlight 3 and Data

Let’s talk a little about data. We’ve done a lot of work to continue to evolve the rich data features in Silverlight 2. There are data binding improvements, including element-to-element binding, validation error templates, multi-tier REST data support (.NET RIA Services, previously codenamed “Alexandria”) which solves the age-old problem of how you push the changes back from client to server. And then, to make it easier to retrieve data across the network, we’ve added support for binary XML as well as server push notification.

SAP and Silverlight

imageA quick customer reference: SAP wanted to enable their customers to take advantage of a rich set of controls and the advanced graphics capabilities. As a result, SAP has partnered with Microsoft to further enrich the user experience for SAP’s well-established Web Dynpro UI technology with the powerful capabilities of Silverlight. The combination of Web Dynpro and Silverlight will deliver a rich user experience for business applications with minimized development costs. These capabilities are planned for coming release of SAP NetWeaver.

Silverlight 3 “Out of Browser” Applications

An announcement you’ve all been waiting for: we’re also doing a lot of work in Silverlight 3 to enable “out of browser” experiences on both Windows and the Mac. This enables a bunch of new scenarios: extending media experiences that are pervasive, companion applications for your website, and lightweight “data snacking” applications like gadgets and widgets. In Silverlight 3, we’ve made it very easy for end-users to go ahead and install these kinds of applications. We don’t need to show a scary security dialog because we’re running in the same context as the browser; it’s safely sandboxed.

It includes auto-update support: you can simply copy over the file on your remote server and Silverlight 3 will automatically detect an update has occurred; the next time a user is online they’ll get the application transparently updated. As well as APIs to detect whether an application is running in- or out-of-browser, we’re also adding offline-aware capabilities; you can handle an event in your application that enables you to detect whether the machine is connected or not and produce a differentiated experience accordingly.


Tom Mara, Executive Director of KEXP is on-stage showing their new Silverlight 3 radio player. KEXP’s mission is to get a wide and deep array of music into people’s lives: everything from indy rock to jazz and blues, all melded together. KEXP started in 1972 as a 10W station, and has grown incrementally since then, both within Seattle and beyond. In fact, a full third of the listening audience these days is outside of the state of Washington (just seven years ago, only 2-3% of listeners were remote).

This is what the new KEXP player is going to look like:KEXP Player Screenshot

You’ll see that we’ve got the live stream metadata, listener comments that are connecting with the DJ live. I can come in and add a comment. Even if the network connection goes, I can continue to use the player on the bus to watch other videos that I’ve saved – Silverlight 3 provides support for detecting offline scenarios.


So you’ve seen a lot of amazing features: media, graphics, multi-touch, data binding, networking, application model.

People will be wondering how big Silverlight 3 is with all these new features. We spent a lot of time tuning new and old features and improving the compression, and the new download package is actually 50K smaller than the old release – it’s now even faster to install with a ton of new features to take advantage of!

Silverlight 3 Beta is now available for download. We’re really looking forward to seeing what you build!