David Treadwell: Build 2014

CORTANA: Next up, David Treadwell, corporate vice president, Operate Systems Group. (Music, applause.)

DAVID TREADWELL: Hello, Build. (Cheers, applause.) Good morning.

Well, that was a great look at what we’re doing in Windows and Windows Phone. Joe did some awesome demos, really a super job.

Well, I get to talk to you about what we’re doing for you as developers in our operating systems, our platforms, our tools.

First, let me take a moment to introduce myself. Dave Treadwell. I’ve worked at Microsoft for almost 25 years. During that whole time, I’ve always been involved in our developer technologies, our platform, our operating systems.

I started on the Windows NT group in the networking team. And I want to tell you a story that I’ve actually never told publicly before about one of my early projects.

My manager at the time, a fellow named Dave Thompson, assigned me to write the Windows sockets infrastructure for NT. And when he gave me this assignment, he gave me one criteria. He said, “Dave, whatever you do, don’t create a driver.” And the reason was totally legitimate. Drivers are complicated. They use more system resources. If you have a bug, they can crash the system. It’s tough to get a driver right.

So I went off and I worked to design this thing. And a couple weeks later, I kind of figured it out. But I concluded that, you guessed it, I actually needed a driver.

And we had a design review meeting with myself, my boss Dave, and several other senior engineers. And we went over my proposed design for this. And the reason I needed a driver was that I needed socket handles to be native system handles. And the only way to achieve that at the time was with a driver.

So we had this meeting, two hours long, we’re trying to find some other way to get socket handles as native handles without a driver. But the conclusion of the meeting at the end of it was: Yes, in fact, we really do need a driver.

I’ll never forget this. Dave, my boss, he pounded his fist on the table and he said, “Gosh, darn it, another freaking driver.” (Laughter.) Maybe not exactly those words, but that was the tone of it. (Laughter.)

And I looked at him and I said, “Well, that’s cool, that’s what I’m going to call it.” Because it turns out that at that time in our build system, you couldn’t have a DLL and a driver with the same name. We needed winsock.dll for the DLL and I couldn’t use that for the driver.

So a couple days later, I checked in the beginnings of this new driver. And Dave came by my office and he said, “Hey, what’s this AFD thing you just checked in?” (Laughter.) And I told him — remember, that’s the sockets driver, we talked about this. You need a driver for handles and all that. And he said, “Oh, that’s right, but why did you call it AFD?” I said, “Well, Dave, you named it, remember? Another Freaking Driver.” (Laughter.)

And he kind of laughed and he said, “Well, that’s cute, but you actually need a real name for this thing.” And so I thought about it and I came back and I said, “Dave, I’ve got it.” Remember what the driver does? It provides additional functionality we need for sockets. So we’re going to call it the Ancillary Function Driver. (Laughter.) And he laughed and said, “That’s good, you can go with that.” So to this day, on every single version of Windows, there’s a file called AFD.sys that is the driver for the winsock functionality. Check it out in Windows System 32 drivers, every Windows machine has that file, and now you know how it was named. (Laughter.) (Applause.)

So I’m going to talk to you today about three main areas where we’re focused on listening to you as developers and helping you. First, we know that you need to reach your customers across multiple devices — PCs, phones and tablets. Windows will help you do that.

Second, we know that you’ve made huge investments in your apps and in your code, and you need to carry those investments forward. Windows will help you do that.

And third, we know that you need to deliver apps and services across multiple platforms. Yes, Windows will help you do that too.

Let’s start with how we’re helping you reach your customers across different devices.

People work and they play across all kinds of computing devices. In a given day, I’ll use two or three different laptops. I have a desktop in my office at work. I’m on my phone all the time. I use a tablet for games at home.

My family does the same thing. My wife, she has a laptop. My kids, they have tablets. My older son, he has a phone. All of us want the same app experiences across all or our devices. I’m sure it’s the same with you and with your families.

Yet today, there’s no easy way to create apps that work across all form factors. Well, it’s my pleasure to introduce Universal Windows Apps. (Applause.)

With the Windows Phone 8.1 release, we’ve brought the new Windows runtime to phones. Now you can use common code to produce apps across phones, PCs and tablets.

