Keynote Remarks by Robbie Bach, President, Microsoft Entertainment & Devices Division
Microsoft Mobile & Embedded DevCon 2007
Las Vegas, Nev.
May 1, 2007
ANNOUNCER: Ladies and gentlemen, please welcome President, Entertainment and Devices Division, Microsoft Corporation, Robbie Bach. (Applause.)
ROBBIE BACH: Good morning. It’s great to see so many people here today, and to get excited about the great accomplishments of everybody in this room. I want to spend some time today to talk about what we have accomplished over the past five years, to talk about how MEDC really can move that forward going to the future, and give you an idea of how we see that future evolving and developing, and how we want to partner with you in making that happen.
In many ways, our business has reached what I think of as a tipping point. I think Windows Mobile and our embedded systems work has gotten to the point, with a lot of great help from you, where we can now really take leadership and really drive growth. And so if there’s one thing you take away from my talk this morning, it should be about the opportunity for growth and the opportunity for you to continue to grow your business.
Robbie Bach, president of Microsoft’s Entertainment & Devices Division, addressing more than 3,000 developers at the Microsoft Mobile and Embedded DevCon. May 1, 2007, Las Vegas, Nev.
Now, I want to do that in the context of what we call “connected experiences.” If you go back three, four, five years, people would have thought of the experience between the PC and a server as one world, and the experiences of other devices as a completely separate world. And those two worlds really didn’t interact very much.
We are now seeing a dramatic change in that space. We are seeing the idea that the PC, the phone, other devices, set-top boxes, videogame consoles, music devices, all of these devices are in some way connected, and our customers want them to be connected. They want that experience that enables them to get the tools, the data, the information, the entertainment experience they want when they want it and on the device that they want it.
And at Microsoft, I think sometimes we’re viewed as the company that delivers that in your work experience. But that also is changing. The work we’re doing with Windows Mobile and our embedded systems is enabling us to span from the work life all the way to the things you do in your personal life, and that’s really an exciting point for customers. In particular, take your mobile phone. People don’t want to have two devices, and they don’t think about those devices separately. They think about it as one thing that spans from my work life to my personal life. And our challenge is to make that transition easy and transparent for them. Whatever device they have, they should get what they want, when they want it.
And so I’m going to talk today about connected experiences in the context of what we’re doing with the Windows Mobile platform and in context of what we’re doing with our embedded services platform. And I think you will see how these things fit together into the broader story of connected experience.
So when you think about the Windows Mobile opportunities and the Windows Mobile environment, if you will, there are a couple of different things that are essential for people to be successful: The first is what you might traditionally think of as our platform layer. This is where Windows Embedded, Windows Mobile plays, this is the thing that you would traditionally think of as Microsoft’s business. This is the place where we’ve been doing this kind of work for over 30 years and, again, I think in both Windows Mobile and Windows Embedded, we’ve made tremendous progress.
But success doesn’t stop here because the real important package for you, at the tools level. This is where things like .NET, Visual Studio and other tools, which we’ll talk about today, really bring the platform to life for you as you’re creating experiences for your customers. And without that tools layer, the work’s just too hard. And so it’s the combination of platform and tools that is key. That is our software offer.
Then on top of that, increasingly, you see Microsoft talking about and evangelizing software and services. And so you see here some typical services that Microsoft is offering that builds on our platform and our tools. This creates a full system; that is, platform, tools, and services, and I think really creates the overall environment for what you want to create. That’s the exciting thing that we’re doing.
Now, it’s important to note, you saw there about the Microsoft services, it’s important to note that we don’t think of his as a Microsoft set. We think of, in particular the service layer, tremendous opportunities for other people to innovate on top of our platform. And you’ll note, some of those companies are actually companies that compete with us in other spaces, and that’s OK. In this space, they want to be building on a platform that has great tools and can deliver great services, and we’re definitely seeing that happen.
Robbie Bach (left), president of Microsoft’s Entertainment & Devices Division, Mike Hall, product manager for Microsoft Windows Embedded, showing how new Windows Embedded technologies can help people remotely control their home environment. Las Vegas, Nev., May 1, 2007.
So what I’m going to do now is go through each of these layers and talk to you about what we’re doing in platform, tools, and then, ultimately talk about services, and along the way, hopefully, show you some cool demos.
So let’s start with the platform. And to do this effectively, I want everybody to go back five years ago and think what it was like being on the Windows Mobile platform in particular. So we had one device, one operator, and some of the time you could make a call. That was sort of the environment we were at. And I think if we’re honest with ourselves, that wasn’t a great space to be, and the system and the platform weren’t very mature.
Now, I say that a little bit tongue in cheek, but when you think about it, coming forward to where we are today, think about how much of that has changed. So, today, there’s almost 150 devices that run Windows Mobile for mobile phones, it’s offered by 125 operators, and also 50 handset manufacturers. This is a rich, vibrant ecosystem. And it doesn’t matter whether you want a keypad, whether you want a touchpad, whether you want a slider phone, you want a candy bar, you want a flip phone, we have, on the Windows Mobile platform, whatever phone you want.
And we are getting the most innovative, cutting-edge designs on Windows Mobile. And that business has really reached the point where people are saying, “Wow, this is going to scale. This is going to be a leader in this space.” In fact, today we already outsell RIM Blackberry in the marketplace, something most people don’t know. And it’s actually not really a close context. We are doing exceptionally well. We see a ton of momentum in the space, and I think you’re going to see that continue going forward.
Now, the other part of the platform story isn’t just about what we’ve been able to do with handset manufacturers and operators, it’s about things we’re doing within Microsoft as well. I meet with my colleagues from around the company, and mobility and the ability to work on a Windows Mobile phone is a big initiative across the company. You see here a whole host of products from Microsoft that are going to come with Windows Mobile connectivity, new capabilities, special features, and there’s more in the hopper. This is a broad-based initiative across the company to be able to do that.
In fact, you’re going to see us continue to build mobile as a platform, just like you’ve seen us build Windows as a platform over time. There are a number of products that aren’t even on this list, several, in fact, from my division that are going to come to this marketplace as well. So this really creates an incredible opportunity for people to do this.
Now, the final point I want to make about platform growth is I think there’s a misperception in the marketplace. That perception is because we do such a great job with [Microsoft] Outlook and Exchange, and because people like to integrate us into their productivity system, people think we’re about business use. Somehow, there’s a perception that corporations are buying hundreds of thousands or millions of phones and giving them to their users. And that’s, in fact, not what happens.
In fact, 90 percent of our phones are sold through a mobile operator store. And, in fact, they’re bought by individuals. Oftentimes, they end up being supported by IT departments, that’s certainly true, and we end up on standards lists, but this is a momentum that’s being driven by individuals. And it goes back to the point I wanted to make at the beginning that individuals see this as the way to connect their personal life with their business life, and to provide the things — they want everything from Exchange mail support, line of business applications, and those things, all the way down to how do I get TV, video, and music on my phone. That’s the power of Windows Mobile, and that’s how we see it coming about.
Now, to give you some idea, again, go back five years. We had one operator, and you didn’t see a lot of advertising around our phones. Let’s take a look at what’s been happening recently, and I think it’ll give you some idea of the broad-based adoption of the platform.
ROBBIE BACH: So that really gives you some idea of the depth and breadth of the work that we’re doing. Think global, think business, think personal. That’s how you think about Windows Mobile.
So that gives you some idea of where the platform is, the opportunity that that presents for you. I also want to talk about the work we’re doing at the tools level to support you. And, you know, this starts off with the capabilities we build right into the phone. So .NET Compact Framework, SQL Server Compact Edition, Windows Mobile Marketplace is coming built into Mobile-6 devices. That is a great opportunity for you because you don’t have to worry about distributing those services, you know they’re there. You can count on them in creating your applications, you can count on them in creating the things that you do.
And so, for us, figuring out how to support you and make that process easier is a central task to what we’re trying to accomplish. It’s gotten to the point now where even our competitors are coming and saying, “Hey, we love that support, we see an opportunity, we want to do that. RIM is going to replicate their Blackberry experience on top of Windows Mobile. Google brings their map service to Windows Mobile. Yahoo brings their search service to Windows Mobile. These are people which, again, we compete with in other spaces, but who are seeing the advantages of the platform, and their developers see the opportunity for creating cool things.
Now, the other thing we want to do is we want to make it easier for you to get your applications signed, a place that’s been a point of pain for people who are creating applications, and we’re working with Verisign to announce today a dramatic simplification in the way you are able to sign you’re applications. We’re not going to ask you to do that DLL by DLL, we’re going to make it a very straightforward process so that you can take the great work you’re doing and get it to market faster, at less cost, and with less pain inside your organization. It’s just a consistent part of the work we’re doing to build out the ecosystem.
Now, you saw in the video, and you guys have all seen all the different devices, they’re all different screen sizes, they come in all different shapes and forms. So we had the team put together a little video give you an idea of how extreme this might become. And then we’ll come back and talk to you about the things that we’re actually trying to do. So I hope you’ll enjoy this little tongue-in-cheek effort to bring some excitement to the space.
ROBBIE BACH: (Applause.) Well, I’ll be clear to any press in the audience, we are not announcing the O-Phone, I don’t want anybody to be confused about that. But I think it does, in a humorous way, sort of highlight the challenges we get in the environment we created, because we love the diversity. We love the ability to have different form factors, different screen sizes, different orientations, phones that will orient two different ways, et cetera. And our job is to make that platform easy for you to work with, and to make those devices come to life in an easy way.
And, obviously, that starts with .NET Framework, it starts with Visual Studio, those are core tools to what we’re doing. It also goes onto Expressions, which is now shipping, and really is the designer suite to help you design the tools and applications you want to build on top of the system.
Finally, we have announced a couple of weeks ago, and then Ray Ozzie reiterated this yesterday at the MIX conference, Silverlight, which is the ability to product cross-platform content from PCs to other devices, and to do that easily.
When you look at this whole system together, we are creating the tools you need to create exciting new things, whether it’s O-Phone, hopefully not, or the next great Windows Mobile or Embedded device that’s going to enable great innovation in the space. So to give you some idea of that, I want to bring Derek Snyder on stage, he’s going to give you a tour of Windows Mobile and some cool innovations. Derek.
DEREK SNYDER: Thanks, Robbie. So in the next few minutes, I want to give you a look at what we’re doing for developers in the next version of Visual Studio, code-named “Orcas,” along with the .NET Compact Framework, and SQL Server Compact Edition, version 3.5.
And to illustrate these points, we’re going to start with a typical line of business applications shown on the screen over here. Now, I want you to see that we’ve taken the line of business solution accelerator, which is a sample line of business application, and modified it. You can start doing these modifications yourself because the source code is part of the Windows Mobile 6 Refresh SDK that’s part of your attendee bag.
So in this application, we can log-in to a variety of roles. In this situation, we’re a hardware distributor for a hardware store, so I can log-in as a customer service agent, as a warehouse worker, or a delivery driver.
To give you a sense of this application, I’ll log-in as a customer service agent. You can see that I have a list of my current orders, and I can very easily create new orders. Now, this application was originally written for the Windows Mobile 5 platform, utilizing the .NET Compact Framework and SQL Server Compact Edition version 2.0. And with Windows Mobile 6, we have both of those technologies in ROM so we’ll be effectively taking the size of this application from over 7 megabytes, just to a few hundred kilobytes.
Now, as we start changing customers and start going through different items, you can see just how performant the app is. It’s pulling all this data and all of these images right from the local SQL store right on the device. And that’s just how performant SQL is on the local database on a Windows Mobile 6 device.
Now, let’s take a look at the code. As part of the line of business solution accelerator, we have this XML framework that you can utilize in your own applications. We’re able to access services, just like I’ve done here with MapPoint, and we’re able to even put in user variables like last user name, for instance. And the idea here is that we can provision a multitude of devices without having to recompile DXE files. We’re able to make changes within this XML that sits outside of the CAB. And so we’ve able to put some of those values in here.
Now, let’s look at how we’re parsing the data. If I switch over here, you’ll recognize this immediately, probably, as a typical loop. We’re able to go through node by node and see if it’s the data that we’re looking for. And if it isn’t, we continue to move on. And although this works, it can be a big inefficient and hard to manage.
So in the .NET Compact Framework version 3.5, we’re able to use a new technology known as language-integrated query to make this a little more streamlined. Now, language-integrated query allows you to actually use familiar SQL-like syntax instead of this old parsing code that we have here, this typical loop.
So I’ll go ahead and insert that LINQ code now, and you can see, there it is, with just a few lines of code, we’re able to use SQL syntax to query our arrays and our data sets on this database. So that’s great. We’ve got that in there now.
Now that I’ve changed the method, I want to make sure that I’m getting the same result. We’re told a lot that device developers would like a way to automate and run unit tests on a device, and I’m happy to say in the new version of Visual Studio, code name Orcas, we’re now bringing unit testing to devices.
So I can very simply click within my get app setting string here, and create a new unit test, it’s that easy. It’ll start building the process in the background, and automatically populate down to the get app setting string that I’ve selected here. I’ll choose the default and hit “okay.” I’ll choose the default names, that’s project one, that’s just fine. And just like that, it creates the unit test.
I’m then able to start scrolling down, and you’ll see that it creates a sub for me to fill out later where I can, in this case, test between the new LINQ method that I’ve implemented and what I’ve done with the old loop. So I’ll be able to get a conclusive test if I run that now.
So let’s switch back to the application. Now, in this scenario, of course, we have delivery drivers that are out on the road, and so I’ll actually log-in on the green device as John Smith, who’s a delivery driver. On the blue device, I’ll log in as Bob Rosson, who’s another driver out making deliveries.
So in this scenario, Bob Rosson opens up his inventory because he’s got some deliveries to make later today, and he realizes that, low and behold, he’s out of pliers and he needs to deliver ten of those to a customer later in the day. Well, that’s no problem. He actually meets up with John Smith, who checks his inventory, and realizes that he’s got 30 pliers and he can, certainly, spare ten of them.
And now we get into another challenge that developers have faced: How do we send updates from one device to another in push form? Maybe you could use a phone number, maybe you could use SMS, you could try to use the IP address, but if these users ever get in an elevator or on an airplane, when that device comes back online, it certainly may not have the same IP address. And, certainly, there’s nothing to be said for getting this information stored for collection later for when that device comes back online.
So what can we do? Well in the .NET Compact Framework version 3.5, we’re introducing a new store and forward feature which gives you the ability to send direct updates to an application using the Windows communication foundation and direct push.
So let’s see what that looks like. We’ll click on menu and transfer items. I’ll down and select pliers, quantity 10, and send it to Bob Rosson, and I’ll hit done. In the background, what’s happening right now is that a message is getting sent through Exchange 2007, completely invisible to the user, and then being received and interpreted by the blue device, which represents Bob Rosson. And so, low and behold, we’ve now received the 10 pliers, and it’s now updated on the device as you can see there. How cool is that?
So that’s a look at where we are today. And I’m happy to say that you can start playing with this all on your own. We’re giving every single MEDC attendee a beta version of Visual Studio “Orcas” so you can start playing with all the technology I’ve showed you today.
Now, let’s take a look at where we’re going. As Robbie had mentioned, we’ve just showed Silverlight, the new .NET-based media experience for creating rich interactive applications at MIX yesterday. So I wanted to dive in a little bit with this.
Over the past few months, I’ve been blogging quite a bit about MEDC and the activities that we’ll be doing here. So I wanted to jazz that up a little bit, give it a little bit more flair. So I created, based on the page-turn application sample up on Channel 9, a very simple MEDC photo blog.
Now, I want folks to know that I am actually using Silverlight to create this, so I’m now going to make a few changes using the Microsoft Expression Blend tool. I’ll right-click and hit insert to add the Silverlight logo. I’ll then drag it onto my canvas where I can start making changes to it. You see very graphically I can move things around just like that. I can change the size, et cetera.
So now that’s great. But I could do that kind of thing in Visual Studio. I can certainly drag images around a form. So how can I actually make some little dazzle to this? So I’ll go ahead and set the opacity to zero, which basically makes the item invisible. But then at the three-second mark, I want it to fade in. So I’ll go ahead and create a new timeline now. I’ll choose the default, timeline two, and I’ll scroll this up so that I can actually choose the point at three seconds where I want this logo to come to full, 100 percent opacity.
So that’s done. I can now turn recording off. For a lot of developers that have worked with other technologies in the past, this may look very familiar to you, so it’s super easy to get going. Now if I rewind and hit play, you’ll see the Silverlight logo just fades in with that really nice effect. And so it’s that easy. So, obviously, that’s just the start of what I’ve been doing. I do have the completed project, and so I’ll show you that now.
Now, as I said, Silverlight is cross-platform and cross-browser, which means it runs in Internet Explorer 7, Mozilla Firefox, as well as Safari on the Macintosh. So anyone that’s using those browsers will be able to take a look at my project using those browsers.
So you can see very easily I’m able to scroll around and it has this really glossy feel, just like a magazine. Here’s a picture of me looking to the session editor, and here we can add text and lay out a collage of photos. Now, this is MEDC. So what does this mean for device developers? Well, Robbie talked about the O-Phone a little earlier, and of course that was tongue in cheek, but it’s a real problem to think about adapting to the multiple screen resolutions and orientations and DPIs that can come your way. You really never know what’s coming, right? We can give you guidance, but you want to make sure to have your application automatically adapting.
Now, everything I’m showing you here with Silverlight is built around vector graphics, which means we can take the same exact code and bring it over to the device without any changes. So let’s take a look at what that looks like.
So I’m bringing up my Silverlight application right here on this Windows Mobile device. And you can see, again, without refactoring, the exact same page-turn is happening. So here’s a picture of me with the session editor. How cool is that? All the fonts scroll down, everything is taken care of. And if I was running this on a Windows Mobile standard or a non-touchscreen device, exact same layout would happen.
And so I can keep scrolling through. Here we are in the keynote meeting, and I’ve even included a picture of me and my dad. Let’s see a video of good old dad, because Silverlight actually includes support for audio and video on the device. And you’ll see, it comes up very graphically and I’m then able to have the video playing right within this application. So you really are able to have a full experience.
So today I’ve shown you what you can do with Visual Studio “Orcas” in concert with the .NET Compact Framework, and the SQL Server Compact Edition database on the device. And I’ve also talked to you about how the Windows Communication Foundation, in concert with .NET CF, will allow you to bring store and forward, to push updates to your application, just like direct-push e-mail, and also how Silverlight will help you solve the problems of adapting to multiple screen sizes from the device, down to desktop. Thanks very much. (Applause.)
ROBBIE BACH: Thanks, Derek. So now what I want to do is I want to switch gears just a little bit, and I want to talk specifically about Windows Embedded in the platform. And, in a way, the theory here is very similar to what we discussed with Windows Mobile. Because, again, we have the tools, Visual Studio, the .NET Framework, based in as part of our platform, along with the operating system work that we do, whether it’s Embedded CE, XP Embedded or Embedded for Point of Service [WEPOS].
All of those systems create a rich environment for you to target, and that environment has been growing dramatically. Our business in this space has doubled over the past 12 months. In 2006, the shipments of XP Embedded hardware devices was up 250 percent, and we got 2,600 OEMs shipping Windows Embedded XP products. This is a space that continues to grow. It’s a space where we think there’s tremendous opportunity going forward, and where we want to support that opportunity.
Now, if you’re a developer or a partner in this space with Microsoft, one of the things we’ve done, I’d say, a relatively poor job of is giving you a clear roadmap for what we’re doing in the space and what you should expect coming forward in the future. So we want to talk about that briefly today.
The first thing to understand is that we are committed to annual releases across this product family. And you’re going to see releases in 2007 and 2008 around the existing CE, XP and WEPOS platform. And we are going to be able to pull in some of the [Windows] Vista-like capabilities into those releases. So you’re going to start being able to take advantage of [Windows] Vista capabilities in the very near term.
And then longer term, as we go out to 2009, that annual release gets you the full next release of CE, as well as [Windows] Vista-based technology in the embedded space and the point-of-sale space.
So this really does flesh out where we’re headed. You’re going to get a lot of details in the breakout sessions on what this means, and what kind of capabilities you’re going to have, and you’ll have the opportunity to give us feedback on what you’d like to see in it. But we want to make sure people understand we’re focused on this space, we’re excited about the opportunity there, and we think there’s real growth to be had in the embedded space.
To give you some idea of that growth and what’s happening there, I think it’s again important to note that this is a space where partners have played an important role in what we’ve done. And like Windows Mobile where the operators and the handset manufacturers have been great partners, we’ve had tremendous partners on the silicon side in this space who have really helped us grow, and helped us take advantage of the operating system and give you great capabilities.
We’ve also had customers who have been very positive and given us great feedback on what we’re doing in the product and really helped us build on that.
Now, today we’re announcing several other things that are happening in that space. We’re working with TI on their new DaVinci technology. They’re going to bring that to our embedded platform environment, and enable you to support new media-oriented devices.
Texas Instruments has been a great partner for us in this space. Yesterday they won our Windows Embedded Excellence Award, which is a real sign of the great partnership we have with them, and I think you’re going to continue to see that grow and see a lot of innovation at the chipset level that supports the work we’re doing at the OS level, which will make your live tremendously easier.
The second partner that you saw come up there was Crate & Barrel. And Crate & Barrel has been running nationally our POS system running Windows for quite some time. They are now moving to our Windows Embedded environment for their kiosks. And what we wanted to do is give you a chance to see what that’s like, see the work that they’re doing in that space, and understand the direction we’re going there.
So, with that, I’m going to bring on Mike Hall, he’s going to take you through the Crate & Barrel experience. Mike?
MIKE HALL: Good morning. It’s great to be back at MEDC and see so many familiar faces out in the audience this year. So about a year ago we were still working on a set of development tools that makes it extremely for developers to build applications that target robotic platforms.
In December of last year, we launched Microsoft Robotics Studio version 1.0 that supported a number of different robotics platforms, including Windows XP and Windows XP Embedded. Just recently, we announced a new update to this which is Microsoft Robotics Studio version 1.5 as a community technology preview, which adds support for Windows embedded CE 6.0, and also Windows Mobile devices.
In fact, at MEDC this year, we’re running the ever-popular Sumo robotics competition based no a CE 6 robotics platform, and using Visual Studio 2005 and Microsoft Robotics Studio to generate the applications that control those robots.
Why don’t we take a look at the developer experience, first of all, building that CE 6 operating system image, and then generating a robotics application that could run on top of that robot.
So what we can see up on the screen right now is Visual Studio 2005. I’ve got the CE 6 plug-in installed onto this machine, and have made some modifications to the catalog that we see on the screen on the right-hand side.
The operating system image that I’ve pre-generated here is based on the internet appliance configuration of the operating system, and I haven’t added any additional features to it at this time. In order to build support for Microsoft Robotics Studio version 1.5, I need to add support for the .NET Compact Framework version 2.0, service pack 2.
I’ve also created a couple of custom components that I want to add to the operating system design. The first one of these is a USB webcam driver that supports the Logitech Quickcam Pro 5,000 USB Wecam. With CE 6, we have a completely new camera driver model based on direct-show technology. This makes it very easy for device-driver developers to support new camera hardware on CE 6, and also provides a very consistent API for application developers to be able to consume both still images and video into their applications.
I’ve also created a component that wraps up the Microsoft Robotics Studio runtime, and pulls in the core Compact Framework-based components, the CCR and DSS needed by Microsoft Robotics Studio.
So at this point, I’m ready to build and deploy the CE 6 operating system image, that’s a process that would have typically taken about 15 to 20 minutes to complete. So instead of doing that, what I’m going to do instead is switch over to one of the tools that ships with Microsoft Robotics Studio, and this is called the Visual Programming Language.
Within Visual Programming Language on the left-hand side of the screen, we can see that I have a number of components, or services. And I’ve just dragged a couple of those components onto my work space area for the Visual Programming Language.
What I’m going to be doing is using an application that uses an Xbox 360 controller to control a robot. In this case, I don’t have a robot to control up here on the stage, so I’m going to be deploying my application into the robotics studio simulation environment.
So here’s my Xbox 360 controller, and basically what I’m doing is hooking up the two thumb sticks from the Xbox 360 controller to a generic differential drive that has been configured to control an I-Robot Create simulation environment. Now, let me deploy this application, this will start the simulation environment. Now, this is a full 3D graphics simulation environment that has full support for all the things that you would expect for a real robotics application, including gravity, friction, and so on.
So using my Xbox 360 controller, I can now control this simulated robot inside the simulation environment. Isn’t that just amazingly cool? (Applause.) But wait, you know there’s more than that, right?
So what I’m going to do is go to physics settings, and I’m totally going to disable gravity inside of this simulation environment. So now what happens? I drive my little robot thing along, and I bash it into one of the blocks that we see up here in the simulation environment, and guess what happens, the robot takes off, the block goes flying up into the air, gravity is totally disabled at this point, just as you would expect.
Now, of course, this is a simulation environment. It’s very hard in the real world to turn off gravity like this, right? And just to prove that this is real, I can come into the settings and enable gravity back on again. And, of course, everything falls to the ground, as you would expect. (Laughter, applause.)
So in the Visual Programming Language, we saw our application, which is very simple, an Xbox 360 controller and a generic differential drive. It would be extremely easy for me to take that same application code and deploy it to one of the Sumo robots that we’ll be using inside of the Sumo robotics competition at MEDC this year. This is an I-Create Robotics platform with an (ICOB E-Box ?) Windows CE reference board attached, and a Logitech Quickcam Pro camera attached to that as well. If you want to find out more about the robotics competition, I encourage you to go to the exhibition hall sometime today and talk to the robotics studio guys that are working there. The exact same code that I’ve developed in the simulation would easily deploy and run on this exact robot without any changes. All I need to do is hook up a Bluetooth connection, and I’m done.
Okay, so that’s CE 6, Visual Studio 2005, and Robotics Studio. Now, why don’t we change gears slightly and talk about Windows XP Embedded and the experience that we’re building for XP Embedded developers.
What I’d like to do is invite John Raschenbauger up on stage, who works for Clarity Consulting. He’s the CTO, and he’s been working with Crate & Barrel on some Windows XP Embedded development. Good morning, John.
JOHN RASCHENBAUGER: Good morning, Mike, thanks for having me out here.
MIKE HALL: So what we have here is a kiosk, by the looks of things, with a touchscreen that has some kind of application running up on it. So what can you tell us about this application?
JOHN RASCHENBAUGER: Well, as Robbie mentioned, Crate & Barrel just finished rolling out their Windows-based point-of-sale system, and now they’re looking at how they can use Windows Embedded, XP Embedded with devices to deliver a great shopping experience in the store. And as part of that process, we’ve helped them build this prototype gift registry application to take a look at what we can do with the tools.
MIKE HALL: Okay, well this is like an amazingly cool application. Very clean looking, we have animation going on. This looks like we’re using the .NET Framework 3.0 and Windows Presentation Foundation.
I guess when we were talking yesterday about this application, Crate & Barrel were looking for a number of things: Great UI using WPF, they were also looking at taking advantage of some of the Windows XP Embedded embedded features, such as file-based light filter and so on, but also a sometimes-connected experience for their database as well so that you have local storage of data that can be replicated up to a back-end server at some point.
JOHN RASCHENBAUGER: So using that combination of quality we get from .NET Framework 3.0, you can see what we’ve been able to build here is a rich, immersive experience, that’s consistent with what Crate & Barrel wants to have their customers feel when they come into their stores.
MIKE HALL: OK, so it looks like we’re done registering, and that’s the end of the application. But, John, these gray and white buttons totally suck. What were you thinking when you were building this UI?
JOHN RASCHENBAUGER: They were my one contribution to the application. I’m a developer, so you can expect that what I’m going to come up with is ugly, gray buttons.
MIKE HALL: OK, great. So can we do something about that? Can we kind of make them green and 3-D and that kind of thing?
JOHN RASCHENBAUGER: Let’s see what we can do.
MIKE HALL: OK, great.
So what we’re looking at here is Microsoft Expressions Blend. This is the same tool that Derek had up on the screen just a few minutes ago for his Windows Mobile demo. So one of the great things for you to take away from this demonstration is that you guys, as developers and designers, can use the exact same tool chain whether you’re building for Windows Mobile, for Windows Embedded, desktop or server. It’s the same developer experience, the same developer knowledge.
JOHN RASCHENBAUGER: So what I’ve done here, Mike, is to take a few minutes in a tool that, to be honest, to me, is a little bit foreign. This is a true design tool that our designers are very happy working with, very consistent with what they’ve worked with in the past.
We made a couple of changes here. Our buttons look a little bit better, a little more Crate & Barrel-ish, we have a nice great, we have a bevel on there, we have a gradient. If we jump over now into Visual Studio and close and reopen that form, you can see some of the powers of integration here that those changes I made in Blend are now immediately reflected in Visual Studio, I’m ready to build and deploy my application.
MIKE HALL: OK, so that basically means that the designer can focus on the design experience without caring about the underlying code, and the developer experience means that the developer focuses on the code behind the UI, without caring about the design and animation and those kind of things.
JOHN RASCHENBAUGER: Absolutely.
MIKE HALL: OK. Great. So we’ve built the application, now I guess what we need to do is build the Windows XP Embedded operating system image. So let’s take a look at that experience.
JOHN RASCHENBAUGER: What I’ve done here is I’ve jumped over to Target Designer, which is going to allow me to create an image of the XP Embedded operating system that we’re actually going to deploy onto the kiosk.
MIKE HALL: OK. So we start with the kiosk COD, this is a component that’s been generated by running the Target Analyzer tool. And here’s our shell component, which is written in Visual Studio 2005 using the .NET Framework. And we’re now going to look for the .NET Framework component itself.
So what I see you adding here is the .NET Framework version 3.0 component. Now, this doesn’t ship today with Windows XP Embedded Feature Pack 2007, but it is a look ahead at some of the features that we’ll be adding in the next release of Windows XP Embedded.
I see you’ve also added the file-based light filter component. This is an Embedded-specific technology that gives you the ability to completely manage and contain the boot volume of the device, in effect, marking it as read-only. But I see you’ve added an exclusion mask here for one folder on the machine.
JOHN RASCHENBAUGER: Our application does need write-off set to this one folder, so I’m adding that as an exception, and that allows us to lock down everything on the drive except this one folder where our application’s actually going to write some data.
MIKE HALL: Okay, so the application is going to be writing back to a local SQL database stored on the kiosk, right?
JOHN RASCHENBAUGER: Yes.
MIKE HALL: OK.
JOHN RASCHENBAUGER: Now, the last thing we need to add is import for USB boot.
MIKE HALL: OK, so you’ve added USB boot component, does that mean you’re going to be booting the device from a USB digital key?
JOHN RASCHENBAUGER: That’s what we’d like to do. We actually want to deploy the application to a USB key. And prior to coming out here, I went ahead and updated the image with our new green button, copied it onto the USB key, and I think we should go ahead and give it a try on the kiosk.
MIKE HALL: Really? During a keynote you want to give that a try?
JOHN RASCHENBAUGER: Why not?
MIKE HALL: OK, great. Let’s give that a try.
JOHN RASCHENBAUGER: So 2,000 people, hopefully —
MIKE HALL: OK, so the key is in and we’re rebooting the kiosk here. Now, the reboot process, shut down, bring back up again, is going to take roughly one minute to complete. So the one thing we haven’t talked about so far or see is that semi-connected experience.
JOHN RASCHENBAUGER: Yes.
MIKE HALL: So why don’t we go and take a look at that.
JOHN RASCHENBAUGER: What we’ve done with the application is we built it using SQL Server Compact Edition, which as we can see, if I go back to the project, I have a single file in my project, an SDF file, and this file contains all of the data that we need to deploy with our application. All the tables, all of the views.
We put that in our application, we can drill down here, you can see we have our product table, and we can now deploy that with our application with the small run time that we embed in the application. We get the full SQL Server capabilities, including replication. So we can replicate products from the main database, we can replicate gift registry information that’s collected on the kiosk back up to the database, and our deployment footprint is as small as that one file and the run time that we embed in our application.
MIKE HALL: Okay, so it’s very easy to build that Windows XP Embedded component that wraps up the shell application as well as the database and everything else. Why don’t you show us some of the code for the replication or the database?
JOHN RASCHENBAUGER: And this is really what was quite impressive to the development team, taking a look at a brand new deployment model for SQL Server, file-based, very simple, yet the programming model didn’t change at all. So what you see here is a little bit of code to go out, fetch some data from that local SQL Server compact edition data, put that in the application, bind it to a list, and display it in the application. The code is identical if we are going against full SQL Server, MSD, or SQL compact edition.
MIKE HALL: OK. Great. So it looks like our kiosk is just about booted up now. So what does the UI look like now? Can you guys see it in the audience?
JOHN RASCHENBAUGER: We have our green button, we booted off of our USB key in front of 2,000 people, I’d call that a successful demo.
MIKE HALL: Fantastic, John, thank you very much.
JOHN RASCHENBAUGER: Thank you, Mike. (Applause.)
MIKE HALL: So what we’ve just seen here is how easy it is for developers to use the knowledge that they have around Visual Studio 2005 and designers use their knowledge using tools such as Expressions Blend to build amazing user experiences using Windows XP Embedded, and some feature technologies such as the .NET Framework version 3.0. OK, thanks very much. (Applause.)
ROBBIE BACH: Thanks, Mike. Thanks, John. So now you’ve heard the story on Windows Mobile platform and tools. The work we’re doing on the platform and tools for Embedded. I want to talk a little bit about the capstone of that work, which is the work we’re doing with services and enabling you to build on top of our platform and our tools exciting new services.
Understand that Microsoft is investing very deeply as a company to build the services platform, whether that’s in commerce, communications, with search, with advertising. Whatever the capability is that’s required for the service, we are trying to build the fundamental building blocks of that.
And you see that investment going on across all of our businesses. I’ll give you the one example in the business I manage, which is Xbox. Xbox Live is built on the Microsoft platform services. And you really see the power of what we’ve been able to do. In four years, we’ve gone from zero people with a console never having really had a service online, to over 6 million people playing games, meeting, experiencing, having a social experience online on 360.
So it’s a very powerful opportunity, and that’s just in one little part of the world. Think about how you can extend that to other parts of the world. Here you see Microsoft, things we’re doing in that space. But it’s quite clear that there are things for others to do. I talked earlier about a broad range of people who are building services on top of our platform. We think this is a very important opportunity.
Now, to give you some idea of how that opportunity has changed, think about the traditional world you would think of with a device and a service. In that traditional world, say, a set-top box is a pretty good example.
When the set-top box basically is just receiving the service, it’s consuming the service. And there’s a lot of work that has to be done in the hardware and in the device to make that possible and make that work. But it’s a relatively straightforward experience in the sense that the device is just there to project the service to the consumer. That’s an exciting opportunity in and of itself and we are continuing to expand on that opportunity and make that more possible.
But there is a growing opportunity in the future, which is the idea that the devices themselves can expose new services. So the example I think of here is a medical instrument device that wants to provide diagnostic data, patient data, back to the cloud as a service — to the cloud, to the hospital, to the doctor, however they want. And it might be consumed by another device on the other end.
This goes full-circle with what I said at the very beginning of the day. The world used to be PCs and servers with isolated devices. And maybe they were receiving some of the information from those PCs and servers. That has now changed. We’re in a connected experience environment where the services are multi-faceted, where all of the devices participate in both directions of service delivery, and where you need to have intelligence and exciting capability on all the devices across the ecosystem.
This, to me, is the biggest opportunity over the next five years. You’re going to see an explosion in the services space. You’re already seeing it in places like music and video games, you’re going to see it in TV where I think every week there’s a new service that comes out, and every week it’s a company I haven’t heard of, and the service they’re coming out with is actually quite interesting and cool. You’re going to see that happen across the devices and ecosystems you work on.
And we want to make sure you’re thinking about that, building it into your plan, and thinking about how you can take advantage of that opportunity.
Now, I want to wrap this all together a little bit. We talked at the beginning about connected experiences and how we would bring that across mobile, the mobile environment, the embedded environment, multiple devices in multiple places. And so what I want to do is I want to bring Mike back on stage, and he’s going to actually take us through a more integrated connected experience in the home. Mike?
MIKE HALL: Thanks, Robbie.
ROBBIE BACH: So what do you have to show us here?
MIKE HALL: So what we have here is a mock-up of my house up on stage.
ROBBIE BACH: You need to work on the furnishing department. It’s a little sparse.
MIKE HALL: So what we have here are some devices that you’ll probably recognize from your house.
ROBBIE BACH: Sure.
MIKE HALL: And some devices that you typically wouldn’t find in your house.
ROBBIE BACH: OK.
MIKE HALL: So we start with an experience that you probably know very well, which is a Windows Vista machine that’s running the Media Center experience.
ROBBIE BACH: Yes.
MIKE HALL: And we’ve got a custom plug-in here that’s been written by Embedded Automation that allows us to control various aspects of our home.
ROBBIE BACH: Right.
MIKE HALL: Attached, then, to the same network as the Media Center device is a .NET Micro Framework-based controller that allows us to use Web services on devices to remotely turn on and turn off lights, as well as controlling the heating and so on.
ROBBIE BACH: Now, just to be clear, this would not ordinarily be sort of a table device? This would be something that would be hidden in the back and something that would be in the plumbing, so to speak, in your home.
MIKE HALL: Unless it’s my house, yes. Exactly right.
ROBBIE BACH: Fair enough. Fair enough.
MIKE HALL: So the .NET Micro Framework board running here, we also have along the other side of the stage that we’ll come to in a few minutes a Windows Embedded CE 6.0 home automation controller, a Windows Home Server, and electronic picture frame. So we’ll talk about all of these in a second.
ROBBIE BACH: Great.
MIKE HALL: The thing that wraps this all together is web services on devices. So let’s show you how this works. I’ve got a Media Center remote control here which is also based on the .NET Micro Framework. This gives me the ability to, obviously, get into the Media Center experience, bring up the home control plug-in from Embedded Automation, and then connect to my living room and turn on or turn off the lights inside of my living room by sending those WSD commands out across the network. You can see the lights turned on here, and it also turned on on the stage.
ROBBIE BACH: All right, so this is truly for couch potatoes because you could have just, obviously, turned on the light here and turned on the light here?
MIKE HALL: Yes.
ROBBIE BACH: But I think the general point you’re trying to make is home control.
MIKE HALL: Right.
ROBBIE BACH: And a limited environment, that’s what we’re showing here.
MIKE HALL: And to your progression here. We start off with volume and TV channels, and we’re now moving on to lighting and heating.
ROBBIE BACH: Very good. OK, got it.
MIKE HALL: Right. So now let’s move over to our home automation controller. So we’ve got our home automation board here. This is from a company called (Vichy ?) and this board is available on sale in the exhibition area, so you’ll be able to pick one of these up and try out the experience we built and got up on stage here.
Again, obviously, you wouldn’t see the board — unless it’s my house, of course, so you would. But we’ve got a board here, and this is acting as a bridge on the network between devices that are WSD-aware, and other devices that are not WSD-aware.
ROBBIE BACH: So these would be legacy devices that are already in the home that just don’t have the most recent technology to be able to communicate?
MIKE HALL: Yes. Yes. Exactly. In fact, we’ve got a very good example of that up on the stage here. What we have is just a typical thermostat that you may find in your home today. Many of these devices can be controlled over a serial connection. Of course, that means that the thermostat itself is now WSD-aware, but the CE 6 board here connects to the bridge, the Media Center plug-in that we’ve already seen, can adjust the heating, send the appropriate WSD command across the network, and the CE 6 board can then push that serial command down to the thermostat.
In fact, let’s take a look at that. I select thermostat inside of the UI here. We can see that the current temperature is 79 degrees, both within the UI and on the device, and we can see that we’re currently on heat, which is why it’s so warm in the room right now.
ROBBIE BACH: No, that’s just the big lights.
MIKE HALL: Oh, of course.
ROBBIE BACH: Keep going.
MIKE HALL: And, of course, what they can do is change that, and we can see both in the UI and on the thermostat we’ve now changed to cool. How cool is that?
ROBBIE BACH: That was very funny. (Applause.)
MIKE HALL: OK, so that’s just part of the experience. The interesting thing about this board, of course, is that we’ve got two USB keys, one we’re booting the operating system from, and we’ve got a second USB slot here with a cable attached to it. So what we can do here is use this as a gateway to the rest of our home network by, perhaps, connecting something like a digital camera, finding photographs, uploading those onto something like a Windows Home Server that we’ve got at the front of the stage here. So do you happen to have a camera by any chance?
ROBBIE BACH: Conveniently, one was located here for me. So here, take control of that, and see if you can plug it in and show us what we can do.
MIKE HALL: OK. So I’m going to plug this into the board, I’m going to turn the camera on. And when the camera comes on, I’ve written a service that runs on top of CE 6 that monitors the USB port. It finds the camera, it finds images, and it then uploads those images across the network onto our Windows Home Server, in this case, a home server from Hewlett Packard.
Once those images are uploaded onto our home server, of course, they can be shared across the home network either using Windows Media Connect, or just off of a file share on the Windows Home Server.
The Windows Home Server, itself, is interesting for a number of different reasons: It gives me one place to back up, monitor, and maintain all the PCs and servers across my home, but also acts as a local data store for all my experiences, whether that be photographs or music or my TV shows.
ROBBIE BACH: Yeah, I mean, it’s interesting that you brought that up. Over the weekend, I was doing the Speaker Net backup at our house, and I discovered — I have a portable hard drive I carry around, and I was looking at it said it had been a year since I had backed up our family’s photos.
MIKE HALL: Wow. Amazing.
ROBBIE BACH: And so you think there’s probably 1,000-1,500 photos that I would have missed if we’d had a problem in the interim. So having an automated solution for that in the house, given the amount of digital media that’s going on around the house, really now has become very, very important.
MIKE HALL: Exactly. Exactly. So the Windows Home Server is also interesting from another point of view. If we take a look at the screen that I’ve got over here, the Windows Home Server also gives us the ability to remote log-in to the Windows Home Server and, therefore, control various aspects of my home network.
I can take a look at my PC’s backup, the data from those PCs. But we’ve also created a custom plug-in using C-Sharp and Visual Studio 2005 that gives us the ability to take a look at our home network and maybe remotely control the lighting, maybe remotely control the heating or security while I’m at the office, on the road, or on a business trip.
ROBBIE BACH: So, again, with the sophistication of the UI aside just for a second, but the basic capability here is the ability to control my home remotely, get on, use the service, and drive the things that change in the home?
MIKE HALL: Right.
ROBBIE BACH: Show us how that works.
MIKE HALL: OK, well, we can currently see that our light has turned on. When I click the “turn lights off” button, this is going to send the same WSD message across the network, and remotely switch off the lights so we can see the UI changes there.
ROBBIE BACH: So what you see here, again, we’ve sort of intentionally exposed a little bit of the complexity here. But from the consumer’s perspective, the ability to control things in the home, one simple interface. To be able to take your media, as we’ll see in a moment, plug it into the network, and just have the lights thing happen, the ability to control things in your house from offsite, very powerful. And then you take this in a business context.
MIKE HALL: Exactly.
ROBBIE BACH: And think of what you’d be able to do in a business where really remote needs are probably higher than just turning off the lights remotely. And people really can see the power of what services across multiple devices can provide.
MIKE HALL: Right. OK, so the final step. One of the things we did here was plug in a digital camera, and we uploaded our photograph to our Windows Home Server. The really interesting aspect of this is that the home server is also acting as a gateway to services up in the cloud such as Flickr or Live Spaces.
ROBBIE BACH: Sure.
MIKE HALL: Or other RSS-enabled sites. So what I’ve got here is an electronic picture frame from Samsung, and this electronic picture frame is running Windows Embedded CE, its complete user experience is built using Visual Studio 2005, and the Compact Framework.
The interesting thing about this frame is it is able to pull images locally from an ASD card, it’s able to pull images across the home network using Windows Media Connect, or connect to services up in the cloud such as Flickr or Windows Live Spaces or other RSS-enable feeds.
ROBBIE BACH: So in my environment, my family lives all over the country, I have four brothers and sisters, my mom, a set of other people I want to send photos to. I want to be able to literally plug in that camera, have it go to the server and have the service know how to distribute those to these frames to my family around the country and have me not have to do anything other than plug in the camera.
MIKE HALL: Right.
ROBBIE BACH: And this really makes that environment possible.
MIKE HALL: Yes. And that’s exactly the experience we see here. These pictures are being displayed from the feed up in the cloud that we’ve just uploaded from that digital camera.
ROBBIE BACH: So what you see here, again, some complexity. And the idea for us and for you is to figure out how to make that complexity simple.
MIKE HALL: Right.
ROBBIE BACH: How to hide the things that we’ve exposed so that you could see them so that from the user perspective, they can come in and literally plug in the camera and know that with a few clicks to set it up, their stuff can be distributed around the house, to their family, automatically backed up, and know that it’s there. And that really brings the connected experience to live.
MIKE HALL: Yes, exactly.
ROBBIE BACH: Thanks very Mike, thanks.
MIKE HALL: Thanks.
ROBBIE BACH: Great job. (Applause.)
So, I want to bring sort of a summary and to kind of give you the bigger picture message here. If you think about where we started, I started talking about connected experiences, and you certainly saw here an example of what’s possible with the technology we’re bringing to market.
So, what is it that’s essential to that? Well, certainly it’s great software in our platform and in our tools that makes that possible. It’s the framework we’re building for services. It’s the development tools we’re enabling to make things work cross-platform. It’s the work we’re doing with you to empower you to create great things on top of that platform.
If you think about the mobile phone, five years ago, we said, gosh, we need to do a better job making phone calls. Now we’re thinking about the mobile phone as a platform for not just phone calls, but for a broad range of services, whether that’s video, music, line of business applications, data, e-mail, other forms of communication.
And the same thing is happening in the embedded space. Five years ago, you would have said, hey, we need some kind of operating system on this device, because it needs some intelligence locally. Now we’re thinking about those devices as being just like a PC, just like this Windows Mobile phone; they need intelligence, they need to be able to expand the services that they can provide and the services that they consume and that we need to make all of that easy.
So, I posit to everybody in the room here today, as you go through MEDC, as you think about the work you’re doing in your business, think about those new opportunities, think about the ways in which you can bring connected experiences to your customers, and think about the tools and support you’re going to get from Microsoft to make that happen.
Thanks very much. Have a great show. (Applause.)