STEVEN GUGGENHEIMER: Thanks, Scott.
Morning, everybody. (Applause.) A good hand for Scott. He did a good job this morning, him and his team.
My name’s Steve Guggenheimer. Most people call me Guggs. Our team is responsible for working with all of you, running this event, managing the 300,000 folks watching through Channel 9, and hopefully doing a great job of working as a great partner with all of you and all the developers around the world. So if you’ve got feedback on things you like, send them my way. If you’ve got feedback on things you don’t like, I’m sure I’ll get that, too.
Two things as we head into this section and they roll all these out. We’ve got more demos and machines in the short period of time we’re going to use now than all the other keynotes combined. So once we get into the demos, we’re going to go fast. And two, everything we do is through the partner lens. So everything we’ll show is based on work we’ve been doing with partners over the year and things they have allowed us to bring onstage to work with.
So with that, I want to kick off. Scott this morning talked a little bit about developer conversations. And when we were here last year, myself and John, we started the conversation really around two things. We wanted to make sure we were having a good conversation with folks we had never worked with before, and really sort of mobile-first, cloud-first developers who might not have ever used our technology, we wanted to make sure we were showing off and highlighting some of the things that we were working on that might not have been in the other keynotes, so Bing entities, for example, or Office or some of the other areas.
We also wanted to make sure we did a great job talking to developers that have worked with us for a long time, in particular .NET developers, to show how we were moving forward in that area as well, and make sure nobody thought we were leaving work behind or not doing a good job of working in that area as well.
This year, sort of wanted to get a little more finesse into the conversation. Oftentimes, people say, you know, want to have the one dialogue that everybody can have. It just doesn’t work that way, right? Most of the time when we start the conversation, first part, what type of applications are you working on, line-of-business application, games, social, data, et cetera, and then what toolchain, Web developer, .NET C#, XAML, Java, et cetera, or native developer, C++?
So you have to start with the dialogue of the type of app and the toolchain, because these things just don’t crisscross over easily, you’ve got to have the right starting point.
The second piece, then, is what things do people generally talk about. Once you talk about apps and toolchain, there’s really three areas we get consistent feedback on. The first one is help me support existing investments. With all of the work going on today and all the different devices, it’s noisy out there, let me reuse as much of the code, the skills, et cetera, whatever, that I can. I don’t want to have to start from scratch over and over. This is regardless of anything else.
Two, in a cloud- and mobile-first development environment, Microsoft, what can you do to help me? We’re moving fast. Unless you can connect into what I’m working on, honestly I don’t have time.
And then three, look, it’s a cross-platform, cross-device world, how do you play in that world? We want to reach as many sockets as possible, as many users, machines, back-end services, and how do you participate?
Those three conversations, regardless of app type or toolchain, are ones that we have over and over again. And so that’s the framework we’ll use for the rest of the demos this morning and the rest of the discussion.
Now, two things heading into that. One is across what we saw yesterday with Terry and then Scott this morning. We’ve taken a lot of feedback, and one of the areas we’ve been working on hard for a long time is making sure at least when you work with us we do as good a job as possible about making it easy to work across our technologies.
So the notion of a common core, and you saw some of this coming forward yesterday with what Kevin showed and the universal projects, being able to target embedded devices, phone, PC, tablets, and making that much easier to do, with Scott being on-prem and in the cloud and being able to go back and forth, we’ve worked on this notion of a common core which actually goes back to the NT kernel, which we started a long time ago with XP and NT, client-server. Now it extends across all of the different platforms we run. And so things like identity, security, management, development, on our platforms hopefully they’re as easy as possible and it crosses over.
Now, the corollary to that is oftentimes people think when you work with Microsoft it’s all or none. And one of the things you’ll see throughout the sessions we do this morning, that’s just not the case. There’s lots of folks that work with us on one axis or another and don’t use all of the tools we have and don’t use all the services or all the devices. And you know what, we love that. We want to work with you any way that we can to do a great job, and then over time we’ll figure out other areas that might add value.
So with that, I’m going to invite my colleague out on stage, Mr. John Shewchuk. Morning, John. How are you?
JOHN SHEWCHUK: Good morning, Steve.
STEVEN GUGGENHEIMER: So my nickname is Guggs, his is Shew. Last year, I said it was a really bad cop movie. This year would be part two of a bad cop movie. So with that comes lots of messiness, maybe some explosions, hopefully no blood. So we’ll see how this one goes today, but let’s see what we can get cranked through in under an hour, and go across those three particular areas.
So we’re going to start with supporting existing technology investments. This is a conversation in particular with folks we’ve partnered with for either a short time or a long time, we want to make sure we do a great job on.
So let’s start with .NET applications, right, desktop WPF applications. Yesterday, Terry did a good job on this but I want to make sure folks know we don’t just support it, we’re continuing to invest in this area. There’s work going on with the WinRT API set to make sure we’re doing a great job for .NET.
This is a set of applications for Morgan Stanley. They literally run hundreds of WPF apps, tens of thousands of users. These are mission-critical. You’re compositing data and media, you’re doing real time and you’re using multi-monitors. If you’re going to build an app like this, you’re still going to do it in WPF. It’s going to be a great experience, and that’s where we start.
And John, you know, when we work with these developers, what are some of the other questions we get as we start here?
JOHN SHEWCHUK: Well, one of the things that we know about the great kinds of apps people produce with things like WPF is that they do all kinds of integration to Office capabilities and so on.
But often the question we get the most is, how can I bring these apps forward, how can I take advantage of new capabilities that are coming in Windows, new capabilities coming in the cloud?
I actually have an interesting app over here. This is the kind of app you’d typically see in a professional office, lawyers, doctors. In this case we’ve got dentists. And it kind of shows many of the different parts that people bring in here: images, integration with the existing systems. This one happens to be based on local data, maybe local AD, maybe local SQL.
And what I wanted to do was just kind of talk about one of the transformations that’s underway for many of these WPF apps.
So if I close this, actually what I’m looking at here is Office 365, and you’ll notice that dentist has a calendar and they’ve got all kinds of different appointments occurring. And wouldn’t it be great if we could take advantage of these things and if we could make it very easy to move these kinds of advanced apps forward? I just want to show you how incredibly easy that is.
Well, to kind of start these things, at the core of much of the work that we do in the cloud, Active Directory, which Scott just talked about, is one of the big enablers here. And we’ve already configured Active Directory to support this particular app, and one of the things I just wanted to drop down here and show is that we’ve given it full access to the user’s calendar. And we’ve also giving it access to various things in Active Directory. And to hook this thing up we really just need this identifier. And let me go here into the code and I’m going to drop that identifier. This is how Active Directory will know that this is the app.
Now, here’s where some of the magic really comes in. What we’ve got is a file up here. I’m just going to go add it to the solution. This is an existing item out there. And this is the Office 365 calendar service. It’s a WPF-friendly version of the information necessary to go hook up, talk to all the REST interfaces. I’ve also used NuGet to configure it so that it does Active Directory login.
So I have one more quick change I’m going to go make, and I’m going to go into the view and instead of talking to the local calendar service, I’m just going to say Office 365 calendar service. We’ve cut that over, and now I’m going to go run this thing.
And here in kind of one quick easy step we’ve transformed this app, which was a kind of local app, it’s now logging in, in the cloud. So I’m going to go log in there. And there we go, we’ve now loaded and done full integration with the cloud, moving this WPF app into this world of devices and services.
STEVEN GUGGENHEIMER: You know, and that’s a good area, John. I think one of the areas we see in line-of-business applications in particular there’s been a lot of usage or connection to Office over time. And now as we move forward from the SharePoint Conference last week, we announced the new set of APIs for the cloud at API.Office.com. And here if you want access to documents, mail, calendar, people, social, et cetera, there’s a new rich set of APIs out there that you could take advantage of, get access to all of Office 365, and you’ll notice it’s for iOS, Android and Windows. So now we’re extending what we can do with Office and Office 365 and bringing it back into the world of the applications that are out there today.
Now, that’s sort of, I’d say, a really cool way to take, I’ll say, a more current WPF app and bring it forward.
Now, sometimes we get questions, we saw a little bit from Kevin yesterday — or not with Kevin, it was in David’s session where they took a really old app and made it run a little bit better on Windows.
You know, working with a partner, Mobilize.net, who’s been working on the ability to update apps for a long time, they have a new product, WebMAP2, and what they’re allowing us to do is show that here for the first time today. And this isn’t about sort of just connecting Office 365, this is taking really old .NET applications and moving them forward.
So John, why don’t we play a little bit with that?
JOHN SHEWCHUK: Yeah, so kind of let’s, Steven, roll back the clock maybe a little bit further. Anybody recognize this? This was —
STEVEN GUGGENHEIMER: That’s a great UI, John. You’re doing good work here.
JOHN SHEWCHUK: — pretty hot technology at one point in time. This is VB6 in action.
And Mobilize was one of our partners that helped us build a pretty cool tool, which enabled you to take that VB app and then transform the code, and here’s that same code now running as a WinForm app in C#. And so this transformation has been out there for a while.
What we’re really excited to announce today is the new shell that Mobilize has created, the Mobilize.net studio, and in here is this WebMAP2 transformation.
And what I’ve done is I’ve loaded up that transformed VB6 C# project, and here is the various files that are in there. And a cool new feature that they’ve added is this notion of related files.
So here’s that particular form we were looking at, and notice it’s done this pretty incredible thing. It’s actually analyzed the code, it’s identified the business logic, what’s happening on the UX, and it’s pulled those apart into an MVVM controller.
And so we can actually see, if we go highlight changes, as a developer, you know, as this thing’s touching your code, you really want to see what happened to it. But it’s now moved it so that the C# code can run on the server and we can actually project that UI now out as HTML5. And that’s a pretty unbelievable transformation. In fact, let’s see that in operation. Here is that same app now running up on Azure. Notice I can go look at the managed customers form.
So let’s think about that. We’ve now taken an app from VB6 — (applause) — through WinForms, now we’re projecting it out into the cloud, running logic up on the server, and then projecting it out on the client. And there’s some really cool things you get to do once you can project this thing out as HTML5.
STEVEN GUGGENHEIMER: Yeah, let me take the final step, let’s take it onto the phone here. So now we’re taking that old VB6 app and taking advantage of the CSS work and the rest of what’s been done. We can now run this not beautifully but well on this phone. So we’ve gone a long, long way from that application to this phone in basically a short amount of time, didn’t take much at all to do this.
JOHN SHEWCHUK: It’s pretty incredible to be able to use CSS and these transformations to create a touch-friendly version of that app with very, very little touch on the part of the developer.
STEVEN GUGGENHEIMER: And so that’s an area where I want to transition over and just say, first, thanks to Tom Button and the team for letting us show this for the first time today, and then there’s a whole set of Visual Studio integrated partners that are out there.
You know, Scott and his team talked about Visual Studio, they mentioned the work we’re doing with Xamarin when we think about going cross-platform, iSynics (ph) is a new partner there, Perfecto Mobile, in this case the work we’re doing with Tom and his team.
So Visual Studio is a great tool, but we also work really well with partners to make sure that toolset can expand and work in as many different areas as are important to you. And so that’s a place we want to continue to invest.
Now, I’d say one last sort of connection point in sort of reusing assets and then we’ll move forward, and that’s all about the embedded space. The embedded space, yesterday, Terry talked a little bit about the Internet of Things. In many ways that’s sort of not about today as the consumer side and all the cool wearables and things people are doing, but there’s a ton of embedded devices that exist today in the retail space if you think of point-of-sale systems. When you go use your ATM there are some good old-fashioned Windows code in most of those things, .NET in particular. Depending on the device that you’re using, there’s likely — if it’s a commercial device, a handheld device, manufacturing device, healthcare — there’s likely embedded software there. And that’s an area we will continue to invest going forward and Terry talked about that.
But we’re also continuing to invest in some of the areas that are probably a little less, I’ll say, sexier out there. So there are many of the devices that have no UI. And in the devices that have no UI there’s something called the .NET Micro Framework. We’re continuing to invest in the .NET Micro Framework. We’re going to bring it forward so we’re updating language support for generics, we’re improving the runtime performance, we’re going to make it modern Visual Studio integration, and we’ve open sourced this as well so other people can work on it. So we’re going to continue to invest in this area and make sure for folks working in the embedded side we do a great job not just on the new things, which we’re about to get to, but also on the existing.
In terms of new things, embedded goes pretty well there as well. So John, so Akai and Numark, this is an example of sort of a very modern — we could do this all day — a very front-end side to the embedded space. These are musical instruments. Skrillex uses these, Dr. Dre, and so Dr. Shew as well takes advantage of these, and this is the other end of the embedded space and another area in terms of working with developers there’s a lot of opportunity. This is not something you might generally think about as a Windows device. Yesterday, Terry had the piano, so keeping with the Windows theme. I want to thank Akai and Numark for letting us sort of give a sneak peek of these today and keeping the music theme going.
And so embedded is sort of the last piece where I want to talk about sort of bringing assets forward.
Now, let’s switch gears. You know, John, in the mobile- and cloud-apps-first area there’s lots of different things that we do, there’s lots of different types of applications. Where is a good starting point for this discussion?
JOHN SHEWCHUK: Yeah, one of the things about developers as they look into the mobile- and cloud-first world, there’s a lot of options out there.
And so one of the questions that we often get asked is, well, why focus on the Windows platform? And typically the cases that we’re seeing where developers are coming to us are those that involve the need for a very wide range of capabilities, especially in the enterprise and with things like integration.
A great example of this is actually some work we’ve been doing with Delta Airlines, and they’ve been teaming with Jeppesen Boeing in order to put this together.
Now, Steve, you were involved in this project, so kind of describe what Delta wanted.
STEVEN GUGGENHEIMER: Well, I think this is a good bridge between existing assets and going forward. Delta wanted to take advantage, look, people are using the Jeppesen app in cockpits today. You see it on the iPad. But part of what’s important for them is to not just take advantage of technology in the cockpit but also in the backside of the plane where people are taking orders and they have the cashless flights today, but also in the mechanics area being able to do manuals online, and then just as importantly hooking into all the back-end systems.
So what we did is we worked with Jeppesen, we got the app running pretty easily on the Windows device. Here’s a Surface device. This is my flight from Seattle down to San Jose. We can blow it up a little bit. If we want to, we can add some information.
And the nice thing for the pilots, look, it’s very performant. They like the performance. We’ve had 700 pilots work with it already, getting great feedback.
If I need to look at the manual, typically pilots used to carry a big flight bag and they had to carry all the manuals. Here now I can just open the manual if I want for North America, I can open up side by side.
So a pretty simple example of taking advantage of the device and the software and moving into a cloud-first, mobile-first world. But it’s not just this device, it’s the combination of the new devices connecting to the existing system.
And I’ve talked to Richard Anderson, the CEO. He’s very, you know, both pleased with what we’re doing but really looks forward to how to make all these pieces come together and take advantage of how the world’s moving forward.
Now, that’s one direction you can take in terms of sort of cloud devices or cloud and mobile. Let me go to another one. Let me come back to the slides real quick.
Autodesk, many of you might be familiar with AutoCAD, great desktop application. Still have it, it does great, we love it, in particular sort of with high-fidelity inking and some of the other work they do.
But part of how they’ve moved forward is to build a complementary set of applications and services, Pixlr photo editing, 123D 3-D modeling, the Autodesk, AutoCAD 360. And so they not only maintain their existing assets, but they build a complementary set of services. And these are services that I’m happy to announce they’re going to bring these to Windows, they’re going to make sure we do a good job of connecting existing and future, and we see this often. This is work we’ve done, Intuit, for example, having a Mint service to complement their services, Office started here, Adobe. And so this is a way to take existing assets and complement them in a cloud- and mobile-first world.
So those are sort of two line-of-business applications, started in the area. Let’s switch gears now. Let’s go into — I’ll say let’s start with social and let’s pick up from some conversations last year.
Last year, we announced Flipboard was coming to Windows. And since then they’ve done a great job bringing it to Windows 8. And you actually worked on this app with them. Did you want to talk a little bit about this?
JOHN SHEWCHUK: Yeah, so when we sat down with the Flipboard team, they had had many great mobile apps out there, and they had been doing a lot of work to make sure that their Web properties were able to provide a good experience in HTML5.
And so as we looked to bring this and release this last year, one of the key things that we did was we came up with a way to do the hybrid application, leveraging a lot of that content, and yet do a really great experience in terms of the flipping of the app, and so we got that stuff all running.
Then what happened was that the team wanted to take all of the investment that they had done, those projects, and they wanted to evolve it forward and bring it to the phone. And we’re pretty excited to show this.
STEVEN GUGGENHEIMER: Yeah, so this is a technology preview. Eric and Mike were kind of enough to let us show this. App’s not done, this is again just taking a technology and leveraging what we saw yesterday in terms of Kevin Gallo being able to move code across devices.
Here you see the same Flipboard app, great experience in the UI. You’ll notice we can down shading, shadows, moves really nicely, very performant.
And the nice thing is, it’s easy now to go across the devices, and in this case with a real partner-based application, technology preview with that application.
And John, you’ve got another device?
JOHN SHEWCHUK: Yeah, well, let me just say a second about what we did here. In order to get this great experience that they were looking for, our teams partnered and we took that code base forward and we actually started taking advantage of DirectX and C++.
And so I actually had something pretty interesting to show here. This is a Nokia 520. This is actually one of the lowest-end devices. I picked one of these things up in the store the other day for 60 bucks. It’s 512 memory. Check this out, the experience, the flipping on this thing is incredibly fast, it’s super performant, and this is really a great example of developers using the entirety of the toolchain, Web technologies on the server, .NET, C#, DX, C++ in order to really, really, really create an unbelievable experience at even the lowest-end device. (Applause.)
STEVEN GUGGENHEIMER: So we appreciate the help from the Flipboard team.
Now let’s switch gears. Last year, we showed for the first time, this just announced, we showed Foursquare coming to the tablet for the first time. They chose to bring it to the Windows tablet first because of the great experience that could be delivered.
We didn’t spend time last year on the phone app, but they have a great Windows Phone app. Wait for a second, let that pop up on the screen.
And so what we want to do now is take the app that is in existence already and then build on what Kevin and the team showed us yesterday in terms of some of the new APIs coming for Windows, Windows Phone 8.1 in this case — or sorry, Windows Phone 8 in this case — I call it blue, I don’t know what to call it anymore — and bring it forward.
So John, you want to take us on this one?
JOHN SHEWCHUK: Yeah. Well, I may have a little problem. Speaking of all those explosions, I do not — oh, do I have mouse? I don’t have mouse. Let’s see, this might be a little tricky to do without — I don’t even have a keyboard. Oh, there we go. No, that’s not me. Somebody’s got the mouse backstage, so let me just talk through this.
What I’ve got here is a —
STEVEN GUGGENHEIMER: I warned you, to be fair.
JOHN SHEWCHUK: This is remote-control coding, never been done before.
So what we’ve got here —
STEVEN GUGGENHEIMER: Voice-activated coding.
JOHN SHEWCHUK: — I’ve got a Silverlight project, and the way I got to there is I right-mouse-button clicked on this, the previous Windows Phone 8 project that they had, and I did one quick click, which was to do the new retarget to Windows 8.1.
And the cool thing about this is that we took their existing code, and this is the actual Foursquare code, and what’s really cool about this is the second you do that thing, you get this project, and now you get full namespaces. So if I were to type in here, Windows.devices.geolocation — the voice recognition is incredible here. (Laughter, applause.)
STEVEN GUGGENHEIMER: Hey, it proves it’s real.
JOHN SHEWCHUK: Yes. What we’re seeing is the ability to bring in all these new capabilities.
Now, Foursquare, one of the things that they really wanted to be able to do was create a more engaging experience. They love the Live Tiles. They saw what we were doing with 8.1 around geo fencing and they thought, wow, the ability to have literally thousands of these geo fences, we could use that to do something pretty cool.
So if you look up here inside these projects, the way a geo fence works is, it’s actually a little extra program that kind of runs alongside, it gets packaged with the main app and it runs in the background and it does the simplest thing. Whenever we move in and out of one of these geo fences, the run operation gets called here, and that run operation does a pretty simple thing. It looks to see what the list of venues are nearby, so what’s the various restaurants, what are the various points of interest.
Now, the way you go create one of these geo fences is incredibly simple. If we go to the part of the code where we create one of these things, that new geo fence, notice all we do is we create a circle, we create the new geo fence, we’ve got 10 seconds in here so that we’re not bouncing around too much, and then we go in and add that thing to our list of geo fences. That’s it. We’ve got geo fences now, literally thousands of them sitting around.
So actually we have an emulator here. Let’s pull that up. Let’s start up the Foursquare app and just see where kind of we are.
Now, I won’t talk too much about kind of the existing app. That’s out there. Let’s close it. We’ll go back to the Start screen and now let’s go navigate over here to Union Square, and watch what happens.
A couple seconds go by, it notices we’ve entered Union Square, and watch what happens to the Live Tile. All of a sudden these things start to pop up, it finds the various venues. So it’s a great example of one of our partners who’s — (applause) — who’s really pushing the envelope in terms of those engaging experiences. So we’re really excited to be partnering with them to solve these kinds of problems.
STEVEN GUGGENHEIMER: Yeah, and we’re seeing a lot of interest in this space. We’ve spent some time with Conde Nast and you think about a magazine in food and marketplaces and restaurants, again the notion of using geo fencing and Bluetooth LE very popular with existing apps that are out there.
Let’s switch gears. Let me go to the other end. This is a partner we’ve never shown before, new technology coming. The name of the company is Heapsylon and the app is Sensoria, and I’m going to get started.
What I have is, I have a sock on that has basically pressure sensors, and I have this nice little Bluetooth LE emitter down here that’s running along. I’m going to start the session. Now, they’re going to work on obviously nicer pieces of hardware over time.
Let me make sure this guy is on. Yep.
And so I’ll start walking around. It takes about 10 seconds to load. And there you see as I walk I only have a sock on my left foot. Then you see the information as I’m walking around and it gets the pressure points. And if I’m running, it’s a little more active than what I’m doing now.
And then what you can do is you can connect in, and, for example, I could grab a coach. So if I wanted to have a coach and give me feedback as I’m wearing my headsets, I can also look at running form feedback and get performance information.
For purposes of speed, let’s take a look at performance analysis. What it’s doing now is, it’s looking at basically a, quote, run I did earlier, which in my case is as close to a lumber or we’ll call it a fast walk and we’ll be good with that. But I can run along here and you’ll see the pressure on my foot. And as I start to slow down, we’ll get a little coaching.
COMPUTER VOICE: You’re losing your cadence. Speed up now.
STEVEN GUGGENHEIMER: Usually it says move your fat you-know-what along, but you get the idea. (Laughter.)
It’s really, you know, when we talk about the Internet of Things, we’re mixing a lot of pieces here together, Bluetooth LE emitter, socks with fibers in it that read pressure, new applications, and then there’s a bunch of cloud on the back end of this, John.
JOHN SHEWCHUK: Yeah, so the amazing thing about this application, I mean, think about these new kinds of devices, fitness bands, all these threads throughout your clothing. There’s a huge amount of telemetry going on.
So our partner has gone, they’ve used Azure for all kinds of stuff, Azure blobs, SQL Azure for data, they’re doing authentication, they’re using the Azure Service Bus in order to do all the communication between these things, elastic search for data extraction, Lucene to do the real-time analytics. It kind of goes on and on, Hadoop and various other things.
So really you look at these kinds of apps, it’s a bunch of small devices, but they’re really doing big data in the most powerful way.
STEVEN GUGGENHEIMER: So that’s an interesting bridge into the cloud side of things, and sort of apps on the front end, clouds on the back end.
Now, I want to run a video. It’s interesting, many folks think again about when you work with Microsoft, you know, is it all or nothing? This is a good example of a partner, John Gruber from Daring Fireball, great partner.
Now, they build a phenomenal iOS app, right, for your iPhone. They don’t build any Windows apps. Yet based on some of the services we have, we have a great partnership. So let me go ahead and roll this video.
STEVEN GUGGENHEIMER: Thank you to John and team, great job by them. So we’ll give them a quick hand. (Applause.) I’ve been told often I should pause and breathe occasionally, but I’m not very good at that.
So that’s a great example of a partner who’s doing nothing on the device side with us but Azure just made sense. And starting at that point in time we were able to connect and line up and it’s been a win-win on both sides.
Now I want to switch gears to a different partner. This is Chris and our friends at Gobbler. And Gobbler is a service for musicians and I’ll say creatives of all types.
And it’s really interesting, because when you think about layers of abstraction, you know, Scott starts sort of at storage and compute and networking and he works his way up to media and mobile. These guys are a layer above that. They’re trying to solve the need of a particular end-user community using a set of services. And in this case they were already running on Amazon using Ruby on Rails, Ubuntu, MongoDB, deployed with Chef.
And we worked with them, and I’ll let you, you know, watch the feedback from Chris and team as we run this video from Gobbler.
STEVEN GUGGENHEIMER: So Chris and his team doing a great set of work. I hope you guys caught Danny this morning as the DJ. We want to thank him for doing that for us. That was a real nice addition.
So now that we’re on the cloud side let’s switch into gaming, because it’s a real interesting area.
And we saw a little bit this morning on some of the Xbox games and using the cloud on the back end for assistance. What I want to do now is switch gears and talk a little bit about in this case sort of PC gaming and the notion of using cloud assistance for desktop, PC gaming, whatever term you want to use.
JOHN SHEWCHUK: Yeah, so I’ve got a pretty interesting thing here. This is a new prototype we’re working on. This is coming out of the labs. This is running on a high-end machine. And notice like what I’m about to start doing here. I am going to start blowing this building apart.
Now, the cool thing about this is, this is not scripted. This is full-on deformation of this building.
Now, things are pretty cool here, but I’ve actually rigged this building to blow. And what I mean by that is we’re going to just start destroying the whole building.
And so, oops, don’t move the mouse, John. You’ll notice that the building is starting to come down. And watch that frame rate. The frame rate is dropping. We are doing an incredible number of calculations on the physics, the geometries, the rotation of all these objects as it’s going down, and you’ll see that this really overwhelms this machine.
Now, Steve’s got the same app running over here, but we’re doing something a little bit different. We’re using the cloud and a collection of devices to do cloud computation, and why don’t you start blowing this building up?
STEVEN GUGGENHEIMER: I’m going to start shooting this building up. And here like these are high-end main-gear gaming rigs. These aren’t small machines. And so they’re high-end, but when you get to this level —
JOHN SHEWCHUK: All right, let’s detonate the building.
STEVEN GUGGENHEIMER: All right, I’ll start the detonations.
JOHN SHEWCHUK: And notice this thing is running much, much faster for Steve already. And even after he detonates the building, notice the building is starting to come apart. He can now wander around, like let’s go run around various other parts. Like there’s some great stuff in this environment.
STEVEN GUGGENHEIMER: I like to shoot this one, yeah. This thing is really cool, shoot this thing down. (Laughter.)
JOHN SHEWCHUK: But think about this, imagine trying to —
STEVEN GUGGENHEIMER: I mean, I like to shoot anything, moving or not, but that’s a separate conversation.
JOHN SHEWCHUK: Everything in this entire environment can be blown apart. And what we’re really seeing is the power of the cloud to enable new kinds of experiences that have never been possible. Even if we had multiple high-end machines and these things were talking, they couldn’t do the kind of bandwidth that they’re doing.
So what’s happening, the computation’s going on in the cloud, we’re sending those rotations, the positional information down to the clients where the rendering is getting done.
I think it’s a really great example of the power of the cloud.
STEVEN GUGGENHEIMER: No, a real nice complement. And this is a good connection into PC gaming overall. We’re continuing to —
JOHN SHEWCHUK: That thing is dead, yeah, two frames per second.
STEVEN GUGGENHEIMER: How to kill a big machine.
We’re continuing work on investments for the PC gaming community. You know, we were down here at GDC, what was it, a week and a half ago. We’ve got a great set of partners who are continuing to innovate and build phenomenal PC games. This is the war-gaming guys and they’re doing a great job. There’s a whole set of developers and partners. We just want to say first thank you, they do a great job. Two, we’re continuing to make investments and we’re going to do as good a job as we can to make sure PC gaming as a class of applications we do a great job for. And I think the cloud assist here we’re showing is a piece of that. I would say this is an area where we’re listening and we’re going to do more, and want to be a great partner and continue to move this area forward.
So since we’re in gaming, let’s take one more step forward. I’m going to wander over here and let’s move on. Last year, when we came here, for the first time we showed WebGL running in IE11. And my memory was a Kahn Academy demo that Terry picked up the other day.
This is sort of picking up on that. Now here we’ve just got this nice room that we can sort of scroll around in, super performant, looks great.
What I want to do is what Kevin did show yesterday. Let me bring up my phone here, open it up. This is now taking that same capability, same IE11, and instead of searching for fish I’m going to set up a virtual joystick, set the camera up, and now I can move my head around here if I want with the right trigger or right key, and now I can move around.
So now I have a very cool virtual engine here in IE11 running on the same code and it moves super smoothly, it works great. I think this is pretty cool. But I know you’re standing over there because you want to show me up. So go ahead.
We happen to have the Babylon library up here on the screen, and notice that that entire experience that Steve was just playing with was actually created in 12 lines of code. We’ve got the Babylon thing going and creating the canvas. We load the scene, we attach a camera to it, and then we run the render loop, which is pretty amazing that people are able to pull this kind of content together in the app.
But I actually can go take this a little bit further. Notice I’ve got this little button down here called the Go Big button. Now, Steve, you were at GDC last week. What was the big deal there?
STEVEN GUGGENHEIMER: I was at GDC. And so some of the heads-up display, virtual reality headsets, they were killer. The chance to play with these things, it’s just a whole other environment.
So if you want, see what you can do from Oculus on this.
JOHN SHEWCHUK: Yeah, now check this out. Here’s the documentation for Babylon.js. There’s one line of code here, just copy that. I’m going to go drop that into that button and now check this out. Ready? Control-V, I’m not going to run this thing. Ready, Steve?
STEVEN GUGGENHEIMER: Yep, yep.
JOHN SHEWCHUK: All right, it’s going to load up the environment. That’s all good. We saw this before. But now let’s go big. Check this out. All right, so this is Steve using the Oculus Rift in WebGL on a PC, and I think we’re up to 13 lines of code at this point in time.
STEVEN GUGGENHEIMER: Yeah, super cool. In fact, I’m staying here, John.
JOHN SHEWCHUK: Now, the thing that’s incredible about —
STEVEN GUGGENHEIMER: You run the rest of the keynote.
JOHN SHEWCHUK: Yeah, don’t trip.
STEVEN GUGGENHEIMER: It’s funny, I feel like I’m off the edge.
JOHN SHEWCHUK: One of the keys to making this experience work is that we’re able to handle this loop at 200 hertz. Any of the other browsers out there today don’t have that kind of cycle time. But it’s also the entirety of the PC ecosystem, the USB, the high-end rendering. All of those things are combining together to let developers create these new kinds of experiences with an incredibly low amount of effort.
So we’re pretty excited about the work that’s gone on in WebGL and our ability to push these things forward.
STEVEN GUGGENHEIMER: Thanks. Nice work, John. That was good stuff. (Applause.)
OK, so we covered lots of different entry points for sort of mobile-first, cloud-first. We did cloud side, we did app side, we ended on some gaming. Let’s switch gears now to the last area, which is maximizing the number of devices I reach cross-platform, pick the term you want to use, but in this case let’s start within the Windows family and then we’ll spread out in terms of the opportunity to reach other devices.
So the first thing I want to do is I wanted to do this demo, to be quite honest with you, especially the last part when you watch, but apparently the insurance for this particular venue said no.
So we’ve been working with GoPro, and one of the things they’re very happy about is how easy it is now to start to bring their application, they have a phone app already, across all of the different devices, including Xbox.
So in this case I’m just going to run the video.
STEVEN GUGGENHEIMER: I know we would have gotten good cred for bringing the lion onstage.
JOHN SHEWCHUK: It would have been fun, yeah. That would have been a winner.
STEVEN GUGGENHEIMER: Next year we’ll have to consider how we do that.
So thanks to the folks at GoPro you saw some in-app merchandizing in there as they think about the app. And the feedback is, look, with the common core this is much, much easier to do.
Let’s pick another one, we’ll do one more here. Let’s go to gaming. This is “Doodle God 2.” So we’re happy to release the next generation of “Doodle God” today, and we have it running here. The first instantiation is the phone. Got it. And so here I can start all over. I can add fire and drag it up here and burn holes. I can put some lakes in, you know, continue to build my environment out from scratch.
Now, phone’s the first part. The second device we have it running on is the Xbox, and there’s my Xbox controller for this. And the same basic principle here if you’ve played “Doodle God” before. What do I want to work on here? Let’s take some fire, let’s place some fire out in the middle. That never works, so let’s go find some sand. Well, John’s going to yell at me there. I’ll burn the grass for right now.
So “Doodle God 2” on the Xbox, and now third, John, you have it running over there on the PC.
JOHN SHEWCHUK: Yeah, as you can see, this is running on the PC. I can also burn grass. Check it out, look at that, burning the grass.
STEVEN GUGGENHEIMER: We like to burn things.
JOHN SHEWCHUK: Yeah.
STEVEN GUGGENHEIMER: We’re supposed to have fire.
JOHN SHEWCHUK: Shooting, burning and lions.
STEVEN GUGGENHEIMER: Yeah, exactly. All right, we’re on a roll.
JOHN SHEWCHUK: Now, what’s really cool about this is JoyBits, when they built this app, they really wanted to maximize the experience. And so this is a group that really goes down to the metal. So they’re C++, DirectX throughout this.
But when you think about the opportunity here, what’s incredible about this particular application, you’re seeing it on the phone, you’re seeing it on Xbox, you’re seeing it on the PC, it’s an identical set of files. Like I have three projects here. Every single file is completely identical.
Now, one of the things that they did want to do, if I go into the Win runtime and I look at the rendering code here, notice that they’ve got a couple of ifdefs in there. This ifdef, let’s see, here’s one, Windows Phone platform. Notice the difference here. On the phone they’re using a fixed set of vertices. On the Xbox and on the PC they’re actually varying that so that they can do a better job with the fidelity of the objects, better textures, that kind of thing. But it really points out the ability to take an investment and spread it across all of these different kinds of devices into these different environments.
But there’s a little bit more here, right?
STEVEN GUGGENHEIMER: Yeah, you know, this thing clearly if you’re going to do this kind of work, last year we showed with unity sort of running across platform and having sort of Azure on the back end help us, I assume with this one they’ve done the same.
JOHN SHEWCHUK: Yeah, so the incredible thing that they’ve done is JoyBits does this across all their games. They use the cloud, Azure, to go connect together various aspects of the games. So, for example, you can be on one device, pick up on another device. They use it to find other players. So the cloud really empowers these next-generation experiences. It’s a great example of a company kind of going cross-device and in the cloud to produce the next-generation experience for their users.
STEVEN GUGGENHEIMER: OK. So thank you for that one. That’s a very cool demonstration. We appreciate JoyBits letting us use it.
Now let’s start going cross-platform. You know, I think people would assume the first thing we do is pull out an iPhone or an — but that’s been done and we’ll get to that a little later. Let’s go the other direction. Last year here we announced a partnership with Oracle and the ability to bring Java to Azure as basically supported by Oracle.
And so what I want to do now is hand off to John and show a little progress in that area.
JOHN SHEWCHUK: Yeah, so the Oracle partnership’s really been great. One of the things that you just saw in the last demonstration from Guthrie was this new portal. And one of the things that we’ve got in here, they showed the creation of a website. All I’ve done is I’ve created a new website and if I go to the site settings I want to show you how easily we’re now able to take advantage of Java.
And this is the first time we’re demonstrating this. Are you ready, Steve? Here we go.
STEVEN GUGGENHEIMER: Yeah, go for it.
JOHN SHEWCHUK: There. All right, hold on, let me hit save. All right, that’s it. That’s everything necessary for you to go enable Java on Java websites. Notice we’ve got Tomcat, Jetty.
And just to kind of illustrate this, here’s a very typical kind of starter application that a lot of people read, the Java pet shop. Take the war file, drop it up onto Azure, and now here is that app up and running up on Azure. We can browse through there, we can go look at the fish.
STEVEN GUGGENHEIMER: Can you buy lions?
JOHN SHEWCHUK: No lions to be bought here.
STEVEN GUGGENHEIMER: All right, all right.
JOHN SHEWCHUK: But you guys get the idea.
We’ve made Java just incredibly turnkey. All of that existing code, all of that existing investment that you have, you can now bring very easily, and in a supported platform way.
STEVEN GUGGENHEIMER: All right, and I think that’s a good place to start. I think the Web and Web technologies give us a great ability to go really, really broadly cross-platform, right?
And so why don’t we start with another application? There’s a partner app there we have called Accela. They keep track of a huge amount of civic information. So if you make changes to your property or your house of anything sort of around your home and I’ll call it your homestead, they keep that information, and it’s a very, very rich set of data and information. They make it available up on the cloud through a site called CivicData.com.
And what they want to do is they wanted to partner with us to try and make it accessible to developers, so that developers could actually use that data inside of applications. Typically this takes a bunch of work. You need a front door to this data. We do this work on the, you know — but it’s a lot of work, it’s not a small piece of work. And so you worked with them on this?
JOHN SHEWCHUK: Yeah. So one of the things that happened was we got together with Accela and as we talked about the kind of applications that they wanted to build, they wanted their partners to be able to build, we said, hey, we could help you create those kinds of applications.
So here’s an example of an app that’s actually powered by the data that Accela produces, but notice these apps typically have a lot of things going into them. In this case we’ve got news coming in, we’ve got reports coming from an ERP system, we’ve got integration with identity. So pulling all that together from these different sources is often one of the most difficult challenges that companies face.
So to kind of illustrate what’s going on here, let me go behind the scenes. And what we’ve done, as Steve mentioned, is we actually have a set of front-door machines. These are machines spread around that actually take the inbound requests, and as you can see here’s a deployment, and it’s picking up that cloud application.
But what it’s doing is this very interesting thing. There’s a couple of roles that we’ve configured. This is all code that’s available to you. And notice what we’re doing. Underneath the data portion of the URL we’re going out to Azure Mobile Services. For the news we’re going out to Amazon Web Services and we’re picking it up off of that. For the reports we’re using a Java-based ERP system to pull this together.
Now, I was talking to the CEO of VIGO last night, and he was describing how as they do mergers and acquisitions it becomes really important for them to be able to pull together all of these different pieces and put them into their application, and they’re really struggling with it. The idea of being able to use this approach is very exciting, where they can have common identity across many services, where they can do common monitoring, common deployments, A/B testing. All of that integration is available.
All of this code that you’re seeing we’re going to have out on the blog post. This is actually live today in CodePlex. It’s a turnkey way to use the powerful capabilities already in Windows Server with the application request routing, ARR and on Azure. Simple one-click deployment from the portal, we think it’s a great way to go pull together and composite apps in the cloud.
STEVEN GUGGENHEIMER: Good stuff, John, nicely done.
Now, that’s sort of a step. Let’s keep going forward.
Last year, after Build I was at another conference and we announced a set of templates that allow you to take Web experiences like this and websites, and very simply host them as a mobile application. So you can turn them into mobile applications, put them into the store, and make them available then as both a Web experience or website and an app. So we should be able to do that with this one.
JOHN SHEWCHUK: Right. So here’s the app, here’s the URL for this Web app, and I’d love to be able to just copy that and create a mobile application.
So we’re very excited to announce today that we have a new tool called App Studio that’s out there that will do this. You simply provide some information and it will go generate the appropriate packages for you to go drop in the store.
But let me actually kind of go — again let’s go under the covers here a little bit, and the thing that the App Studio project does is it produces one of these things we call the Web app template.
The Web app template, again open source code, you can see all the code that gets generated, but it’s largely driven by a config file written in JSON. And watch what I’m going to do here. I’m simply going to drop that URL in for that Web app. There’s various configurations you can put in here. You don’t have to do any of this stuff by default, we’ve just set one or two of them, and now I just run this thing and now there we go, there’s a Windows 8 app that was generated from that website, so just that simple, all available to you now.
STEVEN GUGGENHEIMER: Thank you, John. (Applause.)
JOHN SHEWCHUK: There’s more here, Steve.
STEVEN GUGGENHEIMER: All right, let’s keep going.
JOHN SHEWCHUK: Just to kind of look around here a little bit, you know, this thing is integrated with things like the dropdowns, the touch and all that kind of stuff.
Now, one of the things, people have done this kind of thing before where they wrap up a website. There are some challenges.
STEVEN GUGGENHEIMER: Yeah, there’s one problem when you take a website and you want to make it sort of the foundation for your application. When there’s no Web, there’s no app, John.
JOHN SHEWCHUK: Oh, oh, don’t — yeah, you unplugged the network.
STEVEN GUGGENHEIMER: Sorry.
JOHN SHEWCHUK: Yeah. So watch what happens on this app. Yeah, not so good.
That’s not the best experience. And so if you’re building this kind of thing, you really don’t want this to happen. You want the app to be responsive whether you’re online, whether you’re connected and disconnected. So why don’t you plug us back in?
STEVEN GUGGENHEIMER: I’ll plug you back in, John. Sorry.
JOHN SHEWCHUK: Yeah, and let me close this app up. And I’m going to show you a cool new feature that’s been just released. It’s now live on the Web, and it’s this new section right here called offline.
And what we’ve done is we’ve enabled the super cache, so we’re going to turn this on to be true. I’m going to add one more thing. I’m going to add — I’m going to inject back into the system the HTML5 capability called IndexedDB. So we’re going to turn on the ability to store data locally.
And are you ready for this?
STEVEN GUGGENHEIMER: Yeah.
JOHN SHEWCHUK: Here is that same app now up and running, and notice I can — don’t unplug me yet.
STEVEN GUGGENHEIMER: All right, all right.
JOHN SHEWCHUK: I just want to wander around here for a second. I’m going to go look at properties near me. That’s going to load things into IndexedDB. I’m going to go maybe look at one of these properties. I’m going to go back home. And now I’m navigating around and everything seems good, and I can even update this stuff on the cloud.
Now here’s the cool thing. Let’s go back home and let’s have Steve just pull the plug.
STEVEN GUGGENHEIMER: Just one more time.
JOHN SHEWCHUK: And notice, watch what’s happening to the upper corner where it says caching. We’re about to go offline. We are now fully offline. Everything that was cached, all the navigation I did is still there. So notice the Bing Maps integration. We have just taken a website and we’ve really transformed it very quickly into a fantastic mobile application, and the code’s all there. You can take it, you can do anything that you want with this and really push the experience any way you want.
STEVEN GUGGENHEIMER: That’s pretty cool. Nice work, John.
So let’s take it the final step. If you’re going to go devices, why don’t you show it on that device, and I’ll wander over here.
JOHN SHEWCHUK: Yeah. So I think it’s pretty cool to be able to take a website and turn it into a mobile app. We can do it in Windows 8. Here is that same app now running on the Windows Phone, which I think is pretty neat.
Now, notice one of the things that we did was we used a responsive interface so that we get appropriate layout. So this technique works best when the developer has really focused on building a great mobile application.
And so this is a good example of going across the Windows device, but you’ve got something.
STEVEN GUGGENHEIMER: Yeah, so here’s I’ll just call it a non-Windows device. This is a nice HTC One. And you’ll notice if I open up and come into the device, here is that same app.
So as John’s noted, using the Web and the Web toolchain for going cross-platform, very easy to do. And I think the work John’s done with the templates they’re building to turn websites into apps, to make them work offline, and then to bring them into stores, both for Windows and non-Windows, is a super piece of work. I’d say great job, John.
JOHN SHEWCHUK: Yeah. Now, I’ve got one more thing to show here.
STEVEN GUGGENHEIMER: OK.
JOHN SHEWCHUK: So this technique has been used by a bunch of our partners. We’ve been working with a number of companies. This one happens to be the app created by a company called Zoopla. They’re the leading real estate company in the U.K. Notice that they’ve got this great experience. You can zoom in, you can interact with the application. These kinds of apps, when done right, with things like the offline support and those capabilities, we can take Web content, bring it to mobile applications, and create four-star-plus experiences in the store.
STEVEN GUGGENHEIMER: All right, great job by the team on that one. (Applause.) Yeah, come on, give him a little applause. They’ve been coding that for about nine months.
JOHN SHEWCHUK: All right, so one last thing I wanted to do, picking up from yesterday, so that was using the Web toolchain. Now, Kevin did a nice job, Gallo yesterday, showing one of his apps and taking it across Windows devices. And Scott talked about Xamarin this morning.
So what we thought we’d do is we’d take that application and we’d work with the Xamarin guys and overnight what we’d do is we’d bring it cross-platform. In this case I’ve actually got Kevin Gallo’s app — sorry — running now on my iPad.
And so basically overnight using the combination of the universal Windows project and then taking that with the Xamarin folks we brought it all the way over very quickly on that tablet.
JOHN SHEWCHUK: And I think that really that’s really the notion of universal that we’re looking for.
So here is that same app now running on an Android device, again started with that Windows universal app, partner with the Xamarin team, and literally my team overnight, we just took that app that Kevin had produced and we’ve now got all of this stuff running.
STEVEN GUGGENHEIMER: Right. So I think in this case nice piece of work by the team. Thank you to Xamarin for helping us out there, Miguel and the team. (Applause.)
So with that, I wanted to make sure and point out the fact that if you look across a lot of the things we’ve shown today, there are a set of SDKs for iOS and Android, from Azure, Office 365, Skype, Active Directory. We even have a division, Microsoft Open Technologies, that spends all its time working in the open source community, both contributing out, as well as working with partners who want to work with us. So there’s a lot of API sets, SDKs and work being done for cross-platform, and we want to make sure we’re doing a good job of getting that out to you and making sure you can get access to it also easily.
So with that, let me do two things. First, hopefully in less than an hour, we’ve done a good job of covering supporting a broad set of your existing technologies, whether it’s Mobilize.net or connecting to Office 365. Lots of entry points in a cloud- and mobile-first development, could be on the device side, could be on the cloud side, could be starting from scratch or building something on top of what you have.
And then lastly, working across not just the Microsoft set of devices and services, but whether it’s Java on the back end or an iPad on the device end, making sure we can do a great job working with you with our stuff, but also doing a great job working with you across all of the devices, services and partners you want to work with.
So with that, I want to thank our partners, great partners helping us show off a variety of demos today. There’s also with the announcement — I had one announcement earlier today with Autodesk but there’s three others, Airport, City, Star Walk and Rollerblade, apps coming into the store literally today, so every day we’re working with partners bringing new apps to the store.
And with that A) a giant thank-you, B) I hope we see you all tonight. The party’s at the Metreon. It’s right around the corner here, 6:30 to 9:30. So with that, have a great rest of the day. Thank you so much, Guggs and Shew and we’re out of here.
JOHN SHEWCHUK: Thanks very much. (Applause.)