Google and Apple, they have a different approach. They want you to create one app for phones and tablets, and a different app for laptops and desktops. We don’t see it that way. We’re excited to be the first in the industry to make it easy to build apps that reach customers across all the devices where they spend their computing minutes.

To enable Universal Windows Apps, we’ve streamlined every phase of the development cycle.

With Windows, it’s simpler to design, to architect, to build, to debug and to deploy your app. Let’s talk about each of these in more detail, starting with the user interface.

When we looked at how to streamline the process of designing your apps, we found that some of you want to create one app that runs across all form factors. You want to adapt that user interface automatically. For example, here’s Paint for Kids, a popular Windows app that will be coming to Windows Phone with the 8.1 release as a Universal Windows App.

By using a grid you control that adapts automatically to screen sizes, by using pointer APIs that automatically take input from mouse, touch, ink — the developer is able to create an overall user interface and a single application that works great across form factors.

Next, we found that others of you want to tailor your experience to the form factor. You want to have a really optimized app for a phone and a really optimized app for the PC.

For example, here you see Epicurious, a popular cooking app on Windows that will be coming to phone also as a Universal Windows App.

This developer chose to create different views that are highly optimized for each form factor, yet even so, the bulk of the code was the same across all the devices.

Now, let’s talk about the code, the app architecture, the programming languages, the APIs, the stuff that matters most to you as developers.

Universal Windows Apps are based on the Windows runtime on phone just like on PCs and tablets. This means that you have a common, familiar way to build and architect your apps. For example, how you handle things like suspend and resume, the security context and infrastructure, it’s the same across all the devices.

This also means that you can use the programming language that you know well, the ones that you love, the ones most effective to your task for your Universal Windows Apps. If you love the power and control of C and C++, you can use it. If you love the productivity that C#, .NET, VB.NET enable, you can use those too. Or if you want the breadth of HTML, JavaScript, and the Web, yes, you can use those for Universal Windows Apps. (Applause.) Yeah, go ahead. Use the language you love.

This also means you have a common extensive API set for everything from handling low-level data types to higher-level concepts like the file system APIs, notification, the users, and more.

Of course the best way to develop apps has always been Visual Studio. And now Visual Studio is streamlining development of Universal Windows Apps. VS makes it easy to share code across phone and PC apps, and it gives you the tools to debug and optimize them.

So I’d like to ask Kevin Gallo to come up and show you the vision we have for VS and Universal Windows Apps. Kevin?

KEVIN GALLO: Thanks, Dave. So what I’m going to show you is an update to Visual Studio 2013 that allows you to build these universal apps.

So let me launch Visual Studio here. And first I want to show you that if you are starting from scratch and you want to see the templates, it’s very easy. We have edit a new note here under store apps for universal apps, and some simple templates to get you going from scratch.

But like you, you know, typically, we’re not starting from scratch with an app. I have an app either on Windows or Windows Phone that I now want to take to the other platform and device form factor.

So I’m going to start with a Windows app. You could have started with a Windows Phone app. And then I’m going to make sure I add a device target for the other.

So I’m going to go to one that I’ve already been working on here, which is a sports league fantasy app. You can see here I have it for Windows 8.1. And so I’m going to launch this, and just show you what the app looks like on Windows.

So as you can see here, I have a very simple hub control kind of as my main page here. And then my first little panel over here gives you some news. This will be like a table here where the people are and the points, as well as the teams, their rosters, and a schedule.

So let me go back to VS. And what I’m going to do is basically add the ability to have a Windows Phone 8.1 target.

So it’s very simple. I will just simply right click on the project here. And I say add Windows Phone 8.1. And so it’s going to tell me here in this dialog what it’s going to do. But I’ll just show you that.

So it’s going to create two nodes, one for the feature that is very specific, or code, assets that are specific to Windows Phone 8.1, as well as this new shared node. And this is really the significant addition here is you can now very easily mark what code and assets you want shared.

Since I built this application using the Windows runtime, I can share my entire app. So I’m going to drag this down here and move it all into the shared node.

So what’s this doing? It’s taking everything that was in my Windows 8.1 project, this includes my code, my localization files, my images, as well as my XAML, and moving it into the shared project because now it’s going to be shared. And I want to say, this is all of my code, including all of my XAML.

