Remarks by: Ray Ozzie, Microsoft Chief Software Architect; Steven Sinofsky, Senior Vice President, Windows and Windows Live Engineering Group; David Treadwell, Corporate Vice President, Live Platform Services; Scott Guthrie, Corporate Vice President, .NET Developer Division; Takeshi Numoto, General Manager, Office Product Management Group
Microsoft Professional Developers Conference 2008
Los Angeles, California
Oct. 28, 2008
ANNOUNCER: Ladies and gentlemen, please welcome Chief Software Architect, Microsoft Corporation, Ray Ozzie. (Applause.)
RAY OZZIE: Hello, PDC, great to be back. Hey, I really hope you enjoyed what you saw yesterday during the keynotes and the breakout sessions. We've got a lot of great things in store for you today, hopefully a few surprises.
When I spoke with you yesterday, I talked a bit about our industry transformation towards services and how Microsoft is embracing services and service-enhanced software to transform our offerings across the board from our back-end infrastructure to our business solutions to our client OS, our desktop apps, our run times, and our tools.
Yesterday, we introduced Windows Azure, Windows in the cloud. We introduced you to our Azure Services Platform, a comprehensive suite of services that will provide a host of new opportunities for Web developers, business ISVs, and enterprise developers who wish to expand their solutions into the cloud. So if yesterday's keynote was about a computing foundation, the back end here, service to infrastructure and business, then as promised, today we'll take more of an outside-in view, a view from the perspective of the user interface and our experience.
Today, we'll talk about the front-end innovations in our client platform, in our OS, and in our apps. You'll get a sense of our take on the future of personal computing in an era that's not just about the PC anymore, but rather, has grown to be about the PC, phone, and Web.
You know, for many of us, the things that we think about when we hear that term, personal computing, are the things that we've been doing with the PC for so, so many years: e-mail, presentation, docs and spreadsheets. All of these things are still so very core to what most of us do on a day-to-day basis with a PC. And if you've got gray hair like mine, the term "personal computing" might even remind you of the days when it was truly a wild aspiration to have a PC on every desk and a PC in every home.
But for many of us here today, it's really hard to imagine a home or a teacher or a student who doesn't have some kind of access to a PC. It's even harder to imagine a desk in our workplaces without a PC. I mean, what would you do all day? (Laughter.)
For those of us who have used the PC for the past 10, 15, or 20 years and throughout countless events in our lives, it's really easy to forget just how much this amazing tools has changed over the years, how it's grown as our needs have grown. Without thinking twice, we've grown to entrust it with our family memories, our finances, our contracts, the records of our health.
In our industry, it's only natural to be excited about the potential of new technologies and to focus all of our energy on delivering the promise of that next big thing. But in times like these, when so many of us are just pausing for a moment to take the time to reflect on the fundamentals and on value, it's been interesting for me to reflect upon the PC and Windows and how over the years, together, they've exhibited such flexibility, such resilience, such adaptability to our changing needs.
And that's why it gives me such optimism to show you what we're going to show you today in terms of how the PC is adapting once again to be even more relevant and more valuable in this era that's so centered on the Web.
It's getting hard to find things that haven't been impacted by the Internet over the course of the Web's brief life by its technologies, its community, its connection to so much of what we do. And yet, even though each one of us sits down every day at a PC and uses a browser on that PC for hours on end, the Net and that PC are still two worlds apart.
To date, we've barely scratched the surface of how we can use the PC to improve the value of what we do on the Web. We've barely scratched the surface of how the Web can improve the value of our investments in our PCs. If you take one thing away from what you see here today at PDC, it's that we can do our customers a great service by focusing on how we can give them the most combined value of their investments.
The fact is, we're almost all going to have PCs, a phone, and rich access to the Web. And so it's our objective to make the combination of the PC, phone, and Web clearly more valuable for our customers than just the sum of their parts.
So if these things are going to add up to something more, add up to something better, what are the unique and differentiated aspects of each of the PC, phone, and Web? What is it exactly that has made PC-based Windows apps so uniquely valuable and so effective at what they do for so long? Well, the fundamental advantage of a PC is that both Windows and the apps are sitting right next to the hardware, the processor, memory, graphics, and disk.
If the user is going to spend a ton of time in an app, especially if it's a highly interactive app, then from a user's time perspective, and thus from a user's value perspective, it just makes so much sense to place the user very close to that app. By putting an app on a PC, you can take advantage of today's very high-resolution screen, or even multiple screens to increase the context surrounding the user. And that might take advantage of a PC's natural input, voice, or drawing on a tablet, or gestures that a user might make on a touch-sensitive screen.
I know this may sound trivial, but through simple, simple mechanisms like the clipboard and drag and drop, users find real value in combining their applications so they kind of seem to them as though they work together as one. And of course users find immense value in the storage on their PCs for confidentiality and mobility, for speed of access and local convenience for documents and rich media, photos, videos, music, and more.
The bottom line is that the Windows PC's most central value will always be in the way it enables one to richly create and consume, richly interact with, and richly edit a world of information that's relevant to you. It's an unparalleled, high-performance, time-saving, and productive personal information management device.
So if that's the core strength of the PC, then what's so unique about apps built for the Web? Well, first and foremost, the power of the Web is that it lets us access the world. If we need to communicate with someone or rendezvous, we all now know just what it is we're supposed to do. If we need to share some information or do a quick transaction, we all now know where it is we're supposed to go.
Between the e-mail address and the URL, the Internet has become our common meeting place, a common language. It's every company's front door. Yes, the browser as universal run time is cool and it's really useful, but this is not the core of the Web's sustainable uniqueness. The Web's unique value is in its ability to assemble the world's people, the world's organizations, its public information, its services and devices, enabling us to connect, to communicate, to transact, and to share.
And what about the phone? Well, writing software for a phone in many ways has the same advantages as writing software for a PC. Phone software is very, very close to the hardware, and that has full access to the capabilities of any particular device. But the truly unique advantage of a phone-based app is that it's always with you and it's ready for your spontaneous action. The phone knows where you are, what time it is, so it can tag your location on something.
With its camera, you can snap a picture in the context of what you're doing. You can record a quick idea or use text or ink to jot down a note. There's no better way than a phone for you to immediately comprehend that something that you care about is suddenly in need of your attention.
And so the phone's most unique value will always be in how it enables an app's spontaneity, things like notification and capture wherever you are. For a given customer and for a given solution, each of the PC, phone, and Web has its own unique role, its own distinct value. But when taken together, they're far more valuable than when they're thought of apart. And an app that spans all three can deliver the best editing, the best sharing, the most spontaneous action and notification.
And delivering this kind of simple, seamless, integrated experience is at the heart of the value in our next-generation services, OS, and applications. And we can also provide the same platform value to all of our developers. We can provide the means by which you can do the same.
At Microsoft, we have a lot invested in developing software, just like you. We need to build great Windows apps, we need to build great Web apps, we need to build great apps for the phone. We need these platforms to work together and, yet, we also want full access to the power and capabilities of each. And so we're investing to make Windows and our development tools and run times the best way to build and deliver software for the PC, phone, and Web.
For a Windows developer, we'll advance the platform in two very distinct ways: First, you'll always be able to look to our newest version of Windows, such as Windows 7, to deliver our best platform and experience innovation and to bring new hardware capabilities to the user in a meaningful and compelling way.
We'll also continue to invest in advancing the capabilities of the broader install base of Windows, periodically delivering significant updates to our platform and our run times such as .NET framework and Direct X.
You'll also see our Windows app model continuing to evolve, taking on some of the best characteristics of what's so natural to do on the Web. Windows apps that are more seamlessly downloaded or optionally isolated and cached, a more appliance-like behavior in how we deal with our data and our apps.
And for the Web developer, for our work in IE8 and for our work in our platform and tools, you'll see that we've put a huge focus on enabling you to build great, contemporary HTML, CSS, Ajax Web apps, across platforms and across browsers. And for those wishing to deliver truly differentiated Web experiences, Silverlight 2, which has now gone live, extends those browsers with rich media, rich controls, and the power of .NET.
This morning, you'll also see how we're evolving Web apps to have some of the best characteristics of being a Windows app – mMaking Web apps installable, auto-synching content, taking Web apps offline.
Regardless of whether you're developing for the Web or for Windows, we know that today you've got an unprecedented number of options in your choice of platforms and tools and run times and frameworks. And depending upon whether you're a Windows ISV or a developer in business solutions or a game developer or a Web developer, your needs may vary quite considerably. And so I'm not going to stand up here and give you some grand pronouncement that one specific language or one specific run time that we've got will suit all your needs for all time to come. But as you'll see, we are investing heavily and we're innovating and we're proud of our Windows platform and where it's going. And I think when you look at what you see today, I think you're really going to like what you see.
So there's a lot to show, and let's get started. This morning, Steven Sinofsky, senior vice president of our Windows engineering team, will take you on a tour of Windows 7 and Windows Live Wave 3, showing you the significant investments we've been making in our client and how we're working toward a vision of seamless software and services integration between Windows 7 and Windows Live.
At the platform level, Scott Guthrie and Dave Treadwell, together, will talk about development in a world that spans the PC, phone, and Web. Scott Guthrie, corporate vice president of our development platform team, will show you how our platforms, run times, and tools make it easy to write great Windows apps and great Web apps.
Dave Treadwell, corporate vice president of our Live Services team will show you the Live Services component of our Azure Services Platform that you saw yesterday, and how this service is the key enabler of our vision of creating bridges between the PC, Web, and phone.
Finally, Takeshi Numoto, general manager in our Office business, will bring it all together using the Software plus Services platform to extend Office into the realm of connected productivity, productivity across PC, phone, and Web.
But first, let's talk about Windows 7. And to do so, I'd like to introduce Steven Sinofsky. Steven? (Applause, music.)
STEVEN SINOFSKY: Welcome, everybody, to the PDC. It is really, really an honor and fantastic to get a chance to welcome you to Windows 7 and our first public demonstration. On behalf of all of you and our Windows team, we're really excited to bring this to you today. Thanks, Ray, for that introduction.
So I'm all that stands between you and the first demonstration of Windows 7, so I thought what I would do is I'd just quickly introduce what we're going to show you today. We're going to start off and show you a demo of the Windows 7 client. As you know, we also have In Synch, a version of Windows Server 2008 R2, and they share the same kernel, but today we're going to focus on the client.
We'll talk about software and services and the work that we're doing to bring it all together as Ray talked about, and we'll go through the transition from Windows Vista, APIs, and we'll talk about fundamentals to give you a broader context of the release. Finally, we'll go through the path to RTMs that I know a lot of you are very interested in.
So as we show Windows 7, I want everybody to think along three lines that we're going to show you today. We're going to show you how Windows 7 brings you a personalized experience where you're in control of your PC. We're going to show you how you can connect whether it's devices or storage or all the information so you can find and organize the information across your PC, and then we're going to show you how to bring together all the functionality of devices, and those are just three of the areas that we're going to show you today in Windows 7. It's a very broad release and it takes a lot to bring out a major release of Windows. There are many parts of it we're not going to get to show you today, but there are 20 sessions here at the show that dig into the details of how all of this is implemented.
So to do this demonstration, I'd like to invite Julie Larson-Green on stage. So it's exciting for us. Julie and I are both long-time PDC attendees, both of us having been developers way back in the day. So please join me in welcoming Julie on behalf of the Windows team, too. (Applause.)
JULIE LARSON-GREEN: Thank you, Steven. Let's just get started. Right down on the bottom you're going to see a new task bar. In previous versions of Windows, we had multiple places for you to go and launch and switch between Windows and your apps on your PC. We had both the start menu for launching applications, a quick-launch area, and a task bar for switching Windows. On Windows 7, we've brought all those places together into one view where it's easy to find the applications you want and the windows you want to get to.
Let me show you how it works here. Here I have Internet Explorer and as I mouse over Internet Explorer, you see the windows that are associated with it. As I go over Explorer, you can see it as well, and here I have Word. And applications that aren't running, you don't see any windows for. But when I click on them, you get the window. So when I switch over here to, say, one of the windows, it brings that window forward so I can easily get to the one that I want to and be sure -- because sometimes that thumbnail is just a little too small and you want to be able to be sure what the window is that you want to get to.
When I switch to this one here, you can see that there ars two tabs in Internet Explorer. And when I'm mousing over there, it's showing me the tabs as well as individual windows, making it very easy to find that tab that you want to get to and get to it with one click. (Applause.)
Over here in Word, I can do the same thing, and you can also manage your windows from right inside the thumbnail. So I can go ahead and decide to close a window here. I can also bring up what we call jump list by right-clicking and it gives me the MRU list, or the most recently used applications that I've used in Word. I can go ahead and launch one of those very quickly and easily and reduce the number of times it takes for me to get into Word, go to the file menu, find that document. Now within two clicks, I'm back working on the document that I was working with the day before.
Now, people tend to get more than one window open on their screen. So we've been working on window management features as well. So when I drag this window over to the side, you see it snap to the left, and I can drag another one and snap to the right. And that's easy to compare between and drag/drop between two documents. (Applause.)
I can also make it full screen just by docking it at the top and then drag it back down. Really handy on multiple monitors to go and take a full-screen document on your separate monitor.
Now, as I said before, it's very easy for you to put these things on your task bar, so just drag it from the start menu, drop it there, and it pins it to the task bar and I have full control over the order and the things that are in the task bar. So I can move them -- how long have you wanted to be able to do that? (Applause.)
So we saw people in our usability labs just shutting down all the programs and opening them up in a particular order to get into place, so we thought it should be super easy to have it work the way you want it to and put your favorite applications so that muscle memory can really take over.
And then here on the start menu, we also support jump lists so you can see the things that I can get to very quickly and easily and making it super quick to get to the work and the windows that you want to do.
Now I'm going to bring up the Windows Explorer and show you how you can get to all the things that are on your computer. So in Windows Explorer in Windows 7, it brings together all the places that you can access your data and information from with a new innovation called libraries, it brings together the flexibility of folders, the power of Windows Desktop Search, and it spans across multiple storage locations. I'll show you what I mean.
Here I am in documents. I have multiple library locations. So these library locations can be anywhere, any external hard drive, a thumb drive, other computers inside your home, and you can pull them together in one view so you can search and filter and view those files all in one place. So here I am in that documents view across two libraries. In search, we've added the capabilities of being able to see what key words that you have access to so you don't have to try and figure those out and learn those.
I'm going to click on “type” and say, “give me a list of all the types of documents that I have on this computer.” I'm going to choose docsX, which is a Word file, and it's going to bring up all the Word files for me really quickly and easily. I can also type in, say, a keyword like "marketing." I've been doing a lot of that kind of stuff lately, and it's going to bring up everything that has the word "marketing" in it with a yellow highlight. We also still have previews, so you can still preview the document, and it makes it super easy for you to get to the things that you want to get to.
Now, home networking has been around since Windows 3.1 for work groups, and I don't think many people -- except maybe the people in this room and a few outside of it -- have been able to get it to work. But in Windows 7, we've made it super easy with home group by just simply connecting to your own network at home, all the Windows 7 PCs on your home network find each other and are automatically connected to the printers and other devices that are on your network. So let me show you a little bit about that.
Open up the network and sharing center, and you see all the options you have for sharing. So the way this works is you come home from work, you bring your own home laptop in, you connect to your wireless network, and then you're automatically connected with a simple PIN to the rest of your home group, all the printers, all the computers, all the wireless devices that you use, maybe a home theater system device or a photo frame are all available for you automatically from connecting into that network.
You can control what's visible to others in your home. By default, you get pictures, music, printers, and videos. You can add documents, you can also restrict individual items and individual folders if you don't want other people in your home seeing those things.
Let's take a little bit more of a deep dive into home groups. Here I have another PC called Kaitlin's PC, and I'm automatically connected and I can look at her music, I can go back and look at her pictures or videos or documents. I'm going to do a search here. I did this search earlier, a search for Red Thread. And I don't have Red Thread music on this PC. So with people having more and more music content, video content around their home, we make it very easy for you to search for it. You don't have to remember what PC to go to to get that content.
So here I'm going to search across my home group and I find Red Thread and I can go ahead and click this. Now it's on the Caitlin PC – it's right over here. I start playing it in the new…there we go. (Music plays.) And that's our new player. The new lightweight player for Media Player, but of course the libraries are still there. So you can go into Media Player and create play lists and do all the things you can do in past versions of Windows, different tiers, the libraries on the left-hand side are the same libraries that you see in the explorer.
Media center also uses the same libraries so you manage and create and use your content in the same way across Windows Explorer, Windows Media Player, and Windows Media Center.
So here I am in the Media Player. And I talked before about how I connect to devices. So I'm going to go ahead and right click and play to a device that's on my network. It's a Sono Media Renderer, right here. (Music.) It plays a song. And so I'm playing music from the other computer on my home group, on Caitlin's PC, to my home stereo from this PC. (Applause.)
STEVEN SINOFSKY: And you can also do that with videos and pictures as well. So if you have a photo frame or something like that, you can send your media all over your house.
JULIE LARSON-GREEN: Right. Thanks, Steven. And right here, I have a Motorola phone. And devices are getting more and more capable as time goes on. Most of them are turning into multi-function devices, and there's a ton of these devices that can work with Windows, offering you a lot of choice on what you want to use with your PC.
In Windows 7, we have a new feature called “device stage” where we bring together all those capabilities that are present in that device into one place for you to see everything that you can do with that device. So here I am on the device stage for the Motorola ROKR. I can set up my synch capabilities. I can manage the media on my device. I can browse files. I can go and find that documentation because I probably threw out the manual when I got the box, so I can go online and get that. And anything that the device does can be exposed through the device stage.
When I click on devices and printers, I see a view of all the devices that are connected that I can work with. Over here, the Canon inkjet printer is part of my home group. And it is the printer that is connected to Caitlin's PC. Behind the scenes, seamless to me, that printer was installed just as if it was a local printer and I can use it to connect and print documents without doing any additional work.
Now, we do one thing extra that when you come home from work and you connect your laptop into your home group, we automatically switch you to the home printer. And then when you go back to work, we automatically switch you back to the work printer, so no longer… (Applause) no longer printing those personal documents at work, or those work documents at home.
But even with all this power, Windows 7 makes it really easy for you to keep the desktop clean. We have changed the way the gadgets work so you no longer are confined to a bar and you can have them anywhere you want on the desktop. (Applause.)
I was surprised to learn when I came to the Windows team how many people actually personalize and change their desktops. Over 95 percent of our users change the desktop, some of them doing it many more times a month. Now, lots of people change them in different ways. Some of you power users probably like a plain, dark background and someone else might want something a little more colorful. So I'm going to go ahead and choose one here, and I just go over and take a peek at my desktop and see if I like this one. I'm moving down to the bottom, right-hand corner to take a peek at that desktop. That one looks pretty good, let's try one more. Ah, here's a set of windows.
STEVEN SINOFSKY: We've also made it easier to share and create themes on your own, and I know that's something that's really important to people.
JULIE LARSON-GREEN: And besides being able to package them up and share them, you have a lot of capability to customize them to what you want to look. So here we have some presets on what the glass color -- and if you noticed at the top of my window and the bottom of the task bar, you can see it automatically updating. So we bring glass all the way down now, I have a lot of choice on mixing those colors. Let's make it a little bit more on the brown side and maybe change the hue just a little bit there. So you can very easily package up and change and update your desktop as quickly and easily as a couple of clicks.
Now, another way that you can stay in control of the way that your computer is working for you is down here in the system tray, down here on the bottom right-hand corner. This is the area that is considered the notification area, and it's the place that all those little annoying pop-ups keep coming up and asking you to do things right in the middle of your work, asking you to download vendor definitions when you're trying to get a presentation out.
Now in Windows 7, only you have control of what is in the list and in the system tray. By default, every icon moves into this upper area, and then you can move in or move out and rearrange exactly what you want in here. You also have control --
STEVEN SINOFSKY: Okay. We like it too. (Laughter, applause.)
JULIE LARSON-GREEN: You also have a lot of control over how to customize those notifications. So here everything that comes into the tray, you have the ability to change and show and hide all the notifications and how the icon shows up on the tray.
We also bring together all of the things that you can do to manage your PC with the action center. This is where all those messages get cued up until you're ready to deal with it yourself. So I open up the action center and it's one place to go to maintain the security and look at your PC's performance and brining together all those other places into one view.
STEVEN SINOFSKY: So one of the key things about the PC is really the theme between hardware and software. So one of the areas that we really invested heavily in with Windows over the years is different types of hardware for interface and for interaction with end users.
So what we're going to show today is a little bit of the work we've done on touch, although this extends to the work that we've done in speech and ink, all building on a foundation over many years of work. So Julie's going to show you some of the touch work in Windows 7.
JULIE LARSON-GREEN: What I have right here is an HP Touch Smart, this machine is in the market today, it's under $2,000, it's a pretty cool machine. And what I'm going to show you is how we have augmented the user experience using touch. So you saw before when I showed you those jump lists. I'm going to use my finger to bring up the jump list, and you might notice there's more space between the items. There's 25 percent more space here, making it easier for me to go ahead and click using my finger as a mouse in that space.
Now, here I am in Word 2007, it doesn't know anything about touch or Windows 7, but we have repowered all of the mouse commands with touch. So even though it doesn't know anything about it, I can go ahead and pull, I can go ahead and zoom and do things that Word can do with the mouse with touch. (Applause.)
Now, if your program understands a little bit more about touch, you can do other things. So here I'm going to go ahead and launch Internet Explorer, I'm on Live Search, and Internet Explorer knows about the on-screen keyboard. And here I can go in and do a search, I'll search for Windows 7, and the predictive text on the on-screen keyboard, I've typed that before a couple times. Go ahead and choose that, then enter. And now when I click link, go to… I can use things like clicks and gestures to get back and forth on my page. So I go back with a click, I can go forward with a click, very quickly and with just a few clicks. (Applause.)
So Windows 7 supports a whole range of gestures and a whole range of mouse movements that can become gestures. Two other programs that have been tuned for touch are in the Windows Explorer. Here's a picture view. You can quickly and easily scroll, get a little feedback when I'm down at the end there, and a new refacing of Microsoft Paint with a new ribbon.
We've been working with the Office team on bringing the ribbon to Windows. (Applause.)
STEVEN SINOFSKY: We've also decided that once every 15 years or so we're going to update the app list in Windows. (Laughter, applause.)
JULIE LARSON-GREEN: Whether they need it or not, right?
STEVEN SINOFSKY: Whether they need it or not.
JULIE LARSON-GREEN: So you'll find things like a new calculator, new Word Pad supporting open document format and open XML and all kinds of new things there.
But here I am in Paint. And the ribbon interface makes it very easy for me to use it with touch. I'm going to go ahead and take a picture from here and drag it over, and then I'm going to use -- and dock it at the top. So you can see it, and then I'm going to use a brush to go ahead and pick the size, and say "hello from Seattle" on my postcard. Since this is multi-touch, I'll make a little heart. (Applause.)
So those are some examples of applications that don't know anything about touch, but can be augmented with touch automatically through the mouse commands, some applications that have learned about gestures, and programs specifically for scenarios in touch, and then there will also be applications that use touch as a primary way of input. Here, you might have seen this on the Internet before. Here is an application you can play with on the Surface tables, you can also play with it in the pavilion, and it makes it really easy for me to play and interact very easily and move around in the screen in an interactive way. And we think there will be lots of very cool applications coming out, multi-player applications, there's a Pong game over in the pavilion where you can play multi-player with touch on the screen, and it's been a lot of fun to think about new ways that applications can work using this new hardware innovation.
So that's just a small look at what we've done with Windows 7. I hope you really enjoyed it, and I can hardly wait to hear your feedback. Thanks. (Applause.)
STEVEN SINOFSKY: Thanks, Julie. Well, welcome to Windows 7, everyone. I hope that was an exciting first look for you.
What I would like to do now is talk a little bit about the work that Ray talked about and how we bring together software and services to really create a complete experience across the phone, PC, and Web. And the way we do that is we will deliver that with Windows 7, it's first and foremost by building on the core platform, the core OS platform of Windows 7. And with Windows 7, it too connects to software and services, whether it's the update service, the music meta-data service, or any of the assistance and online help that really connects to the core of Windows, every day, hundreds of millions of people around the world use the services from within Windows.
And of course Windows is also a great services platform for experiencing the Web with Internet Explorer 8. So in addition to all the work that we did on standards, we also made it possible for all of you as developers to extend your services to the PC platform using Internet Explorer, using some of the features that we've been showing in Internet Explorer 8 beta 2, such as Web slices and accelerators.
But software and services is all about choice and control of your experience. And we build on that with the Windows Live suite of essential software and Windows Live Services. And so Windows Live essentials is a set of rich applications that you can use to extend your PC experience to Web services. Some of these have previously been in Windows releases, and we've brought them all together into one suite of software. And this software is optional and downloadable and you can connect to your own choice of services, or to the Windows Live services.
So with Windows Live mail, you can use POP or IMAP or you can connect to Windows Live Hotmail and through that get a very rich experience with offline, synchronized contacts, synchronized calendars, and bring together your software and services experience to your PC so that you're in control of it.
Windows Live services extends this even further by making those services available to you in your Web browser, in Internet Explorer, or any browser that you choose. And it brings together a set of services for mail, for Messenger, for contacting your friends, for sharing photos, for sharing information and blogging.
And together, the Windows Live essentials and the Windows Live services represent this great opportunity for you to expand your PC experience to the Web and bring them all together in a software and services experience. And so we're already in beta 2 of Windows Live essentials, sorry, beta of Windows Live essentials and you can download that today as well. And over the coming months, we'll be showing the new Windows Live services as well. Together, this really represents what we think of as a complete communication and sharing experience across the phone, PC, and Web.
As we set out to build this release of Windows 7, we really did have to recognize the context with which we were releasing Windows 7 and developing it. And that's in transitioning from Windows Vista. We certainly got a lot of feedback about Windows Vista at RTM. (Laughter.) We got feedback from reviews, from the press, a few bloggers here and there. Oh, and some commercials. (Laughter.)
So as engineers, as an engineering team, we had to do what engineers do, which is you build a product, you build a service, you step back and you say, okay, what did we learn from that? What can we do better, what went well? How do we build on our experiences? And that's really what all of engineering is about is building on the experiences that we share together.
And so the first thing we did after the RTM of Windows Vista is we had to really take stock and make sure that we did a great job delivering Windows Server 2008 and Windows Vista Service Pack 1. And we looked at all of the things that people had raised, and we said we've really got to go increase -- improve the performance of the system, improve the compatibility, the reliability, and really bring people up to speed in the product that they expected us to release.
Over that first year, we increased the device coverage, we improved application compatibility, and we fixed important issues in the product. And we really did bring Vista SP1 to the level that today when we see customers, we know that the product is what they can use, they can deploy, and we're seeing that happen today. And so we were pleased with the progress that we made during that course. And of course Server 2008 with its robust kernel and the hardening that we've done there on security and reliability, all together demonstrated the commitment that we had to learning and improving as we moved forward.
But there were some key lessons that we learned as we developed Windows Vista. So I wanted to talk about those and make sure that folks understand the work that we've put into building Windows 7 and the lessons that we learned and putting those into practice.
So first there's the readiness of the overall ecosystem for Windows 7. And the ecosystem is really what Windows is part of -- hardware vendors, software vendors, the people that make personal computers, and all the elements that really bring a PC to life for a person at the end of that PC.
And with Windows Vista, we changed a lot of things that required a lot of work by the ecosystem -- the device driver model and so on, and with those, we really weren't ready at launch with the device coverage that we need. Today we know that well over 95 percent of PCs can get all their drivers with Windows Vista and we've got to do a better job of being ready up front with Windows 7.
Because Windows 7 is built on the same kernel as Windows Server 2008 and Windows Vista, there are no changes that are going to require a reworking of that ecosystem. And so all of the devices and all of the compatibility work that has gone on in the past two years of Windows Vista will pay off in the work that we've done with Windows 7.
The next area that we had to learn from is really the request from user-developers in our support for standards. And this particularly manifests itself in the work that we've done with Internet Explorer 8. So we got a lot of feedback about the support we had for cascading style sheets and the need to really standardize Internet Explorer on that core set of functionality that developers expect for building those Ajax and CSS applications. And so as you've seen with Internet Explorer 8, we've really implemented the CSS standards, the acid test, but we've gone a step further. We've released all of the compliance test work that we did to the public so that folks can test their own browsers, can test their own development, and also see how we validated against a very, very significant and complex specification .
I also mentioned we update our app list of every 15 years, well in Windows 7, we also updated Word Pad. And Word Pad will support the Open XML file format and ODS file format and we're excited to bring that support because we know that people have asked for it. And our commitment there is definitely very strong.
As far as the role of compatibility goes, we made some changes in Windows Vista that gave compatibility a few challenges. One small change – you know, some of you might have heard of the UAC feature. So of course we had all the best intentions of helping to secure the PC platform even more, particularly for novice or inexperienced PC users who need to be protected from malware and other things, and we probably went as far as you're concerned for developers a little too far and we learned the role that we play in trying to maintain compatibility.
On the other hand, the PC with Windows Vista is more secure now and the work that we've done to say, hey, it's really great to run your applications that you build in standard user mode, it's really coming to fruition now. And so we see the vast majority of software is able to run perfectly fine now in standard user mode. So we think despite the difficult change that we introduced, we did move forward the ecosystem in terms of really making it more secure for end users.
And then finally is the role of scenarios. And this is something that we really thought of from the very beginning of Windows 7, which is we've got to do a great job of bringing forward the end-to-end experience that customers will experience when they use Windows 7. Windows has always had a strong heritage in delivering really hardcore technologies to the marketplace. Working with partners, working with hardware, working with software vendors to bring new technologies to the market. But there was always that list mile, that last step that folks wished we would have helped deliver. And I think we really try hard in Windows 7 to do a great job on some key scenarios.
So one good example of that today is home networking. As Julie mentioned, we've had sharing and printer sharing and folder sharing in Windows since Windows for work groups 3.1. And, yes, unless you were one of you in the audience, it was probably pretty difficult to set that up in your home. With Windows 7, we brought that all together in one scenario.
Just to give you an idea of how that will manifest itself, even if you bring home your work laptop, as soon as you connect to your home wireless network, we'll say, hey, this is a home group, would you like to join this machine to your home group, maybe share the printer, maybe share access of the files? But we've also gone the extra length because we said, well, if it's your work machine, it's probably domain joined, probably don't want to have access through your home group to the files on that machine. So it will still maintain security, maintain that integrity of the domain join, but participate fully in the scenario of a home network.
So all this comes together to really represent the engineering lessons that we have that we've really tried to put in place in improving the engineering of Windows 7, and we started to share some of that learning on our engineering 7 blog. I think it's going to be a great source moving forward of the discussion, the dialogue that we're having with you, our fellow developers, about building a complex product like Windows 7.
For developers, there are a lot of things in Windows 7 for you. As we said, that was a demonstration of the end-user view of some of the features of Windows 7, but there are a lot of opportunities for developers as well. The first is the ribbon user interface. And so that's an opportunity for you to modernize your client user interface, to use a data-driven UI paradigm, and to make it simple to bring that interface to all of your customers.
So we've used interface, we've used in Word Pad and in Paint, you'll see it show up in Movie Maker, in Windows Live, and we're going to start to move that across a broad set of applications.
Two other features that are really important are jump lists and libraries. Jump lists are the little menus down at the start menu on the task bar that show up when you right click on the start menu, and libraries are the way to bring together search and storage locations and multiple computers. The idea of both of these is to integrate deeply with the Windows desktop experience. These are opportunities for you and your software to really work seamlessly through and across and with Windows. It's an opportunity for you to differentiate your software, and an opportunity for you to participate in the personalization, the choice, and the control that Windows 7 promises end users.
So you'll see this in Messenger and in mail -- Windows Live Messenger, Windows Live Mail, and all the applications across Microsoft will soon contribute to really bringing forward jump lists and libraries. Also libraries update the common dialogue and that makes it easy for you to access the libraries and use them when you use the common dialogue.
As we talked about, Windows is about bringing together the new hardware innovations and the software innovations and bringing them together in one seamless experience for customers. Two areas that are really fun for that are, first, multi-touch, and ink and speech. These all represent ways to augment the user experience, to augment the interaction that you have with people who use your software.
Multi-touch is a fantastic example of a way that unique hardware can also manifest amazing experiences for customers. Over in the big room, we've got a huge, 42-inch touch-panel plasma screen, you know, just like the one I've got at home, and you can go up and you can see it opens your eyes to incredibly cool, new scenarios that you can have. Whether you're designing software that might be used in a directory that would be in front of a building or in a mall or a really, really small screen that might serve as the basis for a moderate home automation system. These different form factors will surface -- and of course the Surface computer, that was a good pun. And the Surface computer that you see out in front, and these technologies will all bring forth over the coming months as we go to the hardware engineering conference and show the work that we can do together with the complete ecosystem for Windows.
Finally, the Direct X family of APIs. Direct X really brings the amazing power of graphics hardware today and puts an incredibly powerful API around it that allows you to really tap the incredible potential of graphics on a modern PC. We're all familiar with Direct X for games, and that's certainly the heritage. With Windows 7, we've extended Direct X to 2D, to animation, and also to very, very high-performance and extremely fine-looking text.
Together, all of the Direct X family now really represents the modern view of GDI. And so we have plenty of sessions here at the PDC on all of these topics and I would really encourage you to have a look and to learn and to see how you can bring your software to life on Windows and to make for a great experience where your users and your customers are in control, it's a very personalized experience, and also take advantage of the latest hardware.
What I'd like to do now is show a quick video of Autodesk taking advantage of multi-touch. And they built a specialized application that they're working on that really taps the power of touch.
STEVEN SINOFSKY: Of course that's just one example. (Applause.) So I want to thank Autodesk for that, certainly.
I'd like to talk a little bit now about fundamentals. Fundamentals is what we call the work around security, reliability, compatibility and performance.
So with fundamentals, what we've done different in Windows 7 is really make sure that fundamentals was the job of every developer on the Windows team. And we combined that with our effort to really think across complete scenarios and think about how we address fundamentals from beginning to end for implementing the real experience that people will see every day.
So it's a bit early in the development cycle to really make claims about fundamentals, but more importantly, our goal is for you to experience Windows 7 and decide for yourself that we've really delivered on improved performance, improved reliability, and compatibility.
Let me talk a little bit about the work we are doing in Windows 7 around fundamentals and performance in particular and the kinds of things that we've been really trying to deliver. You know, fundamental performance is all about some things that you want to make smaller, and some things that you want to make faster or less. And so looking at some of the things that we wanted to reduce, we thought it would be a good idea to maybe reduce the memory footprint of the core of Windows 7 installation. (Applause.)
We thought it would be a good idea to reduce the overhead of the desktop window manager so that when you're developing, you don't feel the need to turn it off just so you can get that last bit of memory out of the system. We worked really hard to reduce the IO that happens across Windows 7, particularly things like reading from the registry or using the indexer, and these have been reduced substantially. (Applause.)
You know, power is something that we're all very aware of, whether it's on a desktop and you just want to use less power, or on a laptop and you'd like to increase your battery life. This is a great example of where we've really thought about the scenarios as well. So we've looked at DVD playback, which is an end-to-end scenario that covers many subsystems, it covers the IO subsystem, the memory subsystem, the graphics subsystem, and worked to increase the playback time that you'll get with a DVD on a laptop.
We worked hard on things like timers. You know, for those of you that put timers in your code, you realize that if you just decrease the resolution of that timer, you can substantially improve the battery life. And so we've added to the command line power CFG tools, we've added the ability for you to analyze how much power and where you might be having a timer that's taking up too much power.
We've also worked on -- we thought it would be a good idea to maybe make Windows 7 a little bit faster. So we've worked on boot speed, device readiness, responsiveness. We've taken a look at the start menu and the task bar across the board and making them respond as instantaneously as possible. And we've done that by looking at all the places that there could be very low-level kernel semaphores or locks and work to make sure that we have as few of those as possible so you can always get to the start menu and task bar.
Finally, it's scale. You know, the kernel of Windows is shared across the client and the server, and with Windows 7, we're increasing scale to enable up to 256 processors. And we'll talk about more next week at the Windows hardware engineering conference.
I'd like to walk over here and I'm going to do a quick demo now. I'm going to show you a few of the features that I think will make Windows 7 an exciting development environment for you. But since we were just talking about fundamentals, I thought somebody asked me yesterday, "Hey, what laptop do you use?" Well, you know, part of the fun of my job is I use lots of different laptops all the time. It's just a great benefit. But I am currently using this laptop. It's a really small Netbook. And I'm using this with Windows 7.
It has a one gigahertz processor and one gigabyte of RAM and it's running Windows 7. And when I boot it, about half that RAM is still available today in the current build. And we're going to keep working on that, and we're pretty excited about the work that we've done on performance, and I'm pretty excited about this class of machine and the work that we can do to deliver that Windows 7 on those machines. (Applause.)
So let me show you a quick demo of some features that I think you're going to like in using Windows 7 as a development environment. So we all have a lot of USB memory sticks. And I think if you're like me, you've occasionally lost one of those memory sticks. I have a whole bag full of them, and then two weeks later I have none. And so one of the things that we've done -- and this is actually for our enterprise customers, but since we all travel with source code and specs and things on memory sticks, we've added the ability to use bit locker encryption on a memory stick.
So I have a memory stick inserted, I double click on it or when you do insert it, you'll get that. And you can add a password. And when you open it, it will decrypt the drive and let you have access to all of the information on it. So everywhere you go, if you happen to lose the memory stick, you're in good shape. Because we designed this for our enterprise customers, it also includes a lot of group policy for managing it and really making sure that the company has the ability to really control the mobile use of these memory sticks.
How many of you use VHDs every once in a while? So let's talk about the work that we've done in Windows 7 to natively mount and manage VHDs. So I'm here in the disk management utility. I'm going to go here. You can see right away I have the ability to create a VHD. So from within Windows natively, I can go create a VHD. (Applause.) Both dynamic and fixed size. I can also attach a VHD by just specifying the path name, and here I am, I've already attached this one, and I just open it up, and this is a Windows XP VHD and we're pretty excited to be able to do that.
But really super cool is you can also boot from a Windows 7 VHD natively. So you can use boot manager, and, say, I've got a Windows 7 VHD and I want to boot from it. And the reason that's really cool is because while you're developing your software, you can use this VHD and then using simple copy, the volume snapshot work, we'll actually reset the VHD to its original state if that's what you want to do while you're developing your software. So you can keep mounting and booting from the same VHD. (Applause.)
Now you might notice that I'm running this machine at high DPI. As screens have gotten bigger and monitors have gotten more numerous, high DPI has become much more important for all of us. And so I've included a lot of work in Windows 7 to address some of the issues that customers have seen with high DPI, and we've made it much easier to set the DPI and to work with it. We also allow you to set the custom DPI size and in general, I think we've done a much improved job on high DPI and also on managing multiple monitors. So within Windows natively now, you can adjust landscape, portrait orientations, flip the monitor, and generally enhance the overall experience here with multi monitors. (Applause.)
Those of us that are UI programmers or UI folks, we always are looking to magnify the screen and really find out the details of what's going on on the screen. And so one of the things that we've added in Windows 7 is a much-improved magnifier, which turns out to be a great feature for developers as well. So I'm going to hold down the window key and just hit the plus button. And go ahead and zoom right in. And you'll see it tracks the mouse and I can really see all the details of just exactly how the shading in the ribbon is done. And for fun, you can go minus, wee, plus, wee. (Laughter, applause.)
All right. So how many of you have walked in to do a demo for your latest potential customer and spent about 10 minutes trying to figure out how to connect to an external projector? (Applause.) I'm going to show you a magic fingers feature now known as window P. And so if you hold down the windows key, and I'm going to hit the letter P and quickly switch between each of the different types of projectors that I can have, and I'm going to go and extend to a dual-monitor display, and this is actually the very first time at a PDC ever that someone on stage here has done a dual-monitor demo, so I'm kind of excited about that. We're going to see how it works.
So here I am. I'm really on two monitors and everything. (Applause.)
What I really want to do is show you a way that we've enhanced Remote Desktop. So, how many times do you want a Remote Desktop into your dev machine that usually has two monitors, and you want to actually be a dev, you want to use both monitors?
So, I'm going to go here, use the jump list to use a connectoid that I have, and I'm going to connect to my dev machine. And as I connect to my dev machine, you're going to see that through Remote Desktop it too is a multi-monitor machine. (Cheers, applause.) And now I'm going to go back using Windows P, I just love doing this, meetings now are 10 minutes of people doing this. (Laughter.)
I bet when Julie was doing her demo, you were kind of going, hmm, I hope they left in a bunch of customization and personalization stuff in that task bar, because I sure use quick lists a lot, and I move it around. Well, sure enough we certainly did. You can move the new task bar all over the place just like you always could. You could also make it really big like you always could. And we put in some more finer grain controls such as small icons. So if you use small icons, the icons will all shrink, and if you put a lot of icons they get closer and closer together. Here's a really novel concept that we did, which is now allow you to customize the shutdown button that we have here. And it can be any one of the operations.
Finally I want to show you as developers, we really all want to be in control of our machine at all times. Julie showed the Action Center, and all the way it queues up notifications. But I want to make sure that folks know what you can change the messages for all the Windows subsystems, and just make them never show up if that's what you'd prefer. So here you are in the ability to turn all these messages off, whether it's in the firewall, or AV, or UAC1 or spyware, and those messages are now under your complete control. In fact, I'm going to show you one last feature, which is this user account control setting control panel. So we've actually added a slider that allows you to decide how much of the UAC you want to see on your machine. (Applause.)
So let's take this to RTM now, and how this is going to go. Well, first, today everybody is going to get a copy of the Windows 7 pre-beta. (Applause.) It will be available at 1:00 in the New Materials Distribution Center, not right now, don't leave. Shades of a speech a couple of years ago when we did that by accident. But the pre-beta is a very important milestone for us in terms of delivering code to you because it represents an improvement in our overall engineering cycle. The core development of Windows 7 is broken up into four dev milestones, M1, M2, M3, and beta. The pre-beta build is just our M3 build, it's the one that meets our exit criteria on feature completeness, performance. It met everything that we set out to do at the beginning of the project. It's the build we're all running internally at Microsoft. It represents the first opportunity for you to experience the APIs, and the work that we've put into Windows 7. It's not feature complete yet. In fact, much of the user interface work, which of course is at the top of the stack and the last part to come in, will be complete when we get to beta.
So how are we going to get to beta? Well, the first thing is, you're going to go install the pre-beta, and have a great time with that. Then I hope all of you will turn in to our E7, our Engineering 7 Blog, out on MSDN and really see the behind the scenes view of how we've come to develop Windows 7. It's a two-way dialogue, it's been an amazing fun time. I really want to I know many of our blog readers have been sending me mail, and couldn't be here today, so I want to welcome them all, whether they're in Japan, or in Italy, or in Germany, or in Brazil. It's been great exchanging mail with you, and I hope all of you join in the E7 community.
The next step is the beta. The beta is going to be feature complete. It's going to be pretty good. It's not going to be final. It's going to be a beta. So we're still not ready for performance benchmarking. We're still not ready to try out how every single edge case works, but it is the complete product as we envision it. I'm here today to tell you we're going to deliver the beta early next year as well. And so all of you, of course, will be able to get the beta, and you'll get it through MSDN, and all the traditional ways, and we're also going to open up the beta broadly, and stay-tuned on Microsoft.com/Windows for how you'll be able to download the beta just if you're interested in it.
So what do we do with the beta? What do we do with feedback? How do we interact and make sure that we've really got the right product on our hands? Well, the two most important things that we do are, first, there's a feedback tool in the beta. The feedback tool is a link at the top of every single window, and an icon on the desktop that whenever you get frustrated, whenever something isn't quite what you think, double click on it, click on the link, and the context of where you are is packaged up along with your comments, your rant, your feedback, send it to us. It lets us structure the information, what app was running, what was going on, were you hung, was there something on the screen you couldn't get the focus to, or something like that.
The second area is the Customer Experience Improvement Program, or CEIP, that is the telemetry that you opt into. It's anonymous, it's private, and it's optional. And in the beta it's incredibly important for us to have you turn that on and use it. In fact, that's part of using the beta, but we are really hard core about looking at this data. This data tells us did applications crash, did applications hang, that you weren't able to find devices, what's going on on the machine, what are you running, what are you clicking. It sends us performance information, how much memory are you consuming, do you have a process that's running away in terms of resource consumption. All of these things are insanely important in how we reach the quality of Windows 7. And if you just use those two things, you're really an A1 participant in our beta, and we really, really appreciate your help, and that's what matters a lot to us in terms of delivering the beta, the RTM.
And then finally is the release candidate and the RTM phase. So as we're developing Windows 7, our closest partners, our closest customers, the people who make hardware, the large software ISVs, and the PC manufacturers, we're in a continuous relationship with them. They're constantly getting new builds, constantly getting updates. These timed release candidates, RTM, beta, are the big public versions of intermediate steps along the way. There will be a release candidate for Windows 7, and it will represent our reach all class only bug that we will fix between then and RTM. We will know when the release candidate is going to be after we finish the beta. And that's how we've done each and every milestone of Windows 7. We finish the one we're working on, and that informs when the next one is going to be done. And so I don't have any new information on when we're going to release the product. We're sticking to, we think, three years from general availability of Windows Vista is the right time to release Windows 7.
So for today I want to wrap up by thanking you first and foremost for allowing us to bring Windows 7 to you today. But, sticking with the magic number seven, there are seven things I think that you can do as developers today. First and foremost, install and use the Windows 7 pre-beta. It's a lot of fun, it's great to see the progress, and we really want your participation in the feedback tool, and in the CEIP data. Second, please, please develop for 64-bit. We're probably all running 64-bit, but we think a lot of people are going to run in 64-bit with Windows 7. So do everything you can to bring your code up to speed on 64-bit.
While we focused a lot on fundamentals in Windows 7, we want to make sure all of you are focusing on fundamentals of Windows 7. So whether it's power management, memory consumption, timers, locks, hangs, crashes, these are all things, that collectively as the PC ecosystem, impact people around the world when we collectively don't do a good job. Integrate with the Windows 7 desktop. The opportunities to integrate along the user interface that we showed you today, with jump lists, with libraries, those are great opportunities, and there are many more.
Evaluate the new APIs in Windows 7, so whether it's Direct X, the work that you can do if you make device software, across the board we have a broad set of new APIs in Windows 7. We also want to ask everybody to make sure that they're making their Web sites work with Internet Explorer 8. So special casing, Internet Explorer, please go through, do the right version checks, do the right browser checks, do the right UA string checks, and really make sure that your site works great with Internet Explorer 8. Also use the opportunity of doing that to take advantage of the work that we've done in Internet Explorer 8 for you to bring your software and services together within the browser.
Then, finally, experience Microsoft software and services, and the complete Window experience by downloading the Windows Live beta at Download.Live.com. So the betas of the Windows Live Essential applications are available today, and over the next few months you're going to see a lot more news around the different services, and the work that we're doing there to bring all of the software and services strategy together.
It's been an honor to represent the Windows 7 development team, and to share with you this very first look at Windows 7. I thank you for all of your support, and for taking the time to look at these potential action items for Windows 7, and I hope that you have a great rest of PDC. So thank you very much. (Applause.)
What I'd like to do now is invite my partner, Corporate Vice President Scott Guthrie, who is going to talk about all the tools and libraries for building upon the Microsoft platform. So please join me in welcoming Scott. (Applause.)
SCOTT GUTHRIE: Steven talked about some of the great new capabilities, and fundamental improvements we're making to Windows 7. I'm going to spend my time talking a little bit more about how we as developers can build great applications that take advantage of it.
You can take advantage of the new Windows 7 features, regardless of the languages you use. You can use C++ and Win32, you can also use managed languages with .NET. We've also focused a lot on interop, and making it possible so that developers can build applications, combining both managed and native code together. And this gives you hopefully the flexibility to make the language choices you want, based on your existing code and investments.
AutoDesk I think is a great example of this. They have a huge native code investment today. You saw earlier in Steven's talk how they are updating their Mudbox application to have multi-touch support within it, and they're using standard Win32 APIs in order to do this. With their AutoCAD application they've chosen a hybrid approach. They rewrote their UI using WPF, so they added a ribbon user interface. Then they basically host a C++ native render engine inside of it.
As a C++ developer you can access any of the new Windows 7 capabilities, using standard Win32 APIs. We're also shipping an update to MFC, which allows you to easily incorporate much of those features inside existing MFC code bases. Beyond just APIs, we're then also investing a lot in C++ development with the next release of Visual Studio, that we're calling Visual Studio 2010. In particular you're going to see a lot of emphasis around IDE improvements, around large C++ projects, so specifically around project system performance, as well as build time.
You're also going to see a lot of investment in multi-core development, specifically around allowing you to build parallel applications that take advantage of multiple processes, and multiple cores, as well as in debugging analysis tools that you can actually see what code is happening on which core, and when it happens, and how you coordinate that.
This summer we also shipped an update of .NET, we call it .NET 3.5 SP1. This was a pretty significant update that provided a lot of advantages across the different application types that .NET supports. In particular for client development, we spent a lot of time focusing on performance. In general we see about a 40 percent cold startup performance win for .NET applications that have .NET 3.5 SP1 installed. You don't have to change any code in order to take advantage of that. We also spent a lot of time focusing on WPF, both around performance with graphics, as well as in terms of integrating DirectX interop support directly into WPF, which means you can now host Direct3D surfaces, you can also take advantage of a new pixel shader API, to basically add shader effects to any of your WPF controls.
We also then focused a lot on streamlining the end-user client-deployment experience for .NET apps, both with the applications themselves, with improvements to click once, as well as in terms of streamlining the actual process of getting the .NET framework installed on a machine that doesn't already have .NET there. .NET 3.5 SP1 will be built into Windows 7, which means that any of the applications you build today that take advantage of that functionality will just work on Windows 7. You can also then optionally take advantage of new Windows 7 capabilities, and light up when your application runs on top of Windows 7.
What I thought I'd do is actually write some code and show some examples of how you can do that. So what I have here is a sample application that we built with WPF. We're actually shipping the code to this in a few weeks. Basically it's just a basic photo viewer application, built with .NET 3.5 SP1. It allows me to quickly kind of flip through albums and photos, and I can also apply basic kind of effects to them. Right now this application isn't using any specific Win 7 functionality, so it just works as is. What I want to go ahead and do is add some additional features to it that will light up, and really show off Windows 7. So to do that, let's drop into Visual Studio.
So what I have here is loaded up here is a standard MainPage.xaml file, which is basically kind of the root container, if you will, of my client application. And the first step I want to do is, you might notice lots of different navigation patterns, lots of different kind of UI elements. I want to kind of focus them all around a ribbon UI that we'll host at the top of the Window frame, and have a nice ribbon-based user interface. This week we're going to ship a new WPF ribbon control that you can use to do that, and so to take advantage of this, what I'm going to do is basically add change my root window from being the base window object to being a WPF window object, a ribbon window, and then I'm going to paste in the new ribbon control. So you can see here I can create multiple tabs within those, and I can just put standard buttons as I want within that. The ribbon control will tie into the standard WPF commanding architecture, so I can actually in my code behind or in a separate class easily handle commands as those buttons are clicked, as well as hide or show the commands automatically. In this case here, this is basically adding a back button as well as a forward button. That's going to tie into kind of the history management of the application. And now I'm going to go ahead and run it. You'll see I have a basic ribbon control at the top of my page, and now I want to go in and drill into a picture, you can see my back and forward buttons are enabled, and the right navigation occurs.
Now WPF has, if you're a WPF developer, you know it has a concept of navigation and journaling built in, and so I'm just actually tying into that as part of my back and forward button. I can kind of complete this overall experience and add a few more elements to my ribbon tab, paste that in there. You can see I can create a couple of other additional tabs for like photo details, and so on, and if I go ahead and run this now you'll see I have complete ribbon showing up here. It's contextualized, and when I go into a picture you'll notice my photo tools tab now shows up. There's complete navigation.
Now all WPF controls, and WPF itself has a concept of skinning, so you can actually customize and tweak exactly what a control looks like. Information act, you might notice here if I change my theme on the fly, let's say I go to a dark theme, you'll notice how everything is updated appropriately, so I can dynamically switch (applause) including, obviously, the WPF ribbon here.
Now we've added sort of basic ribbon UI, and let's go ahead and also add support for a new feature in Windows 7 called Jump List. And I think Julie showed that in Steven's keynote, and it's basically the ability for you to go ahead and add contextualized tasks onto your task bar. Doing that in WPF is pretty easy. You can just go into your app.xaml file now and declaratively specify tasks that you want to have show up. And so you can see here I have a begin slideshow, break description, add description tasks. To create that, I simply declare it inside my XAML file, have a title as well as arguments, and now if a user clicks begin slideshow it will open up our application and jump into a slideshow view of my particular open album. So pretty easy to take advantage of.
Next scenario I want to go ahead and enable is multi-touch. So I'm going to switch over here to another machine, which is an HP TouchSmart computer. You can actually buy this today, it's about US$1,500, so it's pretty cost-effective from a hardware perspective, and what I've gone ahead and done is added some multi-touch capabilities into this application. What we're doing with WPF is we're actually going to add a touch event on to the core UI element base class. And what this means is you can now easily handle events within your application to respond to any kind of touch or multi-touch gestures. So, for example, I could scan down between my different albums, and if I want to drill into a picture I can just use my finger to kind of slide through them automatically. I can still obviously use my mouse for a system that isn't multi-touch enabled, or isn't running Windows 7, but as you can see you can get some nice kind of effects integrated as part of that.
Speaking of effects, one of the other things that you can actually do which is kind of nice is, you can take advantage of the new pixel shader effect that we added in .NET 3.5 SP1. So for example I just clicked on the single ripple button and you can see how we can actually now add DX capable effects on top of any element. This actually even works for things like controls. And so if you want to have a ribbon flash, you can do that as well. What's cool about the DX effect is you actually can write and create your own effects and they all run on top of the GPU, so they're all running hardware optimized within the system.
This is basic gesture support that I've added. Let's actually go ahead and show a slightly different theme. So again, I can dynamically skin it which is a little bit more optimized for touch. So now you can see I can actually move and navigate my albums pretty easily. I can click into say animals here. I can manage my photos. If I want to I can actually copy them around. I can actually resize them to be any size. You can also do these kind of fun physics effects here you can push them and have it fade away.
What's also nice is, let's say I want to go in and tag them, you can see that you can actually go under the tag view here, where I now have tags on the left and right hand side of this particular photo, and so, let's see, add a couple tags. I can just sort of add some random tags here. But there we go, you can see you can quickly scan back and forth between these pictures, add more tags as appropriate. And if I want to, I can also take advantage of here and go into a tag explorer view. Let's say we want to look at landscapes. I can actually start drilling into all of the different pictures that have been tagged a specific way. And if I like the picture, just double click, I can open up directly.
So the cool thing is, you can actually (applause) what's nice about the multi-touch support is, again, you can integrate this within any WPF application, as well as any Windows Win32 based application. You'll get basic control support for free, so in other words, you click on a button, you don't have to write code in order to multi-touch enable it. You can just click the button, and it will work. And then you can handle long input effects as well, as well as gesture commands, and so you can add any additional capability that you want in order to take advantage of it.
So that was a quick look at some of the WPF features you can take advantage of with Windows 7. Today we're also releasing a new WPF Toolkit that works with .NET 3.5 SP1 today across all versions of Windows. This toolkit includes a bunch of new controls and features that you can take advantage of. It includes a final release of a new data grid, date picker and calendar control. (Applause.) It also includes support for what we call Visual State Manager, which is a feature that shipped as part of Silverlight two weeks ago. It's better, but what's nice about this is it basically allows you now to use the exact same control template that you built for Silverlight with WPF, including support within Expression Blend, as well as our development tools. So all those things are available in final release form this week.
We're also then this week shipping the WPF ribbon control that I demoed just a moment ago. This is in TCP form. It will work with both Windows 7 as well as on Windows Vista and XP systems. And so you can start to take advantage of that and ribbon enable your applications today. (Applause.)
We'll also this week going to be starting to talk about .NET 4, which is the next major release of the .NET Framework. You're going to see a lot of WPF improvements as part of that release, including much deeper multi-touch support like I demoed there. You're going to see deep zoom support, which is a feature we also had in Silverlight. You're also going to see Visual State Manager built in, as well as a bunch of text rendering and quality improvement. We're also within .NET 4 focusing a lot on improving kind of the fundamentals of .NET applications, and allowing you to build kind of better apps, both client and server. For the first time with this release, we're actually going to support the ability to load both CLR 2 as well as CLR 4 in the same process in the address space. (Applause.) That means if you have an add-in, for example, that was built with a previous release, rather than always have to roll it forward to run on the most recent CLR release, you can actually now load it at the same time using a different CLR inside the same application.
.NET 4 is also going to ship with a new component model that we call the Managed Extensibility Framework, or MEF, and this basically provides the ability for you to very easily kind of assemble applications from extensions, and be able to kind of dynamically add extensions within applications. It can be used for both client apps as well as Web apps on the server as well as even apps with Silverlight on the client. And it's going to, sort of, we think, enable a bunch of great capability both for our own applications and then also for applications that you build.
.NET 4 will also include a bunch of improvements with Visual Studio 2010, specifically a much improved WPF design-time experience, including support for data binding and data sources. We've also been taking the steps of actually updating Visual Studio itself to be built using WPF. (Applause.)
This gives us much more than just pretty graphics. We're using this to add a whole bunch of new features into the IDE, including things like multi-monitor support (applause) much richer code editing support, as well as refactoring support, and we're going to be able to take advantage of the new WPF-based source editor in order to do much richer code visualization. You're going to see a much better test-driven development workflow, so that you can, for example, write your test first and then extract and create your classes from them. And by using the Managed Extensibility Framework to build all these features, we're also going to make it much more possible for developers including us as well as ISVs extending Visual Studio to be able to go ahead and plug in additional functionality into the core product. And this is, I think, going to really enable a bunch of really interesting scenarios, and a tremendous amount of agility.
And so actually to try to illustrate some of those, I thought let's actually build one over here. What you're looking at right now is a copy of the Visual Studio 2010 CTP that all of you are getting this week. It's an early CTP, so there's a lot of features that aren't there. In fact, most of the shell has not been updated to use WPF yet, that will come a little bit later. What you are seeing though in front of me is the new WPF-based source editor. So it's completely written in WPF, and it takes advantage of the Managed Extensibility Framework to support a tremendous amount of extensibility.
Right now you'll notice it looks pretty much just like the source editor that was in VS 2008. The key difference, though, is that extensibility, which means that we can now add new features into the editor which light up and provide kind of richer support. So, for example, I have right here a comment adornment sample. And it's just a standard C# file here. And you can notice I have some comments inside it. I have a summary, I have remarks, I have a bug section. It's pretty standard. We've all seen comments like this probably forever.
One thing that might be nice is to actually have a slightly richer visualization of those comments so that you don't always have to see a giant XML block in the middle of your code. Doing that today is pretty hard to do, the editor doesn't give you that extensibility. Using VS 10, and using the extensibility hooks that we're providing, it's pretty easy. All I need to do is create a class. I'm going to implement a service that we publish. And basically every time the editor finds a comment it's going to call this class, and I can write some code to visualize and create a view for that comment however I want. In this case here, what I'm doing is I'm actually using WPF itself, and so I'm actually data binding the comments to a WPF view file that I just created, and telling the editor insert it at this particular location.
To register this with VS, I just need to do two steps. I need to add an export attribute to my code. I'm just going to let VS find it dynamically at runtime, and then, of course, we will do a build. Then actually all I need to do is copy the assembly into a VS extensions directory, no extra registry steps, no extra registration required. (Applause.)
And then load VS, it's going to find that there's new extensions that have been registered, it's going to go ahead and load it. (Applause.) And now I have a much richer visualization. It's about 200 lines total. Any of us in the audience can do this now. And if you don't like my little visualizer, you can always toggle it. You can actually flip back and forth between classic mode and ‘Scott’ mode, I guess. And, of course, because you can now run any code within this visualizer, basic stuff like looking up a bug isn't it always kind of a pain and you have to pull up a separate bug tool in order to pull it, it would be great if you could just click on the bug, retrieve the bug information from TFS, and see it directly in your file. (Applause.)
The key thing about this is the fact that not just hopefully it enables some good scenarios that we can take advantage of, but because it's built on this common extensibility framework, anyone can go ahead and plug in and take advantage of it. And as you see, with a couple hundred lines of code you can really light up the IDE.
Going forward, you're going to see in VS 2010 that we're going to be opening up the extensibility all over the place, in particular within the IDE itself, as well as within the text editor. With the next release we're going to go a step further, and also open up the language services, and the compiler infrastructure, as well. It's going to really, we think, enable some really great code capabilities. And best of all, this isn't tied to VS. The managed extensibility framework ships as part of .NET, and within any of your applications, again, whether it's a server app, a client app, or a RIA app, or any other type of .NET app, you can now publish these types of extensions, as well, and dynamically resolve, and use them at run time, as well.
So talking about kind of where we're at in terms of WPF and some of the momentum with client apps with .NET, we shipped the first version of WPF about 20 months ago. And we're starting to see more and more applications be developed with it, across a broad range of different industries and technology areas - AutoCAD, HP, ( Rastia?), Lawson, Thompson Financials - there's lots of great applications being built with it, and we're really excited to see those applications appear.
What I want to do is actually show a real-world example of how one company is taking advantage of .NET and WPF, to kind of create a rich branded experience that they can integrate inside their customer's existing lifestyle today. Tesco.com, for those of you who aren't familiar with it, is actually the largest online grocery retailer in the world. And their backend system and their Web site is actually built entirely using ASP.net, and .NET today. They're going to shortly be launching kind of a new client application experience to complement this that they're building in WPF, and I'd like to invite Nick Lansley from Tesco on stage to show it off.
NICK LANSLEY: Thanks, Scott. It's great to be here. My name is Nick Lansley, I'm head of IT and new technologies at Tesco.com, and with me is Paul Dawson, he's Director of Experience and our design and development partner Conchango. So let me introduce Tesco. We're one of the largest grocery retailers in the world, operating in over a dozen countries. We're also the world's number-one biggest online grocery retailer, and as Scott was saying, we're entirely powered in .NET, which includes the forthcoming Tesco API for developers that we're launching soon.
Now, shopping for groceries is different. It's not about a single book, or a CD that you buy, it's about buying 40, 50, 60 different items. We want to help our customers spend less, but spend more of what they do have with us. Our customers tell us that to differentiate ourselves we must be proactive, we must inspire them and we must make grocery shopping easier and faster. And this new immersive experience needs to be a client application. So let's show you what we're thinking.
We start with a gadget, it's called the Tesco At Home Gadget, and it's from that that we fire up our application. It allows you to stay up to date with your to do lists, with your Tesco delivery, and even see special offers. It's informative, but unobtrusive until you need it. The application is just launching now. And this is what we call our corkboard.
So we looked at how our customers live their lives, and this corkboard is really the hub of family life. So it's got messages, and notes from family and friends, it's got everybody's calendars, and to do lists, and reminders, it's got special offers, recipes for a bit of inspiration, and of course the family photos from all kinds of sources. Now, customers are increasingly conscious of health, cost and the environment, so a great way to shop smartly is meal planning. So let's go into the calendar, as this is a logical place to plan, because we can see what else is going on in our lives. And with a few clicks and drags, this is a fast way to plan. It adds all of the ingredients to my basket automatically. As you can see we're adding it to different dates on the calendar.
We can also then go on to recipes. We'll just put some of these items into our basket there, including one the big roasts, excellent. Then we're going to go on to recipes. Now, they don't just give us the ingredients, they can give us video, and step-by-step instructions. They can also allow us to adjust quantities, for the people that I'm catering for. There are even calorie counts. And we just drag those straight into the basket like everything else. So there you go, 3 meals, 30 seconds, how easy was that?
Well, maybe that was a bit too easy, wasn't it? Well how about trying to find one thing amongst 30,000 grocery products? So suppose we're trying to find a birthday cake, so we can zip through the categories, and we get a 3D wall of product like this, so we can actually find the cake really fast, and buy that cake straight away. Excellent. But, also, we can stumble across things we weren't expecting, like this fantastic Christmas cake. Great, let's take a closer look at that cake. Our customers really want to see the detail, lots of it, so that they know what they're getting. You can also see good suggestions, and useful options, which can be cost saving. Fantastic.
Now, let's go to the checkout and get our delivery sorted. We're going to get most of this stuff delivered, but first we're going to get our friend Rob to pick up some milk on his way home from work, just by dragging this in there. We'll also put that Christmas cake that we discovered on our special Christmas list that our customer has created, and the rest is for delivery.
That could be it, but I was told that PDC was about the coolest technologies. So let me show you something else we can do today. So, Paul, I'm sorry, I've run out of cola, can you put some on the list, please? Now, because we have an integrated Web cam, and we know about bar codes it's easy. So whether you've run out of milk or cola, you just add it to your list by waving it in front of your PC. (Cheers and applause.)
Excellent. And of course you can switch to a special offer, as well. That was something on special offer there, let's throw that into the basket. So that was our new Tesco At Home in WPF. It offers a step-by-step change in the customer experience, over the pure Web site that we offer today, the benefits of a more engaging planning and shopping experience are obvious. And I'd like to thank Conchango and Paul Dawson for designing and developing this. The forthcoming Tesco API will be open to everybody, all developers, so they can design great applications for our service. And as I hope our Tesco customers will say when they start trialing this next year, just as our company slogan says, every little helps.
Thank you very much.
SCOTT GUTHRIE: We just spent a little bit of time talking about how you can use .NET with PCs, and with desktop computers. Obviously one of the unique characteristics we think of with .NET is the fact that you can learn one core programming model, one language, whatever language you prefer, and one set of tools and be able to actually target a variety of different types of devices, ranging from PCs, to phones, to the Web. Over the next year you're going to see a significant amount of enhancements in all of those different categories that you can take advantage of.
This year, we also kind of shipped a number of major improvements to ASP.net, as part of the .NET 3.5 SP1 release. We added much richer support for REST, as well as with a new feature called Dynamic Data for doing data scaffolding. We also shipped a preview form of our model view controller framework that's new for ASP.net. We're going to be shipping the final release of that in the next few months, and we're pretty excited to add that into the overall ASP.net family.
We've also been making a lot of improvements to AJAX development, and you're going to see with the next release of ASP.net significant improvements with ASP.net AJAX, focusing on REST, as well as client side templating functionality. We've also then recently announced that we're embracing an open source AJAX framework, jQuery, and adding that support in both Visual Studio, as well as ASP.net. (Applause.)
One of the core elements of that is some support we're adding inside Visual Studio 2008 - for the shipping version with SP1 - to make jQuery Intellisense really light up and work great inside the IDE. And I'm pleased to announce that starting today you can now download the jQuery Intellisense files for Visual Studio that now gives you complete Intellisense support for jQuery within, again, the shipping product. (Applause.) You can download that today, actually, from the standard jQuery.com Web site, along with the standard jQuery that's available already.
This week we're also going to be talking about the next release of ASP.net, as well as the new Visual Studio Web tool enhancements that we're going to be shipping. ASP.net and NVC has received, as I mentioned, a lot of attention lately, but we're making with ASP.net 4 a bunch of substantial improvements to the existing ASP.net Web forms model, as well.
Within Visual Studio, we're also then adding a distributed caching API, with a new service we call Velocity that you can install, it will give you distributed caching across multiple front-end classes. We're actually shipping a new CTP of that at this conference this week. And it will be available as a free caching server that you can go ahead and deploy across any number of servers.
In addition to updating your application settings, we'll also as part of that deployment process support deploying your SQL databases as well, and hopefully give you a really nice way to go ahead and deploy your solutions.
Two weeks ago we shipped the final release of Silverlight 2.0, which is a big release for us. Our data indicates today that Silverlight is now installed on about one in four machines connected to the Internet. And over the next month you're going to see those machines start to upgrade to Silverlight 2.0. We started the upgrade process about a week ago, and we're actually already closing in about 100 million machines that already have the final Silverlight 2.0 release on them. Silverlight 2.0 itself is a very powerful release, both for media scenarios as well as RIA scenarios, and importantly it now gives you the ability to run .NET inside the browser and to build experiences that you just couldn't build before.
A couple of the applications that have gone live over the last couple of months: the NBC Olympics site went live in August, had more than 3,000 hours of video clips, and video highlights and live video from the Olympics. We had over 55 million unique users visit the site. And what was really amazing was that on average people that watched the video on the site spent an average of 27 minutes actually watching the video, which blew away the average record on the Internet by about 26-1/2 minutes. (Laughter.)
One of the things that we did with the Olympics that people really liked was to have a very smooth video quality experience that could adaptively switch the bit rate on the fly based on our network and computing capability. You could go all the way up to 1.5 megabit if you were on a fast pipe, and you could go down to a much smaller bit rate dynamically if you weren't. This morning we announced a new feature of IIS that we're calling IIS Smooth Streaming, which gives you a way that you can now build these types of experiences yourself for free. And it's built into IIS going forward. (Applause.)
AOL is another client, a customer that went live in the last month. This is with their new Web mail RIA client. Basically delivers integrated mail support all built with Silverlight, all built with .NET, running inside the browser. K2 is a fully SharePoint integrated SAP front end, also built entirely with Silverlight, that allows people to basically dynamically set up and manage their SAP environment. And this morning Netflix just turned on their Instant Watch experience using Silverlight, and this now allows you as a Netflix customer to basically watch any video online inside their service over both the Mac and the PC. (Applause.)
Today we're also then shipping the first release of what we call the Silverlight Toolkit, which is a bunch of additional controls and additional features that we're making available that run on top of Silverlight 2.0. This includes a bunch of controls that are in WPF, things like preview, doc panel, rep panel, view box, et cetera. We're also as part of this release for the first time introducing new charting controls that you can take advantage of. This creates both static charts as well as interactive, so you can actually do animations as well as respond based on input as users click on those charts. All these controls are available for free, and we are shipping them under an MSTL license, which means you get full access to the source code, and you can go ahead and make changes to them if you want, and even rebuild and publish them within your solutions. And they all work with Silverlight 2.0 today. (Applause.)
Visual Studio 2010 is going to build further on Silverlight, and one of the new features that we're going to be shipping with it is a fully interactive Silverlight designer. This has all the improvements that we've also made to the WPF designer. Because Silverlight is a subset of WPF, we're actually able to use a common designer framework and a common designer now to target both.
Some of the highlights include fully-editable design surface, WYSIWYG rendering of both our controls, as well as any custom third party controls, as well as full data and data window binding support.
Next year, we'll also then be shipping a major release of Silverlight, which includes a bunch of new runtime features.
We've already announced support for H264 media, and you'll see a lot more media features being announced in the months ahead.
In a few minutes, you're going to learn about how you can actually run Silverlight both inside the browser and now outside the browser. (Applause.)
We're also, as part of the next Silverlight release, going to be adding much richer graphics support, as well as much improved data support, and really hopefully allow you to build applications that run great and really deliver a tremendous amount of value.
So, so far in terms of the application experiences that I've been talking about, and we've been talking about today, we've been talking about kind of how to build Windows client apps, how to build Web apps, and we've been talking about them for the most part in isolation; lots of great features, but right now they're kind of not completely connected.
One of the things that we know from customers is that increasingly they want their application experiences to be connected, so that they can actually access them with both the Windows box, as well as within the browser, to share data across different machines, and be able to seamlessly kind of move from experience through experience, whether it's on a phone, whether it's on a browser, whether it's on a desktop, and have their data and their experience roam with them.
I'd like to invite David Treadwell, who's going to talk about some of the software that we're building that's going to make this possible. So, thanks a bunch.
DAVID TREADWELL: Good morning, PDC, and thank you, Scott.
So, Steven and Scott just showed some of the amazing capabilities that we're bringing forth with Windows 7 and with .NET, a lot of this focus on what we call the client tier, what you can do on a client computer physically close to you to exploit the amazing computational and storage capabilities that we have on these client PCs.
The growth of capabilities at the hardware level continues, and, of course, at Microsoft we're going to continue to build great software on top of that to provide awesome experiences for users and to enable developers to build awesome applications on top of that client infrastructure.
Yesterday, you heard Ray introduce the Azure Services Platform. This is our platform for the Web tier, essentially a new tier of computing that operates at massive scale, the scale of the Web itself, the Internet; requires incredible amounts of computing resources in datacenters, operates at huge scale, has to be very, very, reliable.
Based on the Windows Azure layer at the bottom that does storage, computation and management, on top of it the .NET Services, the SQL Services, SharePoint and CRM Services as well.
I get to talk about the Live Services and how they're important both as part of the Azure Services Platform, but just as importantly how the Live Services help bring together the client tier and the Web tier in a way that really helps users connect their data, their people, the applications, and their devices, and also enabling developers to create applications that connect data, devices, people and applications.
So, we've had the Live Services available for some time. Some of the key components of Live Services include our identity functionality. With Live ID we have a massive credential database where users can use username, password to log onto any Web site, Microsoft or external, that supports Live ID.
This is a great value proposition for users because you don't have to remember as many usernames and passwords, you don't have to remember as many usernames and passwords, you don't have to have a different one for each Web site. It also enables you to be more robust in your management of those credentials, changing your password more often, for example.
We've also had the capability for developers at third party Web sites to make use of Live ID, which is a value proposition for the Web site because it reduces the registration hassle for creating a new account on that Web site, and also allows users not to have to remember yet another username and password for that Web site.
We have had lots of feedback from customers about wanting to customize that logon experience, so that it's consistent with the look and feel of their Web site. That's one of the features that we're talking about this week with Live ID, the customization of that sign-in experience.
Also we've heard loud and clear from our customers that people really want federation capabilities of Live ID. You heard yesterday Dave Thompson talk about the Microsoft Services Connector and the Microsoft Federation Gateway, which enabled businesses and ISVs to connect with Live Services in a way that they retain control of the accounts that the users use, so you don't have to have everything in Live ID. The account control is in Active Directory in a way that the administrator of that site still retains control of it.
And finally you heard yesterday our announcements about Live ID as an Open ID provider. We've heard loud and clear from customers that Open ID is important to them, and we want our customers to be able to use their Live ID credentials from any Web site that supports Open ID.
Next with our directory functionality we have an enormous social graph that users have created in Windows Live Messenger and Windows Live Hotmail. With the contacts API we've made it possible for developers to create experiences where you can leverage that social graph, make a more compelling experience for your users, and even help with things like viral adoption of your experiences.
With communication and presence we have capabilities for developers to enhance their Web sites with instant messaging functionality. The Windows Live Messenger client libraries, the IM controls enable you to integrate Windows Live Messenger experiences with your Web site in a way that makes sense for that site.
And finally, we have the search and geospatial capabilities that allow developers to include those in their experiences as they see fit.
All this is done in a way that we've tried to make very easily integrateable with your experiences, and we do it based on standards based interoperable protocols, so that you can make use of these services without having to have the whole Microsoft stack. Of course, you'll have great access from .NET or other Microsoft infrastructure, but additionally because it's based on standard protocols like HEC, REST, SOAP, et cetera, you can invoke these services from any developer stack.
With Live Services we have over 460 million users, nearly half a billion people actively using these Live Services.
Around 11 percent of Internet minutes are spent on Live Services, and we have hundreds of thousands of servers worldwide.
It takes enormous capital investments to run services at this scale, and Microsoft has been working on these for many years, and we have this giant scale, literally billions of dollars that we've spent on all of this, supporting the Live Services and all the infrastructure on top of it.
But with all that, we still see from users and get lots of feedback about many issues that exist in the computing universe today. For example, I bet everybody in this audience uses multiple computing devices on a regular basis. Especially with things like Netbooks and other really cool devices coming online, it's neat to use different computing devices in different scenarios. You have your desktop machine with the high-end graphics, your super lightweight travel laptop. Maybe you have a machine in your living room. It's difficult to integrate all these devices together in a way that really provides the richest, easiest experiences. I'm sure sophisticated people like yourselves can do it, but it requires a lot of work to integrate all these different devices.
Of course, we love our Web sites. The Web does a great job at providing access to data from any different computing device, so long as you're online.
While we think that more and more online computing will be obviously relevant -- we all know how much connectivity we have -- there are still important scenarios when we're not online, when you have large datasets that would take a long time to move from the Web to a local client machine.
Additionally, we want our Web sites to work really well with the client applications that we have.
The things that Steven and Scott showed this morning are mostly client applications, really exploit those amazing computational capabilities we have in the client, and we want to make it easy to integrate those client applications with what happens on the Web.
Another key benefit of the Web has been the sharing and the social component that it brings. The Web does a lot to make it easy to communicate with the people you care about.
And, of course, it's all underlined by data. We have lots of different data in lots of different places. You want control over your data, you want easy access, anytime access to your data, and that's sometimes difficult.
What this means is we have all these different islands of computing resources, and this is why about six months ago, we introduced Live Mesh. The purpose of Live Mesh is to bridge these different islands, to make it easy for users to have access to all of their devices, all of their data, all the people they care about, all their applications, with a core concept of synchronization underlying it.
The experiences that we introduced six months ago with Mesh are really the tip of the iceberg. We've always know with Mesh that a key aspect of it is the platform infrastructure that underlies it.
And so this week we're starting to talk about Mesh as a key component of the Live Services, the developer infrastructure that it brings together to allow developers to create applications and Web sites that connect a user's data, their devices, their people, their applications.
So, we're taking these Mesh services, and we're making it a key part of the Live Services. By adding these Mesh services to the Live Services, we're rounding out the Live Services as a platform for software plus services applications to allow developers to build applications that blend the best of what you can do on the local client with the best of what you can in the cloud, all based on synchronization.
It connects applications to users and their devices, makes it really easy for you to build an application that leverages these multi-device, multi-user sharing kinds of scenarios, and integrate client and cloud capabilities to do it.
But how do you access the Live Services? Today, we're announcing the Live Framework. The Live Framework is the way to get at Live Services. Think of it as the set of interfaces. In some ways by having both a Live operating environment and a programming model on top of it, the Live Framework is the way to get at Live Services. The Live operating environment is akin to the Common Language Runtime component of the .NET Framework. It provides the runtime execution environment, running on a PC, running on a mobile phone, running in the cloud; consistent environment, and your code can run in any of those places.
And then the programming model is the actual APIs that are used to access the Live Services.
We have consistent interfaces across this, again based on open, interoperable protocols, so you can access the Live Framework from any developer stack. And again it works on PC, phone, and Web.
So, with that, I'd like to invite Ori Amiga, group program manager of Live Services, to come out and show us how to enhance a Windows application with the Live framework. Ori?
ORI AMIGA: Thanks, David. (Applause.)
Scott Guthrie showed us earlier today how you can take a rich Windows client application and really snazzy it up using WPF. What we're going to do now is take that same application and Mesh enable or "Meshify" it, as we lovingly call it, using the Live Framework and the power of Live Services, making it an even greater citizen in this world of the PC, phone, and the Web.
To do that, we're going to add three new capabilities to this application. Inside our sharing wizard we're going to first enable the application to easily access all of my data, my folders, files and photos across my devices and my personal cloud storage.
Second, we'll enable the application to seamlessly synchronize its metadata, settings, user preference, and data across all of the devices in my Mesh.
And third, we'll enable it to tap into my social graph, into my Windows Live contacts, Hotmail, and Messenger buddies, and enable a sharing experience right within the application.
So, let's go ahead and take a look at how we do that.
The first thing we're doing in our code is connecting to the Live operating environment. This is our service composition engine, which runs on the cloud and on each of my devices.
Now, to get at my data, my Live folders, the data that's synching between devices and the cloud, I'm going to enumerate all my Live folders, which are a type of Mesh object. And for that let's go ahead and do a simple For Each statement: for each MNLiveEffects.mesh.meshobject.entry, and let's go ahead and add that to the collection, into the LiveFolderslist.add. There we go.
For that instant gratification let's hit F5 and see what happens.
Now, the beauty of the Live Framework is we try to make it as natural for .NET developers to get at all this data and capabilities, and so I can use all my existing skills and just get going.
So, here are all my Live Folders, my documents, photos, my PDC stuff, all in just a handful line of code.
Now let's go ahead and wire up the other two tabs. So, for the devices tab it's just as easy. So, I can do another simple integration for each device in LiveEffects.mesh.devices and let's go ahead and add that to the device list.
Now, for contacts let's do something a little more clever. For that consider just simple enumeration we obviously support the power of link, and synching of our link queries against the Live Framework on the cloud or on the client.
So, let's go ahead and break out the little Live Framework code snippet. Notice I can go through all my contacts, order them by let's say their name, I can add aware clause or anything else I'd like, and then it's again as simple as just enumerate over the collection, for each contact in the query, and let's go ahead and add that to my contacts list, and then see what happens.
So, just with a handful lines of code I'm not able to tap into again that data, devices, and that social graph.
Going through the wizard again, let's go ahead and take my PDC stuff, there's my Live Folder. Here are all of the devices in my device rings. These are devices where I've already installed the Live Mesh client on, my work PC, my home PC, Media Center. There's my mobile phone. Let's go ahead and enable synchronization to this device. And here are all of my contacts of people that came from Windows Live in the cloud. (Applause.) It's as trivial as picking a couple more contacts to share with. Notice Dave and I are already sharing this Mesh object. And let's hit finish.
Now let's take a look at what this application actually did with all that code we wrote. So, Dave, let's go ahead and switch over to your machine.
DAVID TREADWELL: Sure thing. So, I've already got the same application that Ori just build running on my own machine. I'm going to change the theme of this to be red, so you can see it's a different machine. And it's already synchronizing the photos between our two instances of this application. So, different devices, same application, synchronizing the data between the two of them.
ORI AMIGA: Let's go ahead and pick the same photo in our album. I'll pick a nice lake photo.
DAVID TREADWELL: There we go.
ORI AMIGA: And I'm going to add a little new effect to this photo. Notice the beautiful water bubbling; we switch to black and white. And this is just metadata on this photo. I'm not actually changing the photo itself, just applying an effect on it.
Now, because we're sharing this Mesh object, within a few seconds that metadata change will occur, and notice that now on Dave's machine. Is that pretty cool or what? (Applause.)
DAVID TREADWELL: Thank you very much.
So, he changed the metadata on this machine, and automatically the infrastructure synched it to my machine without me taking any action. No hands.
ORI AMIGA: No hands; very nice.
Let's try another exercise in here. Let's switch to the home gallery.
DAVID TREADWELL: Absolutely.
ORI AMIGA: And I'm going to go into my mountain collection, and let me pick up my mobile phone. This is a very nifty Windows Mobile mobile phone. And we're going to take a picture -- you don't look like a mountain, but we can try.
DAVID TREADWELL: Remember he already added this mobile phone to his Mesh, so the mobile phone can be synchronizing the data with his Mesh automatically.
ORI AMIGA: There you go. So, that's my mobile device adding data to my own Mesh, synchronized to this Mesh object, and then obviously showed up in yours. (Applause.)
So, what we've shown you today was just a handful of lines of code using the power of Live Framework, powered by Live Services, applications can easily tap into the data that users have, into the devices that are in the Mesh, and into the social graph all in a very natural and easy way.
Thanks very much, Dave.
DAVID TREADWELL: Thanks, Ori. That was great. (Applause.)
So, that's how to take a client application and integrate it with the Live Services and the Live Framework to exploit those concepts around synchronization of data and connection with users.
Next I'd like to introduce Anthony Rose of the BBC, and his assistant Paul, who is going to show us how to Mesh enable a Web application, specifically the BBC iPlayer. Anthony? (Applause.)
ANTHONY ROSE: Thank you.
So, hi. I'm Anthony Rose, head of online media at the BBC, and I head up the BBC's iPlayer project. The iPlayer lets you watch or listen to pretty much everything from the BBC's eight TV channels and 50 radio stations. It's been live for about 10 months. It launched at Christmas last year. It's been a huge success. At peak times it accounts for about 10 percent of the UK's entire Internet bandwidth.
What we're looking at on screen now is the iPlayer Web site. And you can see it's what I call a broadcast 1.0 proposition. Essentially programs that aired on TV or were on the radio at peak time yesterday you probably want to watch or listen to today, and the iPlayer Web site reflects that.
So, at the top there are programs we want to promote. As we scroll down, we see what was on TV yesterday or on the radio now, and we see most popular.
But as a small but growing percent of the audience stops watching television and flips over to on-demand services like the iPlayer, how do we move towards a broadcast 2.0 proposition? And for that things like the Mesh will help us.
So, this is a proof of concept, it's not live yet, but if you look down at the bottom of the site here, you'll see our Mesh integrated with the iPlayer site. So, this is activity from the Mesh feeding through into iPlayer.
Let me go and close the browser and go our desk companion. So, this is a Silverlight app running locally, and on it the first thing I can do is I can see all the devices that have Mesh Live Services installed. Now with one click I can take my iPlayer application and synch it to all my devices. That's fantastic; it lets me get the same experience on all my devices.
Now, on the bottom we can see my friends. These are all my contacts from MSN Messenger. And Messenger is the largest IM network in the UK. So, for the BBC this is a huge viral opportunity. Imagine all of my friends just a click away, I can share my iPlayer programs and activity feed with them.
So, let me go ahead and invite a couple of friends. Okay, click okay. Now, I'm still in our iPlayer desktop companion, I'm now on the everyone tab. So, I've got a feed coming from the Mesh, showing me the activity of the Mesh, the most popular programs and activity as it comes in. And again this is all powered by the underlying Mesh infrastructure. You heard there were hundreds of thousands of computers. This lets us focus on the broadcast propositions and creating great consumer propositions, and we leave all the underlying hard stuff to Microsoft to take care of over those vast server complexes.
So, let me flip to my friends. So, in this new world when people perhaps stop watching TV as much, no longer can the broadcaster determine what we should watch and what will be the taste maker; it's now our friends.
So, I'm looking at my friends. I know that Carl has a great set of things that he likes, that I share the tastes. So, let me click on Carl and see what Carl has been watching, listening to, and his activities.
All right, let me go ahead and close that, and I can see that amongst my friends Robin Hood is the most popular program. So, let's go and click and play that.
ANTHONY ROSE: So, down at the bottom we've got the love meter. Now, these are full length programs, full movies, 30 or 60 minute programs, not clips. So, some of them are boring, but there are some cool bits. How do I know which bits to play? And my friends can help tell me that, and I can inform my friends. So, the love meter at the bottom, I can hit I love this, I'm bored with this, and that gets synched into the Mesh and is available to my friends.
Let me go ahead and tell one of my friends about this. Let me click the share button, and I'll tell Lorna about this program. Okay.
So, now enough about my friends; let me get to me.
So, if we click on the Me tab, we can see the program I've just played, and we can see my activity.
Now, what's really interesting here is because this is Mesh-ified, this information is going off to all my devices. So, if I'm in the office and I've watched a program halfway through, and I'm now going out for lunch, I can take out my cell phone, and when I go on my cell phone, that program has been synched to the cell phone. And it's not just the information, the metadata, but through the cloud the actual program is on the phone and the program, in fact, will resume playing from exactly where I left off on my desktop computer. So, there's fantastic seamless connectivity. (Applause.) And this is the iPlayer running as a Windows Mobile application on this Samsung phone.
So, with that, let me end by saying last year your broadcaster chose what you watched. This year, thanks to on-demand propositions, you choose what you watch, although probably what you're going to watch was really determined by your broadcaster, but next year your friends are going to choose what you watch, and it thanks to Meshified applications like this that will allow that new broadcast 2.0 proposition.
Thank you. (Applause.)
DAVID TREADWELL: That was great. Thanks very much, Anthony.
So, that was taking a Web application, a Silverlight based Web application, integrating it with these Live Services, Live Framework capabilities, so that you can run offline, access to data offline, and run out of the browser that does it.
So, we didn't have long to talk about it. That's a very high level view of what we're doing in Live Services, and obviously we're genuinely enthusiastic about what we're doing there.
You want to get started. First off, download Visual Studio 2008 SP1. It has a lot of advances that Scott talked about, great development environment, and I'm sure many of you use it already.
Later today, on Azure.com, we'll have the Live Framework CTP. Please go check it out and make use of this infrastructure. Build applications that exploit these concepts around synchronization of data, of devices, of applications and of people to build awesome, compelling applications that take the best of the client tier and the Web tier for your users.
Please sign up for Live Mesh as an end user. Later this week, we're putting Live Mesh in beta, and we're adding capabilities, both new features as well as support for Windows Mobile 6 and Macintosh from the Live Mesh. (Applause.)
And finally, later today, around 1:00 we'll have the good USB hard drive, 160 gig hard drive that will have a ton of the bits you'll need to make use of all this stuff that Steven and Scott and I have talked about today.
So, with that, I'd like to introduce Takeshi Numoto, who is going to show you how Office is taking advantage of the technologies that we've been talking about today to build transformational application experiences. (Applause.)
TAKESHI NUMOTO: Good morning! It's my absolute honor to represent the Office team today to share our vision for delivering great user experiences across the PC, phone, and the Web in Office 14.
Office is about helping you work the way you want to, and with over half a billion customers using our product worldwide, we have learned a tremendous amount in terms of the huge diversity in the way people work.
Customers also tell us that no matter what their work style, they want to be able to share information, connect with others, and collaborate without boundaries. And, of course, people want to do this with a seamless experience across the PC and phone and Web.
And that's why I'm so excited to announce today that we'll be delivering Outlook Web Applications as part of Office 14. (Applause.)
Office Web Applications are lightweight versions of our desktop productivity applications that enable people to view, edit, and collaborate on Office documents right within the browser.
We will be delivering those for Word, Excel, PowerPoint and OneNote, and you will see many of them today.
So, let's get to the demo.
Let me start with OneNote 14, our digital note-taking application. Today, I'm playing the role of a movie producer, with Chris as an outside consultant. We are using a notebook that we're sharing on Office Live. On the left-hand screen you can see the notebook open in OneNote on my PC, and on the right-hand side you can see Chris at an Internet café using OneNote Web Application to access the same notebook.
OneNote gives me a very flexible surface to keep track of all sorts of things, like the text, documents, images, and I can also see who contributed what content into this notebook.
We are all brainstorming together for movie locations, and one of the locations we're interested in is the Regional Pantry Café, which is a local favorite just a few blocks away from this convention center.
So, let me grab a screen clipping of a map for this location. I can take just a portion of the map I want, and then OneNote automatically adds it to the notebook with a very helpful URL that helps me go back to the source if I want to later, and in a few seconds it should show up on Chris's browser as well; very cool. (Applause.)
CHRIS BRYANT: So, Takeshi, I see that the picture has synched into my view of the notebook, but we still do need some information from the café. So, I'm going to make a note here that we need to take a shot from this location. I'm a terrible typist.
TAKESHI NUMOTO: So, I get an update from Chris with this green highlight here on my PC as well.
We also have Dan in the audience, and imagine that Dan is actually at the café scouting this location using his phone and taking photos using OneNote Mobile.
OneNote Mobile synchronizes all the notes he takes on the phone to a shared notebook on Office Live. This means that the photo he just took on site, it will show up on my PC shortly. And there it is.
You can see the menu from this café here. And let me just grab this and put it right here. And this is now going to be showing up on Chris's browser as well in just a few seconds. (Applause.)
So, this is a great example of Office enabling dynamic collaboration across the PC, phone, and the Web, and it's also a great example of our vision for the future of productivity.
Now let me switch over to Word, Word 14. So, imagine now that Chris is back in his office at his PC, and he and I are looking at a contract to finalize a business arrangement. So, you are seeing that both he and I can open the same document at the same time without being locked out or being forced into read-only mode. And on the right-hand screen you can see that Chris edited the location information and in my view of the document on the left-hand side I am seeing his presence information. This helps me avoid making conflicting changes, and also lets me use the presence icon to reach out to him if I want, whether it be in e-mail, IM or a call.
Let me add the project title, and as I type, in a few seconds Chris should be seeing a presence of myself in his document. But now that I'm ready, let me just synch the document and I get the updates in green highlights from Chris.
Now let me go back to the Office Live Workspace where we're sharing this document. Office Live Workspace is built on many of the Live technologies, Live Services that David talked about earlier, and in the future your Live Mesh Folder will start showing up here as well.
Now let me open the same contract we just looked at, and this time open this in the Word Web application.
I get a fantastic rendering of the document just as it was meant to be read. All the elements of the document are here, the nice formatting, the table, the footer, even the watermark.
And Office Web Applications would work on Internet Explorer, Firefox and Safari, but we can make the experience better when we can use Silverlight. Like when I zoom here, I get a fantastic crisp text, thanks to Silverlight.
Now, of course, it's not just about viewing. I can go into editing, and you can see that we're delivering the Ribbon to enable a consistent experience in the browser, as well as enabling an editing experience that's simple and fast.
One important thing to note here is when I make changes in the browser, the document still retains its full fidelity, which means I don't lose any data or formatting.
Now let me switch over to Excel Web Application. I have a spreadsheet that helps me score the various locations to figure out which one is the best one for our film. I am opening this in IE 8 here, and Chris will be opening this in Firefox. Just like the Word Web Application you saw earlier, I get the same Ribbon experience, consistent Ribbon experience delivered into the browser with all the basic editing capabilities. I get things like conditional formatting, data bars, icon sets or things like the chart down below, just like I'm used to on the PC. And I can do things like use the familiar sum function just as I'm used to.
I'd better type something. Okay.
CHRIS BRYANT: So, Takeshi, I'm a huge fan of Felipe's, which is actually downtown. (Applause.) Thank you.
I'm a huge fan of Felipe's, and I'm going to call this location out by highlighting it here in my view, just so you know how much I like it.
TAKESHI NUMOTO: Okay, you can see that Chris's change is being reflected on my view, and, of course, my changes are reflected in his as well.
Now let me just hit publish, and this lets me publish the various elements of the spreadsheet with an embed tag that I get here, into some other sites or blogs. In this case let me pick the chart I showed you earlier, and publish that into Windows Live Spaces.
Let me finish the posting. So, here you are seeing the chart posted into this blog using REST APIs, which allows me to pull the various information from the spreadsheet. This means that when the data in the underlying spreadsheet changes, the chart will get reflected as well.
CHRIS BRYANT: So, Takeshi, I don't think the score for Felipe's is quite fair, especially not given how much I like it, so I'm going to manually bump that up to say 500 I think is fair.
Okay, let me hit refresh here. Updating. Let me try again.
TAKESHI NUMOTO: You can see that chart reflects the changes that Chris just made. (Applause.)
This is also a great example of how Office Web Applications can help extend Office documents into the Web.
As you can see, we are very excited about the Office Web Applications, but they are actually just a small part of our overall story for Office 14, and as we move along, we look forward to sharing more of the full story on Office 14.
Office is all about defining the future of productivity and to us it means embracing all of the diversity in the way people work, while bringing them together in a great collaboration experience that spans the PC, the phone, and the Web.
Thank you and let me bring Ray back onstage. (Applause.)
RAY OZZIE: Thanks, Takeshi.
For quite some time now many of you have wondered just how or even whether we might truly bring our Office suite to the Web. Our aspirations have been about more than just delivering docs and spreadsheets in a browser over the Web. What Takeshi just showed you is that the combination of the Web, the phone, and the PC can be clearly more valuable for our customers than any one of those platforms as taken by itself.
As a combined, integrated solution we can center the creation and editing tasks where they're most natural and effective, on the PC. We can pivot the sharing and collaboration around the Internet and the Web. We can channel your most spontaneous actions to within your arm's reach on the phone.
This is a vision of seamless connected productivity, a coherent vision of a multi-screen office, an office across platform boundaries, an office without walls.
Before Takeshi was on stage, Dave Treadwell gave you a quick overview of the Live Services platform and how we're using Mesh technologies to create a synchronization bridge that spans Windows PCs, the phone and the Web. He showed how Live Services can be used to Mesh enable a content rich Web site, letting Microsoft bear the risk of understanding how to reliably synch at high scale across a world of Windows PCs, phones, and devices.
Scott Guthrie showed you some tremendous innovations in the realm of our platforms, tools, and runtimes, and what I found great about Scott's talk is just how easy we're making it to build great Windows apps and Web apps, which, of course, I think is a critically important thing, because a contemporary software and service app should easily be able to deliver the best of Windows and the best of the Web.
And opening the morning, Steven Sinofsky showed you some of the great innovation in Windows 7 and Windows Live wave 3, Windows and Windows Live coming together to deliver a seamless PC, Web, OS experience, a Windows without walls.
So, in terms of a call to action, if you haven't done so already, please make sure to register for provisioning at Azure.com. And starting at 1:00 PM today every attendee can pick up a copy of the goods, a disk containing the bits for Windows 7, Visual Studio, .NET Framework 4, and much more.
So, as I draw today's keynote to a close, I hope that these presentations and demos have been useful to you and to your business. All of what you saw yesterday and today is real, and I hope this was pretty clear to you in the way that we're betting on our platforms with our apps.
But unquestionably some of the elements of what you saw yesterday and today were also nascent, and for some of the things we introduce it's really just the beginning.
We showed some nascent but important back-end infrastructure, design patterns and models that are aspiring to be the basis for our horizontally scaled systems of the next 50 years.
We showed some nascent but important front-end infrastructure and design patterns and models that are aspiring to be the basis for the multi-screen experiences of today and tomorrow, Windows PCs, the Web, and a world of devices.
At both the front-end and the back-end, for all of us as developers, for you and for Microsoft, we see these as significant investments in our future.
So, once again thank you, thank you very much for your time and attention and for coming to PDC08. Thank you for investing in us. And I hope together we can continue to do some amazing and valuable things for all of our customers.
Enjoy the rest of your week. Thanks. (Applause.)