ANNOUNCER: Ladies and gentlemen, please welcome Chief Evangelist, Microsoft Corporation, Steve Guggenheimer.
STEVE GUGGENHEIMER: All right. Good morning. I hope you see by the switching gears we're about to change direction here and do a whole heck of a lot of demos. My name is Steve Guggenheimer. Most people call me Guggs. Steve was the guy onstage yesterday, and Guggenheimer is a little hard to pronounce. So if you hear Guggs over the course of the time, that's me.
Three things we want to do with this session. We want to try and connect the dots between the devices conversation yesterday in Windows 8.1, and all the clients and devices, along with the services and what we saw this morning. So we want to bring those two worlds together, in particular from a third-party angle. So most of the demos we're going to do, in terms of both frameworks, tools, and applications will be from third party and our partners. So we want to thank them for that.
The last thing we want to do is make sure we touch on .NET a little bit more, in this case from the devices side. I get a lot of feedback around where .NET is going. So as we go through this, we're going to spend some time on Web, mobile, devices, services, all that, but we're going to close off and make sure we do a good job on connecting the dots with .NET.
Now, as I dive into this, you saw this earlier today. We talked about devices and services. We're going to go ahead and hit on that. Before I go any further, we know, look, you're not just targeting Windows devices. In some cases, you might not be targeting them at all. So we want to make sure we do a good job on the iOS and the Android side. And, Scott, I thought I did a good job this morning. The same on services, Facebook, Salesforce, Amazon, Google, et cetera. So we recognize that you work in a very broad ecosystem. And we want to make sure we're doing as good a job as possible making it great to work with Microsoft in any way we can and making sure you can get your job done holistically.
The job of the evangelism team and the work that we do is to make sure you have everything you need from Microsoft to get the things done you want to and that we're your voice back in. So the other thing I'd say is keep providing the feedback. Let us know what you like and what you don't like. Let us know what you need. And we'll try and make sure we're getting it done.
On the Windows side, look, on the devices, we've been working for a long time on trying to make it easier for you. So the demos you saw yesterday from that 7-inch device all the way up to the PPI board, that's a common core. It doesn't matter whether it's an RT device, a Windows 8 device -- we've made that work. Now on embedded, which we're going to touch on later today, we've got a common core there. The place we've been working on, I get questions on, is on the phone. The phone has the same kernel, so the networking stack, the graphics, the best example is IE, we have some of the common core on that NT kernel. It's not all done. But, if you think directionally, one of the things we're working on, we're trying to make it easier for you as developers to target as many of the devices as possible and reuse as much code as possible.
We've got a long ways to go, but we're going to keep working on it. Things like skills, languages, your development tools, your runtimes, we want to make that as easy as possible so that if you pick one Windows device, you can hit as many as you can of all the other devices. On the other side, on services, we've been working on that for a long time, right. Trying to make sure if you want to build a service and run it in the cloud no sweat, if you want to run it on premise in what Scott was hinting on at the end there, you can do that as well. But, being able to go back and forth between on-prem and in the cloud, or split the app, we want to make sure we can enable that as well. So the goal is, it doesn't matter where you start, in terms of partnering with us; we want to make it easy to connect to all the other dots. We've got a long ways to go, but part of what we're going to do this morning is try and connect as many of the dots as possible.
So let's dive in. Two conversations we're going to spend our time on; the rest of this is going to be demos. We're going to start on devices and services. Lots of developers and partners we go out and talk to, if you think only about devices and services, or you might say cloud and devices, or you might say mobile apps, or you might say modern apps, pick your terminology, we want to start there. And then we want to come back to, look, there's a lot of partners I go to who work in corporations; they work in line-of-business applications; they've got a lot of .NET code; they want to understand how that moves forward; I don't think we've done as good a job as we can in getting you the information you need on that. So today, we want to make sure we cover that off, and then after this session today, there will be a set of white papers and guides that we're going to publish up on the Web to make sure that we're going ahead and doing a good job addressing your questions there.
So let's start with Web. When I go out and I talk to folks one of the questions we often get, or conversations is, Web or app, right, and “hey, Microsoft, I've got a website; it works great on Windows devices; why should I build an application; how should I think about that,” and so that's the starting point. I'm going to ask my partner in crime, John Shewchuk.
Hello, John, how are you?
He's going to come out and join me. Now, John, three things you should know about John. First off, his nickname is Shew. So you've got Guggs and Shew. It sounds like a really bad cop movie, but it's not. Second thing for Mr. John here is, between us you've got about 40 years of Microsoft time. So you can sort of do the math there. And third, John was one of the top 20 developers at Microsoft. So any and all coding onstage is John. I'll just be demo on the front end.
JOHN SHEWCHUK: Sounds good.
STEVE GUGGENHEIMER: All right. So John, let's start with Web and apps, how do I think about that? Well, Web or apps actually in my case.
JOHN SHEWCHUK: Yes. One of the things that we often hear is should I build websites or should I build an app? And we think that that question in a way is a little bit funny because many people want the Web for the broad distribution. They want the ability to get the information out there to connect with their customers, but they're also seeing demand to build apps on their platform.
So one of the things that we wanted to do here was kind of show how we've been building some technologies to make building both a Website and an app a little bit easier. So why don't we start with a website, and we've got a pretty interesting one.
STEVE GUGGENHEIMER: Yes. I want to thank our friends at Khan Academy. We've got Khan. A very big, rich website, lots of information used all over the world. Here you see a heart, this is a lesson somebody is working on. I did want to touch on one thing from Antoine's session yesterday. He talked about the support for Web GL. So I want to click on this 3-D version of the heart. One of the things we have here now is we've got Web GL not running in one of our sites, but running in a third-party site with Khan here.
The other thing is you worked a little bit on that with the mouse and keyboard. I want to show how taking advantage of the new hardware I can use touch here. In fact, if I scroll down, or I pitch down, now I can zoom around. By adding my keyboard and mouse, I can scroll around here. This is sort of like a first-person shooter for education. I can go blow up the heart there and make a real big mess. That will be a good addition to the Khan website. Oh, no, they probably wouldn't like that.
So beautiful piece of work here. And one of the things we get a lot of feedback on, honestly, working with IE and debugging and how can we help sort of make that a little bit better.
JOHN SHEWCHUK: Yes, the developer, you know you have to make your website work in a variety of different browsers. And so when you go to test and when you want to make sure your app is working correctly, it's important to have great tools. So for the first time, we wanted to show you guys some pretty exciting new work we've done. These are the new F12 tools.
And the first thing you'll probably notice is something you didn't notice, which is we did not refresh the page. Now that's really important. As a developer when you're out there, you've been working away, you hit some kind of bug, not refreshing is a big deal. (Applause.) I thought that would get a little bit of applause.
So one cool thing we've got in here is we've got the ability to go select information, and this whole idea of keeping things up to date, check this out, we can go here. I can go drag and drop actual elements, and we dynamically refresh the information up on the screen. We can move stuff around. We can get our layout up and working, make sure everything is right, all from within the debugger. And as we get the app up and running, then it comes time to do one of the more important things, which is make sure it's performant. And really understanding what's happening in these sophisticated Web applications can be a little tricky.
So we've got some great new work we've done around performance tools. Let me show you this. I'm going to click start profiling, and watch what I'm doing here. I'm just going to run around here just for a second, and let's stop. And what we'll do is we'll analyze the information, come back, and these are kind of the sister tools from the ones that we showed yesterday in Visual Studio. Let me zoom these things out so we can see this in a little more detail.
The first thing you'll notice across the top, we're tracking things like loading, scripts, GC, and we can see a lot of interesting things going on there. We can also see the visual throughput, the frames per second. And notice we see a drop in our performance here. And let's zoom in on that, and as you can see we are at 30 frames per second, and then all of a sudden 60 per second, then we drop down to 30. It's pretty interesting to kind of zoom in on what's going on there. And as we can see as we zoom in, we get a very good view of the fact that as a consequence of the repaint algorithms, we started doing garbage collection.
So that's a great way for you as developers to take a look at what's going on inside of IE, understand what's happening, get the Web apps working.
STEVE GUGGENHEIMER: OK. So that's good, we've got the Web app working. Now how do we take this and then turn it into an application for the store?
JOHN SHEWCHUK: Yes. I talked about performance. Performance ends up being one of the tricky things when you decide to go take your Web content and turn it into an app. A lot of people have been pretty skeptical about this. We talk to developers, and they tell us about some of the problems. We've been listening, and we've done a combination of things. We've improved the performance, the underlying mechanisms, but we've also done this great new thing called the Web View Control.
Let me show you what we've done there. So what I have up here is an early version of the Khan app, and what we're going to do is we're going to take the new Web View Control and use it to host some of the content that Khan has done. So I'm going to take the Web View, I'm going to drop it down in here. We've got a lot of demos to do, so I'll do some of this stuff pretty quickly. And here is a lot of content from their site.
I've got one more thing to do, which is I need to make sure that we start up that Web View Control. So let me bring this little snippet of code over here, and let’s run that app. So here's an example of taking a very sophisticated third-party site, we showed them this, and they were pretty skeptical that this would work. It's pretty incredible to see how well that new Web View Control helps. This is not an I-frame. What we're really doing is we're taking the window objects, the nav stack, we're making that all available. And as you can see that content runs in there, and notice it's also running really well with things like touch and everything.
STEVE GUGGENHEIMER: Super smooth. I've got touch automatically. That's pretty impressive. So starting with a website, obviously a big, pretty famous website. And I would like to say here today that Khan has a complete refresh of their application. It's going up in the store today. So nice piece of work there. You can see a lot of new capabilities. And part of the way they did that was, one, we've got the great Web experience going, and I like the new debugger. And, two, turning it into an application is something that's pretty straightforward, and it's a lot easier than it used to be.
JOHN SHEWCHUK: Yes. But I actually have a little bit more.
STEVE GUGGENHEIMER: You do?
JOHN SHEWCHUK: I'll show you something here.
STEVE GUGGENHEIMER: Well, finish then.
JOHN SHEWCHUK: So I wanted to show you here is Visual Studio, and there's my mouse. And notice this line of code, this is kind of interesting.
STEVE GUGGENHEIMER: Interesting, Xbox.
JOHN SHEWCHUK: Actually, rather than going into this, what I've done is I've remotely deployed this to another machine that's running backstage. And why don't we bring up that machine. What I'm going to do is, I'm going to go over here to the exercise, where I've set a breakpoint, because I've been wanting to run and debug the quiz aspects. So we've got somebody running on the remote machine backstage. How are we doing there?
STEVE GUGGENHEIMER: I can see it. It's up and running.
JOHN SHEWCHUK: OK. It looks like we've hit the breakpoint.
So let me do, actually, again, remotely debugging this machine, I stepped through. I've got my hint. But let's change the hint. Steve, back to school.
STEVE GUGGENHEIMER: Oh, great. Thanks.
Make sure you get this right, and we'll enter that and let's keep going. Popped up and away it went. So that's pretty interesting. (Applause.)
Now, I should probably highlight a little bit of what you've been remotely debugging, and what this means. Why don't we pull up one quick slide here? So what John was doing there was, he was taking this, and you can think about Xbox Marc Whitten talked at E3 about the fact that Xbox One has two engines. It's got a gaming engine, and it essentially has a Windows 8 engine. And you can go back and forth between those two engines.
Now, there's nothing to announce today, but when I talk about that common core, you're seeing that common core in action, which is that notion of being able to target other devices over time that run the Windows 8 engine.
One of the questions I get from developers quite often is, how do I think about targeting the Xbox platform, it's a curated platform; I can't just go and host it up there. Well, if you want to know how to sort of get a head start in thinking about developing for Xbox One, the logical thing to do is go build Windows 8 applications, because as you can see we can sort of think about having the same engine. It would be a very logical extension of how we move that forward.
JOHN SHEWCHUK: Yes. That common core in this case we're using it with Web technologies, but we've got the common core technologies around C, C++ and VX, we'll show some demos on that. It's also running in Sync with .NET, and we can talk about that a little bit later as well.
STEVE GUGGENHEIMER: Perfect. We're talking Web, let me go over, and they showed this Acer Iconia yesterday. When you think Web, Adobe, that's the first thing that comes to mind. They do a lot of great tools. They're a great partner for us. They're a great partner for you. One of the things they built for publishers of magazines is something called the Digital Publishing service. I'm going to go ahead and click on real simple.
One of the things that we've been hearing from sort of Hearst, and Time, and the other folks that build machines is we need the DPS solution to go and build magazines. So here we see a magazine that's been built using DPS, taking advantage on this particular device, I can touch it in terms of scrolling, it's super smooth, it looks great. Obviously, I can go look at different items. So Shantanu and Brian, and the folks over at Adobe, they're great partners; they're bringing the DPS solution out for Windows the platform. So as a tool to help developers get access to and build for the Windows platform, in particular the publishers, we now have DPS. So that's sort of new out there today, happy to announce that.
Now most of you in this audience probably won't work with DPS; it's not a toolset that might be familiar. So again, the Adobe folks, Steve and those other guys gave away some things, I want to make sure we give away something. So let me go ahead and see the slide that I want to see. There we go.
On terms of Adobe, again, Brian and Shantanu, they've given all of you Creative Cloud for a full year free. And so that is a big deal. (Applause.) You guys should send them all a nice email, really kind, but look when you think Web, especially for this crowd, this audience, the Adobe Creative Cloud gives you all the tools in their offering. It's a great suite. You guys will make the most of it. So that's a good one.
So let's keep going on the website. Yesterday Gurdeep showed something that I'm not sure, I saw some of the tweets on it, some press, I'm not sure everybody picked it up. The notion of using Bing as a platform is something we've been doing. Like Antoine showed off the new search in Windows 8.1, you've seen it before in Office when you want to embed a map in Excel. But, taking Bing and turning that into a platform, not just for our apps, but for all of their apps, that seems pretty interesting.
JOHN SHEWCHUK: It's really a compelling thing. Let me show you what we've got going here. This is, as you remember Gurdeep was wandering around Spain, and I've brought up a little app that could be connected to his trip. And what it shows is a post that he did. And he says, “hey, I'm having a great time in Valencia, Spain. Now wouldn't it be cool if we could connect this up to all of that Bing knowledge, so that as I was interacting with this app I could take advantage of that information up in the cloud.”
STEVE GUGGENHEIMER: Bing has been searching out there for a long time. They've found a lot of stuff.
JOHN SHEWCHUK: Yes. So you'd think this is a big project. Fortunately, I've got the extensive main page up here for that. And as you can see, it's going to be pretty complicated. I'm going to have to add this script tag to my HTML. So let me copy that. And then I'm going to set the Bing class on some text, any regions that I happen to have in text. So I'll bring that up and, as you can see this, is just a really simple app that happens to use that backbone and underscore, kind of very standard stuff. Let me go add to that Bing knowledge and then, let's see, we happen to have a little div region down here. So I'm just going to say, class equals Bing. I think we're done.
STEVE GUGGENHEIMER: That seems pretty quick.
JOHN SHEWCHUK: Yes, and remember you could do this for any text regions. Let's just see it in operation, and I'll kind of tell you what it does. So ready?
STEVE GUGGENHEIMER: Yes.
JOHN SHEWCHUK: I've saved it. Let's go refresh that. Hey, things look a little different.
STEVE GUGGENHEIMER: OK.
JOHN SHEWCHUK: So what's happened is that script came down, because this script came down; it said, “hey, let's look through the DOM and let's identify those regions that have been tagged with Bing. Let's send that text up to the cloud. Let's do deep analytics on it. Let's understand what the entities are.” We'll put some spans around them. And then by default we give you some little popups here. And these are Bing entity cards.
STEVE GUGGENHEIMER: Beautiful, that's nice work, John. (Applause.)
JOHN SHEWCHUK: So you guys could do this in all your apps. I think this is pretty cool. You can navigate around. You can look at related facts, pretty powerful.
STEVE GUGGENHEIMER: Pretty powerful.
JOHN SHEWCHUK: And they've given other stuff, text to speech, and some other platform applications, or platform assets.
STEVE GUGGENHEIMER: Yes, you take the ability to do this kind of stuff with voice, or pictures, you connect it up to entities, all things that you can put into your app.
JOHN SHEWCHUK: Now, you just did this in a website. I think the other thing I'd like to see it in is an app.
STEVE GUGGENHEIMER: Yes.
JOHN SHEWCHUK: So clearly Microsoft is making a huge bet on Web technology. So all the stuff that we were doing with the devices, you saw what Scott and company were all doing with their development up on the server. Well, you know, we do a couple of apps here at Microsoft. Word is a big one.
STEVE GUGGENHEIMER: I've heard of that one.
JOHN SHEWCHUK: This is actually that exact same app running now as an Office add-in. And check it out; if I go double click on Valencia, Spain, I get that same content showing up inside of a Word app. It's very easy to do. It's the Web being used to extend Office applications.
STEVE GUGGENHEIMER: Really nice, John, a nice piece of work, like it. You guys are going to have a lot of fun with that. We've got more work to do, good stuff. (Applause.)
JOHN SHEWCHUK: All right.
STEVE GUGGENHEIMER: All right. Well done. Let's switch gears now. One of the things I always like to show and talk about is what our partners are doing. Now I often get the question, “hey, Steve, when are people going to build on the Windows device first; when are they going to see it there?” And so I've got in this particular case our tablet, and I'm going to bring up an app that you have never seen before on a tablet. This one is Foursquare. Now you guys should be very familiar with Foursquare. They make a beautiful phone-based app. They've done some great work in terms of augmented reality and other things that you can take advantage of. Obviously check-in is only a small piece.
So look, they've got an incredibly rich crowd-sourced set of data, in terms of check-ins, reviews, pictures, et cetera. So working with us in terms of design and taking advantage of Windows, they've built this beautiful application. It's touch-enabled. It scrolls smoothly. I can drill into any one of the areas. If I want to go to The Tempest (ph) here, that looks rather interesting. You can see all the information that's there, where it is, what people are saying about it, who is checked in there. If I go back, we can come to the Moscone Center. You see we've got some fresh pictures coming in from Build. Again, beautiful applications, as I scroll through. Developers, developers, developers, somebody put that right up front, I like that. We can scroll off to the right here; again, you see all the information, figure out what's close by. I just love how beautiful it is.
Now one of the questions I've gotten also is where is the party tonight? Well, Foursquare is helping me out here. Pier 48 is where the party is at. I can click on this. I can see that Anders rocks wicked on the drums. That's good to hear that he's coming along to do that. Again, more information, someone needs to get up on karaoke. And of course, based on what we learned yesterday, I can take this if I want to add it to my list, I can say things to do at Build, go to the party.
So look, Dennis Crowley and his team, they did a phenomenal job. I'm really excited to show this for the first time today. I want to thank them for giving me that opportunity. It's a beautiful application that's coming to Windows 8 first. Part of the reason for that is when they build for the tablet they get all those other devices, everything from this device to the 7-inch, and that's a really nice piece. They're good partners. We like working with them. They like the design work. So again, thanks and that's something pretty nice to show off. (Applause.)
There's a bunch of other partners I want to recognize and thank. You know, Eric and the Rockmelt folks, they're bringing their application to the Windows platform. Joseph and Open Table down here, they've done a great job. They've got a phenomenal app. They're bringing it to Windows 8. We've got a set of great entertainment apps, Crackle, Vevo, Songza, FL Studio, Grooves, all coming to the Windows platform.
In terms of things right now, on the phone, ABC News is available on the phone right now today. They're hitting the button to go release it. Walgreens, Avidar (ph) and his team, you might think that one is a little strange. There's a lot of people who go looking for Walgreens for stuff. And they were definitely, “should I do a website or an application?” And we got to the endpoint, because it made a lot of sense. They're doing their phone app today. It's going up.
The other thing, which you might not think about, Walgreens has an API for you. They have a service called Quick Print, where if you have an application, and you want to basically print a photograph right at your local Walgreens and go pick it up, you can go and do that. And now they're making that API available for you as Windows developers, so you can add that to your application. If you do anything you want printed, off you go. So Walgreens is kind of interesting: Web, mobile, and API. I like that one.
Twitter, Michael Fisher and the team, that Bing integration. They just updated their application last night to add in the Bing translator service. So now you'll see a little spinning globe icon if you want to translate the text. Discovery Channel, JB and his team, three apps, Discovery, Animal Planet, and TLC, also with Bing integration. So starting to use that Bing as a platform. And then Autodesk is bringing Instructables to Windows.
So that's a whole bunch of new ones, but wait, Boxter, I get that request all the time on the Windows Phone. It's done. It's there. So you've got Boxter coming to the Windows Phone today. We've got a couple more, Xfinity, turning your phone into a remote control. That one is coming today as well. MLB baseball, we've got a new logo from them for advanced media. That's coming soon. Dow Jones marketplace today, Epicurious getting an update for Bing translator on the phone, Mint, they're going to do both phone and the Windows. A great partner here, if you think about Intuit, they have an existing set of applications, desktop apps, the big business forum, they complement those with a set of services and capability and sort of mobile apps. We've got those coming, and that's a really nice story about how you mix and match the two. Rhapsody coming today to Windows 8; you'll be able to download it. Autonav and Viber, also both coming to Windows 8.
So one of the questions we get is, hey, apps coming, we've got a lot of apps both here today and apps coming, we've got a great set of partners who we really appreciate, and I just wanted to highlight both what's here and what's coming.
Now, since we're building apps and we're talking apps, I talked to the phone guys, I think you saw this yesterday, 60-day promotion, $19 to go build your apps. So it's sort of the summer of phone. I don't know how else to think about that, or some funny catchphrase we'll come up with. But, I wanted to highlight that one as well, since we're on the notion of apps.
Let's switch gears. We talked about devices and services. We did a lot of Web and mobile. One of the things I want to make sure we do a good job on is highlighting taking advantage of the devices, because one of the things that Windows does very well is bring a very rich set of capabilities from a broad set of devices and make those available for you.
The first place you'd think about this is gaming. Now this is a very cool tablet, it's called the Razor Edge. Min Liang and his guys from Razor have built some phenomenal gaming rigs. If you haven't played with one, you should. This one is a tablet, but you'll notice he's built basically a game pad around the outside, and he'll tell you, the only thing you need to do as a developer to take advantage of that is to write for the game pad and you get that for free. So here's a very cool -- you're going to want one of these regardless of the demo itself. You've got to play with this thing. It's very cool.
All right. John has got the “Drift” game going. So when you're thinking about taking advantage of Windows, all of the peripherals that plug in, all of the capabilities, I've demoed this game with touch, I've demoed it with keyboard, I've demoed it with mouse, now you're demoing it with this add-on controller. It's a great piece of technology and something that
JOHN SHEWCHUK: I'm not doing well here.
STEVE GUGGENHEIMER: All right. Let's stop then, easily available for you. Let's talk a little bit more about hardware, though. There's just so much out there.
JOHN SHEWCHUK: The great thing about the Windows hardware is that we've got device drivers. We've got sensors. It really provides a platform for developers to dream of things that you could never do before and really create scenarios that are kind of unprecedented.
What we've done here is we've put together an example of a kind of an app that a developer might put together using some new advances in Wi-Fi Direct, NFC, and other things. So Steve is going to walk us through that.
STEVE GUGGENHEIMER: So imagine we want to get two kids to interact together. We've got some new hardware. For those of you who don't know, I ran OEM for five years, so I love the hardware. This is like half the fun for me. So let me take this application, New World. The kid on my left is designing the background. And the kid on my right is going to be building the character. So here's my character. I didn't bring the pen along, so I'm going to draw on a face. We'll make this a “Star Trek” character given the timing. We'll give them a phaser. You see how good an artist I am, is that awesome? I have a second career coming for sure.
Now, what I'm going to do is I'm going to animate my little character here. So the character is going to walk across the screen. That's kind of fun. Now, I can take advantage of NFC to build a connection across these two machines, and then I can take advantage of Wi-Fi Direct to make it a secure connection. So I'm going to take this, and I'm going to set it here. And we hear a little beep.
Now I'm going to set my little character up here. You see the door into another dimension open. We'll go a little “Twilight Zone.” And he's going to walk right off, or he's going to walk right off the screen onto the other one. That's just cool. (Applause.) Thank you. I love that stuff.
I forgot, he's actually going to take off. Now we have a problem for the rest of the demo, because we've got to find the spaceship. I'm going to have my friend here who is the cameraman slide that. I'm going to pick up this other device.
Now all the devices today come with so many sensors, gyroscopes, cameras, accelerometers, et cetera. So I'm going to load this app called Argonaut. And what I'm going to do is I'm going to go search around for our spaceship. There it is, a little augmented reality.
Now this looks like it could be fake, John. We wouldn't want that. So show me a code.
JOHN SHEWCHUK: If you take a look over here, we've actually got the C code that we've written to do the scene analysis and to do this augmented reality. We happen to be using an open source library called Open CV in order to go implement this, and this is a pretty common pattern, which is when we're doing the most leading-edge stuff, often the work is coming out of academia, there's a lot of things that we need to pull together. So what we've done here is, we've been looking at the scene, that's what's happening up in this first line. But then we're doing something pretty interesting. We're actually analyzing the scene to find points with high contrast, and then we're using that in a common filter to improve things even more.
In fact, why don't you bring up the control points, so we can see that in action? And you can start to see those appearing in the scene, and we're using that to provide this very smooth augmented reality experience. So this is a great example where people are doing innovative kind of things.
But let's really turn on the afterburners here. What we've got right next door here is a version of that same algorithm that's in Open CV, but we've done something pretty interesting, which is we've taken advantage of the new capabilities in the C++ compiler to provide parallel code that runs on the GPU. And as you can see, that's the AMP capabilities. This is just one simple example that's a pretty complex algorithm. I'm not going to code this up by hand now. But we're using the GPUs to go initialize values based on a scaler. It's actually pretty easy for me to go over here, and what I'm going to do is I'm just going to switch from the one that comes with Open CV, and make available this new version that we're going to make available as open source to everybody, and let's go give that a try.
So we recompiled that, and now what Steve is going to do is he's going to show us and we'll see, actually you can see it now, the performance has gone way up on the application, and we're using the GPU to provide accelerated augmented reality with custom code that you developers might have written.
STEVE GUGGENHEIMER: Good stuff, John, taking advantage of GPUs, parallel coding today. You've got to do it. The hardware is there, and clearly the code is there as well.
JOHN SHEWCHUK: Yes.
STEVE GUGGENHEIMER: A great example of using C, VX, and so on.
JOHN SHEWCHUK: Now, not everybody is going to want to use DVX. I mean, the nice thing is it's great that you can do that and take advantage of the hardware. Sometimes it's nice to have frameworks or sort of tools that help us get the same capabilities, but save a little time. So why don't we hop over here, and I think this will be a good demo to show off the next phase of this. Take a little look at Unity.
So Unity is one of the top agents that people use to create applications across many different devices. We've been working with the Unity team, and as you can see we've got the Unity environment up here, and it's a great way to go create content. We'll see this in just a second.
We've also been working with the Unity team to really connect together devices and services in a pretty interesting way. I notice the Azure Level Saver that I have here. Earlier today, we talked about Azure Mobile Services, and how that makes it fantastic to target iOS and Android, and Web apps, and whatever it happens to be. We've connected up Azure Mobile Services to Unity, we have a plug-in, and that plug-in allows us to do all kinds of things. You could use it to trade information about player position, achievements, leaderboards, whatever it happens to be. In this case, we're doing something pretty simple, which is we're using Azure Mobile Services; again, that nice one line of code, just set it up; we're doing an Azure update to save the level data, and then we're doing a lookup.
STEVE GUGGENHEIMER: OK.
JOHN SHEWCHUK: So let's just actually give this a shot. I'm going to run it here in the development environment, and then we'll have Steve run it over there on the phone, and we'll see the same environment. Notice really beautiful environment. The weed bushes moving around.
STEVE GUGGENHEIMER: Let me bring it up here, give it a second. OK, same environment. So I'm going to make some modifications, assume we're playing a game, and maybe I scored, or killed him, which would be more likely because of my heart demonstration earlier. So I've just shot you to death, and it's now posted up. Let me save it.
JOHN SHEWCHUK: Yes. Save that up to the cloud.
STEVE GUGGENHEIMER: OK. So now it's up to the cloud. So Azure Mobile Services pushed that up in exactly the same way we saw this morning. I'll go load that layout, and here we go.
JOHN SHEWCHUK: So that's just a super-simple example of how we can take advantage of the compelling power of the devices, connect them up to the cloud, and build these new kind of experiences. And these are all tools that are going to be available for you.
STEVE GUGGENHEIMER: One of the things, when we have partners helping us out, Unity, this is a real important one. Today, I want to announce we're collaborating with Unity to bring all the capabilities of their platform, which is super popular with 1.9 million game developers, and we're bringing free platform support for Windows, Windows Phone, Xbox 360, Xbox One, and support to the MS Studio development partners. So all the folks using Unity today, you're now going to have that capability coming for building on Unity for the Microsoft Stores.
Second thing, we're going to continue to work with them to innovate going forward, things like Smart Glass, things like Kinect. That Azure plug-in that John showed, we're going to make that available. And, of course, got to have a contest. Unity is about games. It's a ton of fun. So we're going to have a $100,000 contest; we'll have $100,000 worth of prizes for folks building games using the Unity toolset for the Windows platform.
So my thanks to Unity. Great set of tools, great partner, and something that we think you'll really enjoy working with as we go forward. (Applause.) Good, I'm glad you liked that one.
Now I talked a little bit earlier about some partners building apps. I want to talk about a few more, since we're talking gaming. Lego, we've got the Hero Factory coming, and you saw the other Lego demo yesterday. So Lego is doing some great stuff. The one on the lower right, I had to bring it up here. It's called Battle Bears. It's a 3-D first-person shooter as a bear. I just want to play it. I haven't played it yet, don't know much about it, but it just sounds like a thing you want to do.
And then last, but not least, Tim O'Brien and the folks at Disney, they've been a great partner for us. We just brought out “Where's My Mickey?”, and I'm happy to announce today that they're also bringing out another set of games, “Temple Run Oz” is coming to the platform, “Wreck-it Ralph,” “Monsters University,” “Avengers Initiative,” and “Toy Story Smash It.” These guys do great work. They really get the gaming space. They do great stuff on the Windows platform. So we're happy to have them coming along as well.
So John, that's some cool stuff. I think we're almost through gaming?
JOHN SHEWCHUK: We've got one more thing I want to show, which is eight months ago at Build, Satya talked about how we're taking devices and services, and we're using those technologies to power things like our own first-party experiences, such as “Halo.” Satya talked about how much work we're doing up there. We actually have a video to show how much progress we've made connecting this all up.
STEVE GUGGENHEIMER: All right, let's roll video.
I love that one. You know, when Satya talked about mission-critical, and they're showing all that enterprise stuff this morning, that's enterprise-ready right there. That's your mission-critical application, which is “Halo.” If you've got a 15- or 16-year-old, and “Halo” goes down, especially multiplayer, you're toast. So I'm glad they're running there.
One thing I wanted to hit on since we're talking massive storage, and massive everything. I don't know if you guys noticed in your bag last night, but everybody in the room is getting 100 gigabytes of free SkyDrive storage for coming. So I want to add that into the goody bag. And I think Steve was supposed to do that yesterday, but we've got it covered for you. So that's one more thing to help you out as you're working with us and partnering.
Now, let's switch gears a little bit. We covered a lot of Web; we covered devices. One of the questions I often get when I go out is talk to us a little bit about the code we have, .NET. Talk to us about client-server. We've got a bunch of existing applications; we're a commercial account or we're a line-of-business developer. Of course, we want to do devices, and of course we want to support services, but how do we build the bridge? That's one part.
And the second thing is, in general, where are you going, Microsoft? And one of the things I don't think we've done as good a job as we can is sort of give people the guidance on how to think about .NET and what we're doing going forward, how they should plug into that, et cetera. So coming out of the session today, you'll see a set of new white papers and guidance documents coming out specifically on .NET.
And, John, why don't you help me out there, because I think that's one of the challenges is .NET has become a lot of stuff.
JOHN SHEWCHUK: .NET has really grown to encompass the entirety of the Microsoft platform. We've got .NET on the clients; we've got .NET on the servers. And one of the consequences of that is that it can get confusing what .NET means. So if you think about the runtimes, the libraries, the languages, we've got the languages and the runtimes across all of the devices, all of the services.
Libraries are a special case. Libraries rely on the capabilities inside that environment. So if you're programming up on the server, it will take advantage of things like IIS. If you're programming on the client, and you're doing something like WPF, it relies on capabilities on the desktop. And so those libraries don't always transcend everything. But the core .NET capabilities are everywhere. Those white papers will cover that.
But to really help illustrate this, we've got an app, a real-world app. Why don't you tell us a little bit about that?
STEVE GUGGENHEIMER: All right. Let me pull up an app. This is more of a commercial grade app. This is from a company called Acciona. Let me go to the desktop, that's where I belong for this application. Let me pull up Acciona. Acciona basically runs a set of alternative or natural energy sources. So think wind farms; think solar farms, and what they do is they run them all over the globe. And they have to be very specific in terms of how they operate. You've got to maximize. If you're going to sort of sell energy back to energy companies, and you're going to manage this, it's a big complicated process.
So in their room, they've got big screens. We're talking NASA level. I'm pretty happy, I got to use the PPI board today ahead of anybody else. So here's their application. This is a WPF app scaled up. It looks great here. There's no issues. Here I see there's some type of alert in Amarillo, and what I'm looking at now is I'm looking at a solar field. And you see the cloud cover going over the solar field here in Amarillo.
JOHN SHEWCHUK: Thanks, weatherman.
STEVE GUGGENHEIMER: And over here today we have some cloud cover over these solar panels.
I'm going to drill in. I notice I've got a hotspot here, so I'm going to click in and get a little richer. You see this is a very rich, interactive app, takes advantage of touch, it's all .NET, it looks beautiful. I can go to individual panels. I can get a ton of information here, John.
Now, the first thing is, one of the pieces of work we're doing with Windows 8 and 8.1 now is adding support for .NET. It doesn't necessarily mean anything relative to the capabilities for the new applications or the store apps, but it's important. So you'll see in an update relative to Windows 8.1 specifically to help out on the .NET side as part of that .NET 4.5.1 release.
But the second thing, John, I've got this, I still want to take advantage of devices and services, and connecting to the other side of what's going on out there. How do I do that?
JOHN SHEWCHUK: So actually, this is actually the real app that Acciona uses to control energy around the world. Of course, they also have mobile workers. And those mobile workers need to be able to take the same set of rich capabilities, and they need to be able to go diagnose the solar panel, or whatever it happens to be.
Here is actually the version of that app that they've deployed out to the Windows devices. And they're taking advantage of the ability to do distribution, the ability to keep it up to date, take advantage of new hardware like RT. And, as you can see, it's a very rich app. They can drill in. They can see things that are going on all across the environment. They can go and look at the solar panels. They can see one that's broken. Just like we were seeing before.
What I want to do is I want to step behind the scenes a little bit and take a look at an early version of the code that Acciona had written. And this is an app being built by hundreds of developers; it's a very complex app. And I don't know about any of you, but when you're putting together an app with these things, and you're using technologies like XAML, it can get a little tricky.
Let me show you a quick example of what I mean. Here's a text block that you can see up here, and this is actually supposed to be data-bound to something. And I actually don't know the details of the data model here. So that's where things can get a little hairy. So I'm going to type in here, I'm going to say the text is supposed to be equal to. And I would like to use data binding. So for the first time, let me just shows you something pretty cool we've got going on here. Notice I've got Intellisense completion on data binding. (Applause.) Now, again, a big project getting this stuff right. Boy, I have spent a lot of time personally trying to get these things and debug them.
Now if I go down here, notice I just pick installation name out of this thing, that's great. All set to go. Notice it automatically did the binding up there. I know things are working.
The other thing is, we've done a bunch of work in the editors for XAML so that things work right. Let me show you just one quick example; here's a pretty easy mistake to go make. Imagine that you're working in the code, and you decide that you want to go terminate one of these tags. Notice I just closed the tag. The Intellisense took care of removing the extra floating tag. In case you didn't see that, I'll do it one more time up here. Look at that. A nice way to keep a XAML clean. (Applause.) So again, for .NET developers, we're doing quite a bit of work across the tools, across the runtimes, with scaling, and many other things to make sure .NET apps continue to work.
Now, .NET isn't just used on the client. Acciona uses a lot of .NET up in the cloud. They do things like integrate data from Oracle and SQL databases. And one of the things that they do is they spin up Hadoop clusters up on Azure. In fact, we have a little demo of that running over here.
Let me pull up Excel. One of the things that's happening is all of these wind turbines and solar panels, they have sensors. And they're feeding back information. It could be wind speed; it could be temperature, et cetera.
So here this is wind-speed data. This is up in the Azure cloud, again, coming from both Oracle and SQL. And I'm going to take advantage of feeding that all into Excel using HD Insight Server on Azure. And once I get into Excel, I can use this new tool called GeoFlow. So I'm going to launch GeoFlow. And this is going to give me an energy output map, which is a combination of time and energy, and I'm going to flow that by geography.
So here I see this beautiful map, it's popping in and out. You can imagine I can get this information; I can look at it for a month. Can look at it for a year. It's going to give me a lot of capability relative to how I want to turn turbines off, let them run, or when I can sell energy back. So it's just taking the rich data all the way from a set of devices out in the field, so when you think about the Internet of things and all of the devices, feeding those all back up into the cloud, building rich client applications that we saw earlier using .NET, building new applications taking advantage of both .NET and then running them on, in this case, the tablet, and then feeding all that data back in. So completes the circle and very rich scenario. I think and I hope that you get all the information you want, not just from the demo, but from the information we're posting on .NET.
STEVE GUGGENHEIMER: Yes. Again, we've seen a lot of great programming environments. We've seen the Web. We've seen C++. We've seen .NET. We love them all. We support them. Now, .NET is not just used for these kind of line-of-business applications; it's used pretty widely. Why don't we talk about
JOHN SHEWCHUK: Yes. So let me just bring up one more partner demo. One of the partners that was really strong at launch was SAP. They actually built an application; they built several applications. And what they do is if you think about business applications, they have a lot of rich data. And so the first thing you do with that is you build these really visual interfaces. You'll notice here I can scroll left and right on SAP. I can look at this one. It has an alert.
Now what SAP has done for this show is based on feedback they've got. And they've got 2,000 partners and 200,000 customers, is they've actually taken that same application and ported it over to the mobile phone. So here's a Windows Phone 8. I talked a little bit about common core and symmetry. This is part of making it easy. So I can click in here to the demo, and you see the customers come up. I can scroll up and down. I can go look at critical favorites. You'll see that there's that same alert. So part of what we can do in the .NET family and with our applications is make it easier to go across devices. We have partners that are already taking advantage of that as they get feedback. And again, try and take advantage of what we're offering, bring more capabilities to more devices over time.
Now there's one other area where .NET shows up a lot, in particular on the business side, and that would be in embedded devices. So again, .NET and Windows provide a lot of capabilities for the embedded developers; in particular with the embedded world, we've got a tremendous number of very sophisticated device drivers for things like barcode readers, many other things.
So, Steve, why don't you?
STEVE GUGGENHEIMER: So here's a piece of hardware. One of the things we're going to announce here at the show today is we're going to take Windows Embedded, in particular, now they have an industry version of the tablet. So take your standard Windows 8.1, but now for Embedded, you add a bunch of capabilities to take advantage of things like barcode scanners, card readers, let me click into the app. You can also it helps you lock down the application so that over time the users, in this case somebody working at the car lot, can only get access to the things they want. And so going forward, we're going to keep our Windows Embedded Industry tablet on the same release cycle as Windows 8.1.
If you want to build apps for this, there's a lot of rich scenarios out there, 1.3 billion processors ship into the embedded space every year. Digital signage, point-of-sale systems, industrial manufacturing, healthcare, there's a ton of opportunities. And you'll see here, I can take advantage by the way, it's a pretty cool tablet. It's got that scanner. The other thing to know about this, you can actually take this off, and you can pull this out, and you can put a different skin on it. So if I was trying to build a healthcare application and I needed to make it alcohol-resistant, and I needed a different skin, I could do that. So there are some really cool things you can do between hardware and software, and again .NET is the family for that, same thing, again, with that common core. Here, again, it's not perfect, but there's work you'd have to do. But, I can take that same Avis app and here build it into a handheld device.
So again, I've got handheld devices; I have industrial tablets. I have a very rich set of families we can use. We're taking advantage of, in this case, the embedded space, a rich opportunity. It's not all consumer apps, but you go out to kiosks and all the other places, this is good stuff. This is where money is made. And so I want to highlight that.
JOHN SHEWCHUK: We've got another video.
STEVE GUGGENHEIMER: That's right. So thank you. John, that's why there's two of us onstage, so we don't forget anything.
On the embedded side, digital signage, some of these areas are pretty fun. I want to show you what I think about is one of the best marriages of hardware and software and I'll call it a modern application. Imagine you've got a Coke machine with a big screen on it, a Kinect sensor inside of it, right. You've actually put a video, or an interactive scenario on it with the hottest Korean pop band. They're going to challenge people to dance in the mall. And if they dance at the same level as the people on the video, or on the actual Coke machine, they get a free Coke. Watch the crowd build around this Coke machine in the mall in Korea.
Let's run the video.
All right. I don't know if you call that a Web app, a mobile app, a modern app, an embedded app, a .NET app. I don't know what you call it, but it's just cool. And that's the kind of stuff we love to see from you and the rest of our partners. We know with the technology we've got that our partners do amazing things. And so I hope you get everything you need not just out of this session, but the entire show. And online and anywhere else you go for Microsoft to do a great job.
I want to thank our partners. We have a phenomenal set of partners that allowed us to show their applications today, that allowed us to talk about their applications, or things that we're building, and we appreciate that. So thank you to everybody on the screen and all the other partners that work with us.
Second, I want to thank the partners that help make it easier for you to build applications and run on the Windows platform. So PayPal, you heard about Oracle earlier this week, PayPal helps on the commerce side. There's a number of partners on this screen that have done both work on the commerce side, as well as in helping us with work we're doing here at the show with some of the Hackfest, et cetera.
JOHN SHEWCHUK: The other group of partners we really want to thank are the partners that we've been working through in the open source community. The Microsoft Open Technologies Team has been working with jQuery, all kinds of other folks, Campus JS, folks like Open PV have also been helping, and they've made it possible for us to produce all kinds of great applications using these technologies.
STEVE GUGGENHEIMER: Yes, so we thank you for your time; we thank you for your partnership. This is all about you. We appreciate it. We appreciate the partners that are helping make this better and easier for all of you to work on the platform. And with that, go enjoy the rest of the conference and the party tonight. We'll see you at Pier 48. We've got the DJ. We've got everything.
Thank you very much. (Applause.)
ANNOUNCER: All right, ladies and gentlemen, we have pushed the next sessions back to 12:00 noon. Again, we've pushed back the next sessions to 12:00 noon. Thank you very much and enjoy the conference.