And the next thing I’ll do is, just like you, I have probably some third-party libraries that I’ve used here, and I’ve decided to use JSON.NET. So I need to tell it that I want to use that.

By default, we don’t assume you’re going to share. We’re going to make it so you select what you want shared, and move into the shared node. And so here I’m going to say I also want to share this third-party library. And so this reference is also here now in my Windows Phone project.

So as you can see, I’ve moved the entire app here, I have all my views. Again, by default, we don’t actually assume that your start page will be the same. But since I use the hub control and the hub control is a universal control, it can automatically lay out both for your phone and for your PC. So I don’t need this. So I’m going to delete these and say that I just want to use the default hub control that I had.

And let’s just rebuild it, make sure I didn’t screw anything up here, some typical warnings, and I’ll just ignore those, like most of you probably do as well. And we’ll kind of see if it runs, and then we’ll go back and figure out if they matter. (Laughter.) Yeah, we all know we do it. Just admit it. (Laughter.) Own up to it.

So we’ve made it very easy here to change the startup project. It was a little bit hard to do before, now it’s very easy. I do this drop down. I say I want to use Windows Phone Emulator here, and this will just launch my app. And let’s see what it looks like.

Again, this was a complete copy and share of all of my code. So as you can see here, the hub actually looks pretty good, I can pan around. (Applause.)

Now, if I look at the first page here, the news view, it doesn’t look that good. But the rest of it, really good. Looks really good. You know, it’s just a standard hub. This one kind of spins around here like our default UX on phone. So it’s a very, very nice app right out of the gate.

But you know what? I care about the quality of my app, and I want to tune this better. So not only can you by default get a great experience with all of the same code, you can go tune the UX to be better on the device and add some device-specific features.

So like I said here, these are my views. So I’m going to kind of choose three views that I’m going to tune specifically for the phone. The cover story, leader board and points here.

So how do I do that? First thing I do here is I drag my user controls back up here. So I’d shared it before and moved it down, I’m going to put it back and say, you know what, these three views are only going to be for my Windows Phone 8.1 project. My Windows project.

And here I’ve built a set of those views beforehand. And I’ll just drop these into my Windows Phone-specific node. So you can see here, I have different user controls for these three views, but everything else is shared.

So now let’s see this running. So now you can see what I did on here is I’ve just simplified the main page and I have a little icon down here that shows the newsfeed rather than having it there, and I’ve rearranged the layout.

I also tuned this a little bit here in my UX. You know, rather than having it big, I said let’s take advantage of a little bit of the density of the phone in this portrait view.

So then I also added one other view. And this is my points table. And so I can very easily here add that extra view. Well, it’s not working very well, wow. Dave, have you been messing with my code? Have you messed up my app? As usual, I have to go fix the bugs that Dave introduces. (Laughter.)

So I will go back and, luckily, we’ve made some enhancements to our diagnostics center to help debug these types of issues.

So let me go there and say, you know, as you can see, there are a few more items here. First is we added a memory usage diagnostics tool, but I don’t think that glitch was really due to memory. I think that probably is due to CPU and maybe something wrong with my XAML.

And so I can run these now in parallel. Beforehand, you’d have to run them separately, but now you can run them in parallel and you can diagnose problems that maybe, you know, are a mix between the two and there’s some sort of interaction between your CPU and XAML.

But rather than run this here, which takes a little bit of time to run the diagnostics, I already have a log here that I’ll open up and show you.

So here we have our app startup and then, oh, wow, look, this looks like this is the problem right here. In my UI utilization, the frame rate drops through the floor, my CPU pegs, so let’s go look here and see what this might tell us.

Well, wow. You know, really there’s nothing in my XAML that is telling me it’s wrong, but wow, the CPU usage is high. So someone must have put something into the code here that just drove the CPU high. That caused that kind of glitch. So I can easily go diagnose, figure out where the problem was, and go fix that.

Now, once I’ve fixed that, I can then take this app and I can submit it to the Windows Phone Store. So I very easily was able to take that application and convert it to a universal app, do some tuning, and then submit it to the store.

One of the features that we’ve added here to make it easier to kind of look at your UI and manage it is what we call a context switcher.

So I’m going to load the designer here because clicking on this XAML here that’s in our shared project. As you can see, here’s my XAML and here’s a view for the phone. But I can very easily, using this drop-down, switch and look at it and what it looks like on Windows or tablet form factor. That’s a great feature, very easy to go do. (Applause.) And this is how you design universal controls, by building the multiple layouts for each of the different layouts that you want, and I could have tuned this right here.

So with that, I want to summarize that we’ve added two key features here with Visual Studio. There’s a whole host of them, but the two that I showed, one, you can build universal apps and you can easily share all of your code, or you can do some tuning to make the UX pop on the different form factors, as well as a bunch of different diagnostic tools to really help you make great apps, submit them to the store, and have high quality.

With that, I’ll hand it back to Dave, thanks. (Applause.)

DAVID TREADWELL: Great job, Kevin, and sorry for messing up your code.

So that was a great overview of how Visual Studio makes it so easy to create Universal Windows Apps.

The last area I want to talk about is how we’ve streamlined the store experience around Universal Windows Apps. The Windows Server now features shared app identities. This is a concept where you can give your customers a common app experience across phones and PCs.

For example, your customers can buy the apps one time and it works on both phone and PC. They don’t need to buy a different app for the phone and PC. (Applause.)

Likewise, your customers can now make durable, in-app purchases. If you’re writing a game, you can buy it on the phone, use it on the PC.

With shared app identities, you also get to share cloud storage and notification channel. And there’s a universal badge icon which makes it clear to customers that the application experience is the same across all the devices.

Shared app identities let you run your business the way you want to. If you want a common app experience, the same purchase experience across phone and PC, you can do that.

If for some reason you want a different purchase experience, you’re also enabled to do that with shared app identities. And there’s a host of other improvements that we’ve made in the ingestion and store process.

For example, we’ve made submitting your apps to the phone store more than 50 times faster. (Applause.) We got a little feedback that we could do better there.

So now I’ve told you about how we’re enabling Universal Windows Apps and tuning the entire development cycle to help you build them.

But I want to show you the real power of the platform. What’s the most powerful kind of app that we have built on the platform? What better example than opening up Cortana herself? Hey, Cortana? Can you open yourself up in Visual Studio so we can take a look?

CORTANA: I’m sorry, Dave, I’m afraid I can’t do that. What about Microsoft Office? (Laughter.)

DAVID TREADWELL: Nice dodge, Cortana.

Great. With that I’d like to invite Kirk Koenigsbauer, VP of the Microsoft Office team, to show you what we’re doing with Office and Universal Windows Apps. (Applause.)

KIRK KOENIGSBAUER: Thanks. Good morning, everybody. Sorry, I’m not Cortana. But I am from the Office team.

So what I want to do is giving you a look at some of the work we’re doing to build touch-first versions of Office for this modern Windows platform that, as Dave talked about, will scale from the smallest form factors, from phones, to tablets, to PCs up to the largest large-screen devices.

From a development perspective, the Windows runtime for us has proven to be a really great platform to build highly responsive, deep apps. So I want to give you a sense of what that looks like.

I’m going to show you PowerPoint. I’ll start there. This is a preview of our work in progress. We’ve still got some work to do before we ship these. But, hopefully, it’ll give you a good sense of the direction we’re taking and the direction of the power of the Windows modern platform.

So, again, just a preview. This is early user experience code, but one of the things we wanted to do is to bring forward the experiences from Office on Win32 to the modern platform itself. What you’re looking at here is the early version of the backstage. The backstage is where you get all of your templates, you can navigate through those, of course your most recently used files. It roams with you from device to device to device. So we’re connecting to the service experience of Office 365 with the native client experiences here.

I’m going to go ahead and open up a file. Just go to the file picker. Pop open a document for us to look at, and we’ll work through this one here.

Now, as we built these new applications, we wanted to make sure that as customers move from Win32 to the modern version on Windows, that they would have an unmistakably Office experience. And a key part of that, of course, is the iconic ribbon for how commanding works and how people navigate through the applications.

So here you can see the ribbon at the top, and I can navigate through just using my finger, a great touch-first experience through all the commanding, really optimized and in the same hierarchical order, though, that people would expect on Win32. So there’s no learning curve as they come to these new applications.

The next thing that’s really important for every single Office customer is that every single one of their documents opens flawlessly on any version of Office. And so you’ll see that. We’ve taken the richness of the open XML file format, fully exposed here on these modern versions of Office.

And you can see as I go through there are things like smart art and text and graphics layered on top of each other. We’ve got, of course, pictures. We’ve got shapes wired up, tables and so forth. So you can see the full file fidelity of the Office experience is here.

The other thing that you’ll notice, and I’ll just tap through really quickly, is this is blazingly fast. And this is fast because we’ve built this application from the ground up on DirectX and we get really high-fidelity interop between the XAML layer and the custom DirectX code that we’ve built. And that’s what gives you this really snappy, blazingly fast experience.

Let’s go ahead and look at some of the editing surface that we’ve done, too. I’m going to just do some really simple things here showing you some of the touch-first experiences.

We’ve made the touch points on the ribbon really big and easy so you can just use your fingers, even big, fat fingers like I have, to go through. And I can just bold, italicize, underline.

I can bring up galleries. You’ll find that in these new, modern versions of Office that there are galleries for things like transition effects, charts, titles, colors, themes as you see them here. And so just using my finger, I can go ahead and pick the color scheme that I want to use.

I’ll go down a little bit. Let’s say I’ve got to finish up this very last slide that’s in this deck. And I can go ahead and maybe insert — you can see shapes, smart art, charts, pictures, tables. I’ll just drop a picture in here really quickly. And I can move it around.

Again, you can see that great performance here. I’ll get it right where I want just using my finger. I can drag it here.

Let’s say I goof something up. Let’s say in the process of rotating it around or adjusting it, it’s not quite the way I want it to be. I can use the undo stack. We have multiple levels of undo. In fact, unlimited undo, unlimited redo. And a core reason for that is that we’re automatically saving all of the Office documents in this modern version of Office to the cloud, directly to OneDrive. And so that’s a great thing for customers, it’s a great thing for things like collaboration, it’s a great thing to have unlimited version history in these apps. (Applause.) You can applaud, it’s totally cool to do that.

Let’s go ahead and take a look at presentation mode. That is, of course, what people want to do when they work on their presentations.

And you can see, I can just navigate through here using my finger. I can go through, swiping. You can see all the transition effects, the beautiful graphics, animations.

We’ve begun to wire up some of the gesturing capabilities. So, for example, I can pinch and zoom, and I can jump to any slide in the presentation no matter where I am. I’ll just go to this table you see here. That’s a really nice feature for presenters.

I can swipe down from the top. We’ve also worked with the Windows team to enable inking in the application. So I can pick a pen. This is preliminary UI here. I can use either a stylus for precision — this time, I’m just going to use my finger, and I can go ahead and circle things, highlight things. You get the idea.

Here I can drop down again. Pick a different pen if I want, exit out of the drawing mode, go back, pinch and zoom again, drop back to a particular slide I’ve got in the presentation. Really simple, collaboration on the go using this touch-first experience with Office.

Now, as Dave talked about, one of the most important things we’re doing with these modern versions of Office is taking advantage of the Windows runtime to deliver these universal applications.

So what I’d like to do is ask the folks to put the phone experience up. And I want to show you this same application that I was just working on on the tablet. Same binary, same executable also works on the phone. So hopefully you guys can see that here.

I’ll go ahead and swipe. This is modern version of Office PowerPoint running on this Nokia phone. And I can swipe on the tablet, I can swipe here, back to the tablet. Again, you get this really consistent experience, full file fidelity across these two apps. So hopefully a really good example of the notion of universal Windows. I’ve got experiences for the phone, the tablet, PCs, large-screen devices — all single experience.

Thank you very much. Dave, back to you. (Applause.)

DAVID TREADWELL: Kirk, that was awesome. I think one of the best parts of that demo is how it shows that Microsoft is bringing our most sophisticated, our richest, our most important applications to the Windows runtime as Universal Windows Apps. So we think this can handle all scale of applications.

OK, the second theme I wanted to talk with you about today is how we’re adding innovations that support the investments that you’ve made in your code and your apps.

Based on your feedback, we’ve added hundreds of new features for Windows Phone 8.1. For example, new background triggers enable you to create apps that are always aware and can engage your customers in response to things like push notifications or geo fences.

Support for Bluetooth LE opens up new kinds of device scenarios like fitness, wearables, healthcare, home entertainment. We have new video-editing APIs that open up all sorts of new creativity and media scenarios for you and for your customers. And there are many, many more.

As we build these innovations, we’re working hard to have a technology continuum to give you a bridge from the code investments you have today to this feature.

Let me talk about what that means for those of you with existing Windows Phone apps first.

If you have a Silverlight Phone 8 app, it will, of course, continue to run on Windows Phone 8.1.

Next, if you want to take advantage of the new features that we’re adding to the platform, like the ones I just showed, you can easily update your app to be a Silverlight Phone 8.1 app. And third, if you not only want to take advantage of new functionality but also have your application run easily across devices as a Universal Windows App, you can migrate your app to a Universal Windows App.

We’re providing this technology continuum that lets you move forward and adopt the innovations at a pace that makes sense for you and your business.

No matter which of these approaches you choose, I want to let you know that we’re committed to making sure your apps continue to run on future versions of Windows and Windows Phone.

Let me just show you one great example of how this works in practice. One of the platform innovations in Windows Phone 8.1 is bringing together voice commanding with the power of Cortana. You can now get an incredibly simple, yet amazingly flexible, system that enables whole new ways for customers to interact with your apps.

Voice command in Windows Phone 8.0 enable customers to invoke your app by its name, for example, Flixster. And they allowed you to define a simple grammar, pre-existing phrases so that you can invoke specific commands like “Flixster, find moves near me.”

Well on Windows Phone 8.1, thanks to the power of Cortana, you no longer have to define grammars or long phrase lists. You can give Cortana’s speech recognition platform some hints, and she’ll do the hard work building and optimizing the grammars for you.

Everything Cortana knows about from everything in the dictionary, all the words in movies, musicians, all are now at your disposal. It’s like a natural command line for the future.

Let me show you one specific example. This demo is always fun, doing speech recognition demos in front of thousands of people on a massive PA system is often exciting.

This is a Twitter application where they’ve taken the advances that I just described to you on the Windows Phone platform and used that natural language processing to help me do a tweet.

Twitter, new tweet. Hello from Windows Phone 8.1, hashtag Cortana, hashtag awesome.

CORTANA: New tweet.

DAVID TREADWELL: Well, we were close. (Laughter.) (Applause.) I think we have a little more work to do on tuning the speech recognition engine for presentations in front of 5,000 people.

So I know that many of you in this audience have existing enterprise apps you’ve written using Win32 or .NET for the desktop. Well, we intend to provide you a great technology continuum for these apps and this code as well.

I’d like to show you just one of the things that we’re doing in the Windows 8.1 update to help you reuse more of your existing code.

Let me invite Harry Peirson on stage to show it off. (Applause.)

HARRY PEIRSON: Thanks, David. As you might imagine, we spend a lot of time talking to enterprises. And one thing we hear from them very consistently is this pressure they’re under to mobilize their workforce, to unchain their information workers from their desks and get them out to where the action is. Windows tablets are a great way to do that.

However, it turns out the typical enterprise has a significant investment in custom applications that they use to run their business. I know not everybody in this room does enterprise app development, but I’m sure you would all recognize a sort of canonical data access line-of-business application.

This is the order processing application for the Northwind Traders Company. Yes, I said Northwind. Older members of the Microsoft community will probably recognize that name. I figured that since we’re talking about leveraging existing code, I should leverage an existing sample database. (Laughter.)

Now, the great thing about Windows tablets is that they run Windows. I can take this application — this is a C# Windows form, ADO, old school, data reader application sitting on top of SQL Compact. It’s sitting on top of SQL Compact because this is an application that the sales people use.

They go out and take orders from customers, and they don’t really know what the network is going to look like when they get there, so they better bring all the data they’re going to need with them.

I can take this application and drop it on an x86-compatible tablet like Surface Pro and it will work just fine. But it won’t be a really good user experience, right? This is clearly an application that’s been designed for keyboard and mouse, not for touch. So users are going to be much more frustrated than they are productive.

What Northwind really wants is a touch-first Windows runtime version of this application. But they also can’t afford to just throw all of this code away, this code works. It’s already been written, it’s already been debugged, it’s already been tested, it’s already been running in production for years.

What they want is to be able to take the parts of this application that already work and combine it with a new user interface that’s designed for touch-first tablet computing. And with Windows 8.1 update, the new brokered components feature of Windows runtime, they can do just that.

Let’s see how it works. So this is my application running in Visual Studio. I wasn’t kidding when I said this is old-school ADO.NET code. Right? SQL CE connection, read next, blah, blah, blah.

What we’ve done here is that we have the form application — sorry. And if you look in the references section, you’ll notice that we have the Northwind data access layer as a separate component. And if we look at the Northwind data access component, this is where we see this existing code for communicating with the database, executing queries, doing that kind of thing.

Now, what I really want is to have a modern version of this. So what we have now is a new version of this data access layer. Now, I haven’t taken that code and moved it over, I’m actually referencing that same library directly like a normal reference.

This Windows runtime component is called brokered because it runs in a separate app broker process outside of the typical app container, which means it has access to the full power of Windows and .NET. (Applause.)

Now, as you might imagine, this is a feature that’s specifically designed for enterprise computing, and is only allowed for side-loaded applications, but that’s exactly the scenario we’re looking at here.

So I have this application, and I have a component here called database. And if we look at it, you’ll see that it’s basically just calling the old database code. In fact, what’s really interesting is that this is a — I said it was old school, right? This is a synchronous call. If we want our application to be fast and fluid, we know we don’t want to be doing that. So what I’m actually doing is I’m running that code on a background thread and automatically surfacing it as a Windows runtime asynchronous operation. So that way when I execute this query against the database, it doesn’t actually block my UI thread and I continue to have a great experience.

Now I can use that component. Here’s my Windows runtime application. There you can see the Northwind RT database component, and let’s see what it looks like.

Now, this is a much nicer version of the application. You’ll notice that I have a touchscreen here, so I’m able to touch on it. All I had to do was to basically rebuild the UI and leverage the existing code that I had after I wrapped it in the Windows runtime component.

And now I’m ready to go out and run this application on a Surface Pro or any other kind of x86 tablet. (Applause.)

Thanks, Dave.

DAVID TREADWELL: Great job, Harry. Thanks very much.

So again we care a ton about helping you support your investments and bring them forward to the future. The stuff Harry showed is a great example of the kinds of things we’re doing to help you bring your investments forward.

So to get to the third major theme of this talk, I want to talk about how Windows is enabling cross-platform apps.

This might come as a surprise to some, but we’re working hard to make cross-platform work better and be more capable for everyone, because we realize it is a critical need in today’s world. We know that lots of you want to have your apps work across many platforms, and we want to help you with that.

Not only do we want to participate but we also want to contribute to that world to make it easier for all of you, our customers.

Developers building games and apps today rely upon cross-platform frameworks, libraries, tools and services from a vast ecosystem. I want to thank the many partners delivering these building blocks for your universal Windows apps. On this slide you can see just some of them. Many of these, from game engines to ad service to Web frameworks to tools, are designed to help you share your code across platforms.

As one example, in less than nine months developers using Unity published more than 3,000 apps across the Windows and Windows Phone store.

More and more partners are bringing their libraries, tools and services to Windows every day, and we’re working hard with these partners and the open source communities, helping them to support the Windows platforms.

Of course, one of the most important cross-platform technologies is HTML in the Web. Windows Phone 8.1 brings the powerful, hardware accelerated IE11 down to phones. This means that you can have access to all of the latest and most important ACML features across all Windows devices. For example, this means you get WebGL, a great implementation that allows hardware-accelerated 3-D graphics.

There’s cutting-edge video playback. For example, we now support inline video playback on the phone. We support the media source extensions to allow adaptive streaming, adaptive bitrate streaming, without requiring any plug-ins for video and other media scenarios. It’s a leading-edge standard we’re embracing on the phone and on the PC.

And we have great developer tooling like full remote inspection with Visual Studio, JavaScript debut to either an emulator or a tethered device. These are huge for your productivity as a developer.

Not only these but so many more. The ones in this slide in bold are brand new for Windows Phone 8.1.

Clearly, HTML is going to continue to be a critically important way to develop experiences with reach across platforms, not just for PC but also for mobile.

One of the things I’m personally passionate about is interoperability. We are committed to providing a high-performance, interoperable HTML engine with the key features that make cross-platform development not only easier but also more capable for everyone. WebGL is just one example of that. In fact, let me demo it for you.

Here we have a take on the classic Web-based fish aquarium demo. This is based on WebGL. We call it FishGL. It’s a 3-D graphics benchmark.

The concept here is we blur the lines between native and Web experiences even more. We can pan around the scene that we have here, incredible performance, still running at 60 frames per second.

We thought it would be cool to switch views to see what the perspective is like from the fish’s point of view.

And so inside the aquarium you can see how the lines outside, the things outside the aquarium are actually wavy a little bit. This requires an incredible amount of processing horsepower to deliver.

So that’s the demonstration of what WebGL can do for Web applications exploiting amazing hardware-accelerated 3-D performance and what you can do with the Web for cross-platform apps. (Applause.)

Next let me show you the inline video playback support we just showed.

Here’s a Windows Phone 8.1 device. We have a link to a search on the YouTube website, a popular video website that I’m sure most of you are aware of.

We’ll pick a video and what will happen is when I start playing the video, it’s going to play inline. I can scroll around. I have seamlessly integrated controls, integrated right on top of the video. That’s a terrific implementation of video playback in the Windows Web platform. (Applause.) Thank you.

So we know that making a great user experience for an app requires more than just HTML. A few years ago, we introduced a Windows library for JavaScript or WinJS to help developers build great user interfaces on top of HTML.

What is WinJS? It’s really just a JavaScript library, a set of JS, CSS and HTML files. It gives you the infrastructure for building high-quality, modern user interfaces, including things like virtualized lists, app bars and much, much more.

We’ve used it to make a lot of beautiful apps ourselves, and developers like you are using it to make many more apps. It works on its own and it works alongside other JavaScript libraries.

Well, I’m pleased to announce that today we are taking our first steps to bring WinJS cross-platform, so you can use it to make high-quality, modern websites and apps. That’s right. (Applause.)

Because interoperability is so important, because you need your Web Apps and websites to run across platforms, WinJS will really help you do that, and it’s the basis of the HTML Web that we all know and love.

In fact, starting today, Microsoft OpenTech will be making WinJS available as an Open Source project under the Apache 2.0 license. (Applause.)

This is just the start of the project. You can find the source code on GitHub. We’d encourage you to check it out, see our road map of investments ahead, send us feedback and, yes, please, even make contributions to WinJS. (Applause.)

So I showed you today three things. We know you need to reach your customers across phones, tablets and PCs today. We know you’ve made huge investments in your existing apps, and that you need bridges to tomorrow’s innovations. We know you need to deliver apps and services not only on our platform but across device platforms. Windows will help you do all of these things.

Before I welcome Terry back up, I want to share with you a few announcements so you can start taking advantage of all the things I talked about.

The Windows 8.1 update is available on MSDN today for you as attendees of this conference and MSDN subscribers. You can put the Windows 8.1 update that Joe showed off, all the great new functionality there, on your PCs, and get going with it before it rolls our globally next week.

Visual Studio 2013 update 2 RC is available today. It provides everything you need to get started with developing apps for Windows and Windows Phone that we talked about in this presentation.

And third, as a developer you will be one of the first ones to get access to Windows Phone 8.1 on your devices. If you’re a registered Windows or Windows App Studio developer, starting this month you’ll be able to download and install Windows Phone 8.1 on your existing Windows Phone 8 devices.

Thank you very much. (Applause.)

END

Related Posts

Executive Keynotes, Day 2: Microsoft 2008

Remarks during the second day of Microsoft’s Professional Developers Conference 2008 from Ray Ozzie, Steven Sinofsky, David Treadwell, Scott Guthrie, and Takeshi Numoto. Los Angeles, Oct. 28, 2008