WEBVTT

00:00:03.350 --> 00:00:06.470
>> Ladies and gentlemen, please
welcome Satya Nadella.

00:00:16.370 --> 00:00:20.240
>> Good morning, everyone,
and welcome to Build 2015.

00:00:21.200 --> 00:00:25.350
It's exciting to be here at
Build and in San Francisco.

00:00:26.090 --> 00:00:32.230
In fact, I was just recounting, I've been
at every developer conference of ours

00:00:32.480 --> 00:00:37.940
since 1991, in fact the very first one as
a third-party developer and after that as

00:00:38.290 --> 00:00:41.900
an employee at Microsoft, and
it's just awesome to be here.

00:00:43.690 --> 00:00:47.240
I know we have a fantastic
show lined up for you.

00:00:47.490 --> 00:00:50.150
We have lots of things to talk about
and today's keynote but for the rest of the

00:00:50.440 --> 00:00:54.640
conference, lots of things to show you,
lots of announcements, many, many new

00:00:54.920 --> 00:01:00.710
things that I think are going to be very
exciting in terms of what you will make of

00:01:00.940 --> 00:01:04.400
them on day one and what you will
do on day two and thereafter.

00:01:06.540 --> 00:01:11.190
For me, in some sense, this conference

00:01:12.660 --> 00:01:24.160
is all about celebrating and challenging
the creativity, the ingenuity that you all

00:01:24.410 --> 00:01:32.090
bring to build new and great things on top
of platform innovations that we make

00:01:32.210 --> 00:01:33.390
available to you.

00:01:36.760 --> 00:01:40.250
And that phenomenon is not new.

00:01:42.080 --> 00:01:48.560
In fact, it goes back to the
very origin of our company.

00:01:50.600 --> 00:01:53.830
Microsoft was founded by two developers

00:01:55.530 --> 00:02:03.800
who had a bold ambition to empower other
developers to build new and great things.

00:02:05.250 --> 00:02:08.400
In fact, the tweet you see on the screen

00:02:09.250 --> 00:02:12.110
is the tweet from Paul Allen on our 40th anniversary.

00:02:12.840 --> 00:02:20.480
We turned 40 in April, and these are the
first lines of code that Bill and Paul wrote.

00:02:20.740 --> 00:02:24.800
It turns out Bill wrote the runtime and
Paul wrote everything else and there's

00:02:24.910 --> 00:02:29.340
this nice comment about we should put
better errors, so it started at the very beginning.

00:02:32.590 --> 00:02:41.890
And when you look at it, that ethos, a
lot has changed in the 40 years since.

00:02:42.190 --> 00:02:45.940
A lot of technologies have come,
a lot of technologies have gone.

00:02:46.200 --> 00:02:51.940
In fact, the very first basic interpreter
was written on a PDP 10 with an 8080

00:02:52.200 --> 00:02:57.860
emulator that was built so that you could
target the Altair Microcomputer.

00:02:58.990 --> 00:03:03.030
And in the 40 years, a lot of devices have
come and gone, a lot of technologies

00:03:03.290 --> 00:03:04.550
have come and gone, as they should.

00:03:06.130 --> 00:03:15.660
But what has remained constant is that
ethos, that core that we are a developer

00:03:15.900 --> 00:03:18.050
company and a platform company first.

00:03:19.390 --> 00:03:23.830
It is our mission to empower every person

00:03:23.990 --> 00:03:27.140
and organization on the planet to achieve more.

00:03:28.240 --> 00:03:33.700
And when we talk about empowering every
person, it starts by empowering every

00:03:34.190 --> 00:03:35.270
developer on the planet.

00:03:39.350 --> 00:03:43.900
What you will hear us talk about in
this conference and even in this morning's

00:03:44.130 --> 00:03:49.790
keynote is perhaps the broadest lens through
which we've viewed developers,

00:03:50.160 --> 00:03:52.500
development, and platforms.

00:03:55.640 --> 00:04:00.700
We're going to want developers from
student developers to startups to

00:04:00.940 --> 00:04:06.430
enterprise developers to ISVs, to people
writing mobile apps to people venturing

00:04:06.790 --> 00:04:08.840
into virtual reality and mixed reality,

00:04:09.640 --> 00:04:14.270
all of these developers to come explore
and take advantage of the platform

00:04:14.510 --> 00:04:18.110
innovation that you will see this morning
and throughout this conference.

00:04:20.520 --> 00:04:27.100
We also want to make sure that
we build bridges for you.

00:04:27.340 --> 00:04:28.790
We want you to be able to bring your

00:04:29.160 --> 00:04:36.990
skills, your technology choices, your languages
to our platforms and then build

00:04:37.340 --> 00:04:38.630
from there new and great things.

00:04:39.720 --> 00:04:46.930
That concept or that approach is something
that's going to be deeply ingrained in

00:04:47.300 --> 00:04:49.820
everything we do across all of our platforms.

00:04:54.790 --> 00:05:01.300
Over the last year, I've had a chance to
talk to many developers throughout the world.

00:05:03.230 --> 00:05:07.030
I met a couple of student developers,
student developers who won the Imagine Cup

00:05:07.270 --> 00:05:09.130
last year, from Australia.

00:05:09.990 --> 00:05:12.390
They built this fantastic mobile app that

00:05:12.680 --> 00:05:22.690
made it possible for you to be able to
detect anemia in children by just using

00:05:22.920 --> 00:05:24.450
a simple app and taking a selfie.

00:05:25.780 --> 00:05:28.300
And that app now is changing lives in

00:05:28.710 --> 00:05:31.180
Africa and other developing parts of the world.

00:05:32.270 --> 00:05:36.590
I had a chance to meet a middle-schooler
in the Bronx, a girl who built a robot

00:05:37.380 --> 00:05:40.460
that could walk the stairs.
And in her eyes, I could see that that

00:05:40.730 --> 00:05:43.690
was just the very beginning
of what she's going to do.

00:05:45.270 --> 00:05:48.910
I had a chance to meet some enterprise
developers in Germany working in an

00:05:49.170 --> 00:05:51.690
industrial equipment manufacturer,

00:05:52.780 --> 00:05:57.580
and they were fundamentally changing,
transforming their business to becoming

00:05:57.980 --> 00:06:00.190
a software company, a SaaS company.

00:06:03.170 --> 00:06:10.690
So I thought that it's perhaps appropriate
to kick off Build by talking

00:06:11.100 --> 00:06:12.610
to one such developer.

00:06:14.910 --> 00:06:19.460
In fact, he's a musician, who had a dream

00:06:20.190 --> 00:06:22.180
-- and he calls himself an accidental developer.

00:06:23.430 --> 00:06:29.300
But who had a dream to change
how music is composed.

00:06:30.850 --> 00:06:33.410
Please help me welcome David William Hearn.

00:06:36.650 --> 00:06:38.890
Hi, David.
>> Hi.

00:06:39.000 --> 00:06:40.750
>> Great seeing you >>
Great to be here.

00:06:41.000 --> 00:06:42.040
>> Thanks for coming up.

00:06:42.400 --> 00:06:46.120
Why don't you tell us a little bit about
your dream, your journey so far.

00:06:46.490 --> 00:06:49.720
>> Absolutely.
So music notation is probably something

00:06:50.090 --> 00:06:53.890
that a lot of you in this room haven't
thought about before, but it really is the

00:06:54.120 --> 00:06:56.700
written language of music.
It's almost like a coding language of

00:06:56.800 --> 00:06:59.640
music, actually.
In fact, it has some similarities with code.

00:06:59.890 --> 00:07:03.840
You can even write in C# or F#.
>> F#'s probably better for that.

00:07:04.200 --> 00:07:04.950
>> Maybe.

00:07:06.570 --> 00:07:09.960
Up until now, there's been two main ways
that you can really write music,

00:07:10.320 --> 00:07:14.230
traditionally, using pen and paper, which
is very creative, maybe not that

00:07:14.490 --> 00:07:20.140
convenient sometimes, or the digital way,
which is very laborious to input but very

00:07:20.410 --> 00:07:21.890
convenient once it's in that form.

00:07:22.340 --> 00:07:25.550
So I really wanted to make something where
you could take the creativity and the

00:07:25.690 --> 00:07:27.610
convenience and smash them together

00:07:27.850 --> 00:07:30.890
and create this brand-new way of writing music.
>> Amazing.

00:07:31.120 --> 00:07:33.220
Do you want to show us what
you built? >> Absolutely.

00:07:33.350 --> 00:07:33.960
Let's have a look.

00:07:34.600 --> 00:07:38.000
So StaffPad is handwriting recognition
for music notation.

00:07:42.940 --> 00:07:46.560
I've actually been working on a piece for
the last few weeks, a piece for string

00:07:46.690 --> 00:07:50.990
quartet and piano, and as you can see, I
can use touch to interact with the score.

00:07:51.120 --> 00:07:56.840
You can see we've got a big score here.
This is no nursery rhyme, and let's

00:07:57.090 --> 00:07:59.600
scroll to the end, and we've got
a couple of bars left to do.

00:07:59.840 --> 00:08:02.030
So I figured we could finish it up onstage.
>> For sure.

00:08:02.290 --> 00:08:03.950
You're talking to a music
illiterate, but go ahead.

00:08:04.800 --> 00:08:06.300
>> Well, I don't know how to run a big company.

00:08:07.400 --> 00:08:13.210
Okay, let's just take the pen and I'm
going to start writing in the bar.

00:08:13.440 --> 00:08:15.600
It's very natural.
The idea behind the app was that if you

00:08:15.840 --> 00:08:18.920
could write music, you should
be able to -- hey.

00:08:23.970 --> 00:08:26.530
If you can write music, you should be
able to know how to use the app.

00:08:26.800 --> 00:08:29.330
You don't need to really learn too much.
It's very intuitive.

00:08:29.940 --> 00:08:34.000
As I move into the next bar, the music
notation is recognized and turned into

00:08:34.120 --> 00:08:36.130
typeset notation.
>> That's very cool.

00:08:36.350 --> 00:08:41.290
>> Thank you.
>> I'm going to turn these off.

00:08:43.660 --> 00:08:44.890
Let's get rid of those.

00:08:46.740 --> 00:08:48.760
Fantastic.
This is actually interactive notation

00:08:49.010 --> 00:08:53.000
now, so I can add staccato dots, and maybe
I should slur some of these, too.

00:08:53.350 --> 00:08:56.110
Do you think? Slur means play
it like you're drunk.

00:08:56.590 --> 00:08:57.610
I'm going to get in so much trouble for that.

00:08:58.450 --> 00:09:01.810
Using touch, I can double-tap the bar,
select the bar and just pull this out,

00:09:02.050 --> 00:09:03.890
and this is the great thing about Surface and Windows.

00:09:04.280 --> 00:09:06.950
It was really the only platform that we
could do this for, because it really

00:09:07.190 --> 00:09:11.980
understands the difference between my fingers
and the pen, and that's really key

00:09:12.220 --> 00:09:15.100
to making this intuitive and natural.
I'm just going to take this last beat.

00:09:15.470 --> 00:09:20.020
I'm going to erase that using the pen eraser,
and I'm going to draw in a string

00:09:20.270 --> 00:09:27.700
run here and pull that up, and you can see
there we've got a nice flash string run up

00:09:27.820 --> 00:09:30.500
to the top.
So let me just do one last thing,

00:09:30.920 --> 00:09:34.420
double tap, copy this down.
>> That's cool.

00:09:35.990 --> 00:09:37.220
>> We don't want that.

00:09:38.190 --> 00:09:40.000
Okay, and now we can play this back.

00:09:45.870 --> 00:09:48.420
And there you go.
>> Awesome, awesome, awesome.

00:09:52.150 --> 00:09:55.140
What's been the reaction? I know
that this has been out for a few

00:09:55.250 --> 00:09:58.270
months, is it now? >> No, just
a few weeks, and the reaction

00:09:58.500 --> 00:10:01.380
has already been absolutely incredible,
breathtaking, really.

00:10:01.740 --> 00:10:03.100
We've heard from people all over the world.

00:10:03.350 --> 00:10:07.670
We heard from an 11-year-old composer
who's writing her second opera on the app

00:10:07.900 --> 00:10:08.990
-- not her first, her second.

00:10:09.470 --> 00:10:13.100
And a 91-year-old who's fallen back
in love with writing music again.

00:10:13.340 --> 00:10:17.810
It's really been -- the students are using
it in the classroom, and it's really just

00:10:17.940 --> 00:10:20.210
an incredible reaction.
It's been breathtaking.

00:10:20.340 --> 00:10:21.540
>> Awesome.
Thank you so much, David.

00:10:21.790 --> 00:10:23.510
Thank you.
Thanks a lot.

00:10:28.320 --> 00:10:32.820
>> That's what's most striking about
today's developers and all of you,

00:10:33.070 --> 00:10:40.490
which is one person or a small group of people
with a dream and a passion can have such

00:10:40.740 --> 00:10:45.300
huge impact, by taking advantage
of these platform technologies.

00:10:45.670 --> 00:10:49.870
Who would have thought that music composition
can be changed with touch and ink?

00:10:50.270 --> 00:10:55.960
And that's what we live for as a platform company.
We want to be able to take inspiration

00:10:56.190 --> 00:11:00.190
from the apps you build to drive platform innovation.

00:11:00.920 --> 00:11:07.740
So today's keynote is about three major
platform transformations and shifts.

00:11:08.760 --> 00:11:12.840
We want to talk about, first, our cloud platform.

00:11:13.560 --> 00:11:20.610
We aspire to build an intelligent cloud
back end for the world's applications

00:11:20.870 --> 00:11:22.430
running on all devices.

00:11:23.270 --> 00:11:29.500
We want to have the capability to
manage infrastructure spanning datacenters,

00:11:29.870 --> 00:11:32.280
so that means storage compute in the network

00:11:32.560 --> 00:11:37.480
that's not just about a datacenter as
a computer, but all of the datacenters

00:11:37.700 --> 00:11:40.790
coming together in support of these
intelligent applications.

00:11:41.560 --> 00:11:47.540
We want to have rich application services,
in particular data services, such as

00:11:47.790 --> 00:11:52.500
machine learning and democratize the access
to those capabilities so that every

00:11:52.740 --> 00:11:56.820
developer on every platform
can build intelligent apps.

00:11:58.770 --> 00:12:02.240
Second, we want to talk about Office as a platform.

00:12:03.440 --> 00:12:10.190
We want to move far beyond individual applications
and their APIs to building

00:12:10.730 --> 00:12:14.790
a rich graph of data as a platform.

00:12:15.770 --> 00:12:23.190
We want you to be able to consume that
graph, extend that graph, and we'll talk

00:12:23.320 --> 00:12:24.420
a lot about that.

00:12:25.720 --> 00:12:29.670
And lastly, we want to talk about Windows.

00:12:31.320 --> 00:12:35.540
Windows 10 represents a new generation of

00:12:35.840 --> 00:12:43.940
Windows built for an era of more
personal computing, from Raspberry Pi to the

00:12:44.420 --> 00:12:51.680
holographic computer, where the mobility
of the experience is what matters, not the

00:12:51.920 --> 00:12:53.620
mobility of the device.

00:12:54.720 --> 00:13:00.140
So to kick things off, let me have Scott
Guthrie come up on stage and talk about

00:13:00.280 --> 00:13:02.130
our cloud platform.
Thank you very much.

00:13:10.270 --> 00:13:11.340
>> Thank you.

00:13:11.570 --> 00:13:13.830
Good morning, everyone, and welcome to Build.

00:13:14.440 --> 00:13:18.240
Satya just talked about our three
core ambitions as a company.

00:13:18.720 --> 00:13:21.270
I'm now going to continue the conversation
and talk about the work we're

00:13:21.510 --> 00:13:23.150
doing to build the intelligent cloud.

00:13:24.390 --> 00:13:28.870
This is a broad ambition that spans a
wide range of cloud services at Microsoft,

00:13:29.470 --> 00:13:31.630
including Office 365 and Dynamics.

00:13:32.590 --> 00:13:36.590
Today, though, I'm going to talk about the
work we're doing to power this ambition

00:13:37.020 --> 00:13:37.990
using Azure.

00:13:38.920 --> 00:13:43.310
Azure is Microsoft's cloud computing
platform, and it enables you to move

00:13:43.430 --> 00:13:44.790
faster and do more.

00:13:45.970 --> 00:13:47.920
Azure is a hyper-scale cloud platform,

00:13:48.320 --> 00:13:53.130
and over the last several years, we've built
out Azure to run all over the world.

00:13:53.960 --> 00:13:57.990
The circles on this map indicate Azure
regions, which are made of clusters of

00:13:58.120 --> 00:14:00.790
datacenters where you can run deploy your code.

00:14:01.610 --> 00:14:05.510
Today, we have 19 unique Azure
regions open for business.

00:14:05.760 --> 00:14:09.960
That's more locations and countries than
both AWS and the Google Cloud combined.

00:14:10.740 --> 00:14:14.600
This enables you to run your applications
closer to your customers and employees

00:14:15.090 --> 00:14:18.370
than ever before and compete in
even more geographic markets.

00:14:19.210 --> 00:14:23.480
We continue to invest billions of dollars
each year building new infrastructure,

00:14:23.940 --> 00:14:27.590
and our cloud platform now manages
more than 1 million servers.

00:14:27.920 --> 00:14:31.280
This enables you to build apps without
having to worry about your cloud

00:14:31.560 --> 00:14:35.680
platform's capacity, and it enables you
scale your solutions to any size.

00:14:37.140 --> 00:14:41.070
Azure offers the choice and flexibility
of a full-spectrum cloud.

00:14:41.920 --> 00:14:47.220
It enables you to build apps that scale
from personal projects up to global-scale applications.

00:14:47.960 --> 00:14:52.180
You can start from scratch for new greenfield
apps or you can easily leverage

00:14:52.310 --> 00:14:53.950
your existing investments and skills.

00:14:54.950 --> 00:14:59.270
It's open and supports the ability to
target multiple devices, use multiple

00:14:59.530 --> 00:15:05.660
operating systems, programming languages,
frameworks, data services and tools.

00:15:06.870 --> 00:15:11.330
We allow you to put all your app in Azure
or support hybrid deployments that span on

00:15:11.580 --> 00:15:12.970
premises or other clouds.

00:15:13.830 --> 00:15:17.470
You can choose to use Azure just
for infrastructure and just use it for base

00:15:17.700 --> 00:15:21.630
compute storage and networking, but you
can also take advantage of a coherent set

00:15:21.870 --> 00:15:25.100
of highly engineered services to
build your apps even faster.

00:15:25.470 --> 00:15:29.740
And our cloud platform and tools combination
together deliver unmatched

00:15:29.980 --> 00:15:32.010
productivity and enable you to move faster

00:15:32.270 --> 00:15:34.110
and be even more successful.

00:15:34.870 --> 00:15:38.650
It's been a busy 12 months for the Azure
team since our last Build Conference

00:15:38.930 --> 00:15:39.780
a year ago.

00:15:40.120 --> 00:15:43.660
We delivered more than 500 new Azure
services and features in that time

00:15:44.040 --> 00:15:48.100
and have greatly expanded the footprint
and capabilities of what Azure delivers.

00:15:49.190 --> 00:15:52.470
And what we're seeing is as we've expanded
our feature set and as we've

00:15:52.740 --> 00:15:54.080
expanded or footprint around the world,

00:15:54.350 --> 00:15:57.510
we're seeing the usage of Azure
continue to rapidly grow.

00:15:57.870 --> 00:16:01.890
We have more than 90,000 new Azure
customer subscriptions now being created

00:16:02.020 --> 00:16:04.670
every month.
And these customers are creating some

00:16:04.900 --> 00:16:06.130
really amazing applications.

00:16:06.870 --> 00:16:11.490
More than 1.4 million SQL databases are
now being used by applications hosted

00:16:11.590 --> 00:16:12.530
inside Azure.

00:16:12.960 --> 00:16:16.620
We have more than 50 trillion objects
now stored in the Azure Storage system,

00:16:17.230 --> 00:16:23.050
425 million users in our Azure Active
Directory system, 3 million developers

00:16:23.540 --> 00:16:27.260
registered with Visual Studio Online services,
which are our online suite of

00:16:27.510 --> 00:16:28.690
developer SaaS offerings.

00:16:29.320 --> 00:16:32.430
And we're seeing the growth and traction
of Azure happen not just in the enterprise

00:16:32.910 --> 00:16:35.560
and business user space, but more than 40%

00:16:35.720 --> 00:16:39.780
of our Azure revenue and usage now
comes actually from startups and from ISVs.

00:16:40.990 --> 00:16:44.870
Behind these large momentum numbers are
some truly amazing customer stories.

00:16:45.470 --> 00:16:49.540
This slide contains some logos of just a
few of the companies doing great things in Azure.

00:16:50.040 --> 00:16:53.140
And throughout today's keynote, you're going
to hear me talk more about some of

00:16:53.390 --> 00:16:56.220
the specific stories and some of the
reasons why they're using Azure.

00:16:57.790 --> 00:17:01.970
One of the things we know is that a cloud
platform must offer the flexibility of choice.

00:17:03.440 --> 00:17:08.020
Azure enables you to use the best of the
Windows ecosystem and best of the Linux

00:17:08.140 --> 00:17:09.340
ecosystem together.

00:17:09.790 --> 00:17:13.670
Azure enables you to easily reuse the skills
you already have regardless of the

00:17:13.910 --> 00:17:15.200
programming languages you use.

00:17:15.840 --> 00:17:18.690
And we allow you to take advantage of
both core infrastructure capabilities

00:17:19.020 --> 00:17:20.390
and higher-level platform services.

00:17:21.120 --> 00:17:25.460
And Microsoft's unique and only hyper-scale
cloud provider that architects

00:17:25.880 --> 00:17:29.310
those higher-level services and program
model capabilities to run in multiple

00:17:29.540 --> 00:17:33.790
environments, including both on premises
datacenters that you already have, as well

00:17:33.890 --> 00:17:35.330
as other clouds besides our own.

00:17:37.040 --> 00:17:40.280
From the beginning with Azure, we've embraced
open source in a very deep way,

00:17:40.870 --> 00:17:44.780
and over this past year in particular
we've taken a number of significant steps

00:17:45.100 --> 00:17:46.670
to use open source even more broadly.

00:17:47.920 --> 00:17:51.780
Last year, we announced our plans to
deeply embrace Docker and the Docker

00:17:51.950 --> 00:17:56.270
ecosystem with both Azure and Windows Server
and make containers of fundamental

00:17:56.400 --> 00:17:58.080
part of our application platform.

00:17:59.160 --> 00:18:03.750
We've also open sourced core .NET
runtime technology and announced our plans to

00:18:04.030 --> 00:18:07.710
support it on multiple platforms, as well
as obviously make it first class when

00:18:07.940 --> 00:18:08.920
running within containers.

00:18:09.680 --> 00:18:12.880
And this combination is really powerful
and enables even more developer

00:18:12.990 --> 00:18:14.070
flexibility and choice.

00:18:14.840 --> 00:18:19.020
What I'd like to do to kick things off
is actually invite Ben Golub and Mark

00:18:19.120 --> 00:18:23.400
Russinovich on stage here to talk about
this work and show off a pretty cool demo

00:18:23.630 --> 00:18:25.480
of them in action.
So here's Ben.

00:18:33.720 --> 00:18:34.900
>> Thank you, Scott.

00:18:35.150 --> 00:18:39.020
So for those of you who are not aware, Docker
has just celebrated its second birthday.

00:18:39.880 --> 00:18:43.700
And so frankly, we're used to thinking of
Docker kind of like a human two-year-old.

00:18:44.200 --> 00:18:45.150
It occasionally stumbles.

00:18:45.400 --> 00:18:49.020
It occasionally spits up and keeps those
of us who are closest to it up at night.

00:18:50.000 --> 00:18:52.870
And so sort of a surprising to
be up here on stage at Build.

00:18:53.520 --> 00:18:56.700
In fact, I like to talk about the five
big surprises that we've had in working

00:18:56.950 --> 00:19:00.950
with Microsoft that all in many ways relate
to this notion of how we can take

00:19:01.120 --> 00:19:05.410
openness and portability and flexibility
and use it to empower developers.

00:19:06.120 --> 00:19:09.150
Now, if you're not familiar with Docker,
it was started two years ago by Solomon

00:19:09.390 --> 00:19:13.030
Hykes, who felt that developers fundamentally
are spending far too much of

00:19:13.300 --> 00:19:17.350
their time doing rework, worrying
about dependencies, worrying about servers,

00:19:17.470 --> 00:19:18.800
instead of just building awesome apps.

00:19:19.280 --> 00:19:23.360
And the initial innovation was, let's
make possible to take any application

00:19:23.590 --> 00:19:26.820
and its dependencies, package them up in
the digital equivalent of a shipping

00:19:27.070 --> 00:19:30.900
container, and enable any application
that's Dockerized to interact well with

00:19:31.080 --> 00:19:33.820
any other Dockerized application
and run on any server.

00:19:34.070 --> 00:19:38.750
Now, last October, when we went up to meet
with Microsoft we were proud of the fact

00:19:38.990 --> 00:19:41.870
that we'd gotten that working for Linux.
So you could take any Linux application,

00:19:42.110 --> 00:19:43.830
Dockerize it, and run it on any Linux server.

00:19:44.070 --> 00:19:48.350
And quite frankly, we thought we'd leave
Redmond with an agreement to make Docker

00:19:48.470 --> 00:19:51.630
for Linux run well on Hyper-V
or run well in Azure.

00:19:51.800 --> 00:19:55.790
But then we had the first of those big
five surprises, and the first surprise was

00:19:56.090 --> 00:19:58.260
that we were not only going to
work on Docker for Linux.

00:19:58.550 --> 00:20:00.100
We were going to work on Docker for Windows.

00:20:00.600 --> 00:20:04.830
And so we're going to enable the 4 million
Docker Linux developers to join all of the

00:20:05.090 --> 00:20:09.940
millions of Windows developers and make it
possible using standard Docker, using open

00:20:10.220 --> 00:20:13.020
source, to take any Windows application,

00:20:13.520 --> 00:20:15.550
Dockerize it and run it on any server.

00:20:16.640 --> 00:20:21.020
The second great surprise that we had
was this was not only about code.

00:20:21.270 --> 00:20:22.590
It was also about content and collaboration.

00:20:23.070 --> 00:20:26.090
Now, if you're familiar with Docker, you
know we have a service called Docker Hub

00:20:26.500 --> 00:20:28.610
that has about 120,000 Dockerized apps.

00:20:29.350 --> 00:20:33.900
Microsoft has not only integrated Docker
Hub into all of its developer platforms,

00:20:34.270 --> 00:20:38.250
but it is contributing actively to Docker
Hub, not just Dockerized Windows

00:20:38.390 --> 00:20:42.090
components, but all of these great,
new open-source .NET and .NET for Linux

00:20:42.350 --> 00:20:45.030
components, delivered again, as Docker
containers through the hub.

00:20:45.800 --> 00:20:49.680
The third great surprise that we had was
that Microsoft embraced the notion of what

00:20:49.900 --> 00:20:52.710
you need to do to make multi-container
apps work.

00:20:53.070 --> 00:20:55.620
And they embraced the notion that if you
want to make multi-container apps truly

00:20:55.880 --> 00:20:59.220
portable, you have to be open about
how you do orchestration, as well.

00:20:59.470 --> 00:21:03.070
And so we're so thrilled that Microsoft
has embraced Docker's Open Orchestration

00:21:03.360 --> 00:21:05.350
Initiatives, Compose, Machine and Swarm.

00:21:06.540 --> 00:21:11.950
Fourth great surprise, and yes, yes, there's
more, if you combine those three

00:21:12.060 --> 00:21:16.200
things, you're not only going to be able
to make great multi-container Windows

00:21:16.430 --> 00:21:20.600
applications or great multi-container
Windows applications, you'll be able to

00:21:20.820 --> 00:21:25.750
mix and match Windows containers and Linux
containers, which means you'll be able to

00:21:25.990 --> 00:21:29.780
use a Linux back end and a Windows front
end or vice versa, basically, choose the

00:21:29.920 --> 00:21:33.330
best damn tools for the best damn application
that you want to build and run

00:21:33.670 --> 00:21:34.510
it on any server.

00:21:35.360 --> 00:21:37.920
And the fifth and perhaps greatest surprise
that we've had in working with

00:21:38.160 --> 00:21:41.280
Microsoft is that this has happened quickly,
and everything that I've spoken

00:21:41.440 --> 00:21:44.990
about is either live or working
well in the lab right now.

00:21:45.250 --> 00:21:48.370
And so without further ado, I'd like to
bring Mark Russinovich, CTO of Azure

00:21:48.510 --> 00:21:52.000
onboard, to show you what happens when
you combine these great platforms together

00:21:52.360 --> 00:21:54.920
and again, empower developers.
Thank you.

00:21:56.130 --> 00:21:59.680
Thanks, and Mark, I love the shirt.
>> Thank you.

00:22:00.160 --> 00:22:02.080
It's a great shirt.
Good morning, everybody.

00:22:02.460 --> 00:22:05.640
All right, so what I've got right in
front of you here is an ASP.NET 5

00:22:05.910 --> 00:22:08.250
application, Fabrikam.
It's an e-commerce site.

00:22:08.720 --> 00:22:11.120
It's kind of a standard site, and I'm going
to be doing some dev test on it.

00:22:11.480 --> 00:22:15.320
The first thing I'd like to do is deploy
it to a Docker container running in

00:22:15.560 --> 00:22:16.910
a Windows Server machine.

00:22:17.410 --> 00:22:20.880
On this dev test box, I've got a virtual
machine running Windows Server with Docker

00:22:21.070 --> 00:22:24.910
container support, and I'm going to take
a look at the containers that I've already

00:22:25.160 --> 00:22:29.260
got running in that virtual machine
by executing the Docker PS command,

00:22:29.710 --> 00:22:31.060
which lists the active containers.

00:22:31.900 --> 00:22:33.590
You can see that I've got two containers active.

00:22:33.850 --> 00:22:37.960
One is a Minecraft server, and the other
one is a Node.js application, which shows

00:22:38.200 --> 00:22:41.710
that Docker containers on Windows support
many different runtimes and languages that

00:22:41.930 --> 00:22:42.880
you might be using.

00:22:44.050 --> 00:22:47.420
Now, what I'm going to do is package up
the Fabrikam application so that I can

00:22:47.570 --> 00:22:50.970
also deploy it into a container, and I'm
going to use several Docker commands here,

00:22:51.140 --> 00:22:54.370
one called Docker Build, which
will package it up.

00:22:54.660 --> 00:22:58.660
I'm going to tag the image that's produced
with the name Fabrikam, so that

00:22:59.000 --> 00:23:02.460
it's easy to remember, and then
go ahead and package that.

00:23:02.560 --> 00:23:06.490
And this is going to be executing a series
of steps, which take that ASP.NET 5

00:23:06.730 --> 00:23:09.150
application, package it up in a Dockerized image.

00:23:09.660 --> 00:23:14.380
And the next step is to run that container
with that image, so I'll type

00:23:14.620 --> 00:23:19.980
Docker Run -it to make it interactive,
and you'll see why I'm doing this in a second.

00:23:22.730 --> 00:23:26.980
Forgot the Docker command.
Docker Run and Fabrikam.

00:23:29.500 --> 00:23:31.070
Now, the reason that I've had it be

00:23:31.300 --> 00:23:34.750
interactive is so that we can print out
the IP address, so I can see the IP

00:23:34.880 --> 00:23:38.390
address of the website that's going to
launch that Fabrikam application.

00:23:38.780 --> 00:23:44.460
If I go back and do a Docker PS at this
point, you'll see that that Fabrikam image

00:23:44.800 --> 00:23:46.110
has been launched into a container here.

00:23:46.730 --> 00:23:50.690
And one of the really fun parts about using
the Docker client is that if you

00:23:50.890 --> 00:23:54.510
don't specify a name for your container,
it comes up with a random one, so let's go

00:23:54.610 --> 00:23:56.250
see what names it's come up with.

00:23:56.630 --> 00:24:00.690
It called this one tender_elio,
and look at that.

00:24:01.050 --> 00:24:04.650
That's -- what are the odds of
that coming up like that?

00:24:05.980 --> 00:24:09.230
So let's go take a look at that website
now, which is going to be active.

00:24:09.700 --> 00:24:11.090
I'll launch IE.

00:24:11.330 --> 00:24:18.480
The IP address is 10.50.0.122, and we're
hitting 10.50.1.002, and there we go,

00:24:19.170 --> 00:24:23.210
.NET running in a Windows Server
container, executed with Docker.

00:24:24.540 --> 00:24:28.050
But I'm showing you a lot of technologies
here some of you might not be familiar

00:24:28.340 --> 00:24:31.260
with, so just a quick raise of hands,
how many people have heard of Linux?

00:24:33.580 --> 00:24:36.660
Okay, for those people that are watching
online, about a third of the audience

00:24:36.780 --> 00:24:37.610
raised their hands.

00:24:38.380 --> 00:24:40.600
I'm just kidding.
Everybody raised their hands, of course,

00:24:41.580 --> 00:24:44.860
but what I'm going to show you is Scott
mentioned that we've got .NET support on

00:24:45.200 --> 00:24:48.200
Linux, and we have integrated it
with Docker containers, as well.

00:24:48.900 --> 00:24:54.780
So here, I've got the same exact application,
and this time, I'm going to

00:24:54.880 --> 00:24:58.650
SSH into a Linux virtual machine
and run the Docker PS command.

00:24:58.760 --> 00:25:01.250
You can see I've got no containers
running in that virtual machine.

00:25:01.620 --> 00:25:05.560
Instead of using Docker run to deploy it,
I'm going to deploy it right from Visual

00:25:05.680 --> 00:25:07.260
Studio, using the publish command.

00:25:08.430 --> 00:25:10.160
Right here, I've configured it to launch

00:25:10.390 --> 00:25:12.290
to that Docker host.

00:25:12.780 --> 00:25:16.250
Here's the IP address of that host.
When I type publish and press publish

00:25:16.450 --> 00:25:17.990
here, it's going to package it up

00:25:18.390 --> 00:25:23.450
and execute the same Docker client commands to
deploy that Fabrikam application onto Linux.

00:25:23.860 --> 00:25:26.250
If I go back and type Docker PS again,

00:25:26.620 --> 00:25:29.770
you'll see there's Fabrikam latest,

00:25:30.370 --> 00:25:33.000
and there's the name prickly_wozniak.

00:25:33.250 --> 00:25:34.810
Always fun to look at the names of the

00:25:35.190 --> 00:25:36.980
Docker containers it creates.

00:25:38.700 --> 00:25:40.300
Let's go see if that website's come up,

00:25:40.950 --> 00:25:44.260
and sure enough, there it is, and you can
see that that's the same IP address as the

00:25:44.490 --> 00:25:48.680
SSH command, so I'm looking at the Docker
container running on that virtual machine.

00:25:49.540 --> 00:25:51.920
But now there's more.
I'm doing dev test of this Fabrikam

00:25:52.050 --> 00:25:56.300
application, and I'd like to continue to
use Visual Studio to do that, and I can

00:25:56.660 --> 00:26:00.590
now with integration of container
debugging into Visual Studio.

00:26:01.060 --> 00:26:03.730
So I'm going to go to Server Explorer,
go to virtual machines.

00:26:04.100 --> 00:26:07.500
There's the Docker VM, and there's
the prickly_wozniak container.

00:26:08.230 --> 00:26:14.540
I attach the debugger and just as a normal
Visual Studio debugging experience,

00:26:14.780 --> 00:26:18.500
I've got the libraries loaded here.
And you can see, sure enough, there's the

00:26:18.600 --> 00:26:23.600
core CLR for Linux underneath this application
that I've just attached to.

00:26:24.590 --> 00:26:28.490
And now I want to set a breakpoint here
on the function that I'm debugging.

00:26:28.990 --> 00:26:31.710
I go back to the website, hit refresh,

00:26:32.340 --> 00:26:39.210
and I'm at the breakpoint, debugging .NET
in Linux, deployed into a Docker container.

00:26:39.770 --> 00:26:47.200
Thank you very much.
>> Thanks, Mark.

00:26:48.830 --> 00:26:51.920
So we've been developing the cross-platform
version of the .NET Core

00:26:52.180 --> 00:26:56.980
runtime in the open on GitHub the last
several months, and I'm excited today to

00:26:57.240 --> 00:27:01.120
announce that we're also releasing now
a preview edition of the runtime in

00:27:01.250 --> 00:27:05.400
precompiled binary format that you
can download and start using for Windows,

00:27:05.850 --> 00:27:07.770
for Linux, as well as for Mac.

00:27:09.820 --> 00:27:12.970
Now, it's an incredibly exciting
time in the world today.

00:27:13.470 --> 00:27:15.340
Disruption is changing the economy in

00:27:15.820 --> 00:27:18.460
a fundamental way, not just in technology

00:27:19.070 --> 00:27:21.330
but in traditional service industries, as well.

00:27:21.990 --> 00:27:26.740
Who would have predicted that both the taxi
and the hospitality business would

00:27:26.980 --> 00:27:30.870
have been turned upside down five years
ago, yet innovative companies like Uber

00:27:31.120 --> 00:27:32.950
and Airbnb are doing just that.

00:27:33.760 --> 00:27:38.580
Every organization is looking for ways
to engage customers better, empower their

00:27:38.820 --> 00:27:42.420
employees more and ultimately transform
the value they deliver.

00:27:42.910 --> 00:27:47.340
And developers and the applications
and solutions they build play an absolutely

00:27:47.620 --> 00:27:49.430
integral role in enabling this.

00:27:49.970 --> 00:27:54.850
In fact, it's increasingly digital apps
and technology that enable businesses to

00:27:54.980 --> 00:27:58.640
delight their customers and differentiate
from one another, and it's never been

00:27:58.920 --> 00:28:01.300
a better time I think right now to be a developer.

00:28:02.870 --> 00:28:07.290
Azure enables you to embrace
this transformation and make you and your teams

00:28:07.570 --> 00:28:08.730
even more successful.

00:28:09.160 --> 00:28:12.980
With Azure, we deliver a rich set
of higher-level services that provide fully

00:28:13.230 --> 00:28:16.570
engineered solutions that enable you
to move faster and achieve more.

00:28:17.180 --> 00:28:21.030
And the combination of our cloud platform
and tools really delivers unparalleled

00:28:21.380 --> 00:28:23.270
developer productivity as you do this.

00:28:24.520 --> 00:28:28.320
3M is a customer who I think provides
an excellent example of what Azure

00:28:28.540 --> 00:28:29.740
productivity can really deliver.

00:28:30.280 --> 00:28:35.050
3M is one of the largest companies in the world.
They have 88,000 employees and literally

00:28:35.180 --> 00:28:36.750
deliver tens of thousands of products,

00:28:37.360 --> 00:28:40.230
and 3M is using Azure to build the back ends

00:28:40.480 --> 00:28:44.710
for many of these products now, and they
love the agility that Azure provides them

00:28:44.970 --> 00:28:46.930
to move quickly and deliver even more value.

00:28:47.790 --> 00:28:51.750
And one of the initial projects they hosted
on Azure was an internal mobile app

00:28:52.030 --> 00:28:55.930
that they wanted to provide to their sales
force to sell a new offering that they had

00:28:56.140 --> 00:28:57.460
just actually come out with.

00:28:57.830 --> 00:29:01.230
And a small development team that actually
never used Azure before signed up on

00:29:01.460 --> 00:29:03.380
a Friday and basically spent the weekend

00:29:03.620 --> 00:29:07.380
building the app, and by the end of
the weekend had a fully production-ready

00:29:07.630 --> 00:29:11.740
version deployed on Azure, ready to roll
out to their sales force on Monday.

00:29:12.240 --> 00:29:15.780
And this ability to quickly create
robust, enterprise-ready applications with

00:29:16.020 --> 00:29:20.060
super-fast development cycles has really
provided 3M with incredible business

00:29:20.180 --> 00:29:23.760
agility and helps them move even faster
as an overall organization.

00:29:24.480 --> 00:29:28.380
And one of the great productivity solutions
Azure delivers is our Azure App Service.

00:29:29.190 --> 00:29:30.840
This is a really powerful offering that

00:29:30.990 --> 00:29:35.540
we released just last month and provides
a suite of capabilities that enable you to

00:29:35.780 --> 00:29:39.860
quickly build and scale both web and
mobile applications anywhere in the world.

00:29:40.600 --> 00:29:45.980
App Service allows you to write back-end
code logic using .NET, Java, Node.js,

00:29:46.220 --> 00:29:47.340
PHP and Python.

00:29:48.190 --> 00:29:53.350
You can easily enable continuous integration
workflows to it from online

00:29:53.570 --> 00:29:58.620
source repositories, like Visual Studio
Online, GitHub and Bitbucket, and that

00:29:58.910 --> 00:30:02.370
enables it so that every time a developer
checks in code into one of those services,

00:30:02.630 --> 00:30:07.470
Azure can automatically build it, test it,
deploy it to a private production slot,

00:30:07.830 --> 00:30:10.830
and if everything's looking good,
then basically turn it on to production and do

00:30:11.070 --> 00:30:12.970
full monitoring and analytics on top of it.

00:30:14.430 --> 00:30:18.280
Using Azure's built-in auto-scale capability,
you can set up rules so that

00:30:18.520 --> 00:30:22.150
once you deploy the application,
your application can automatically scale up

00:30:22.380 --> 00:30:23.720
based on incoming traffic.

00:30:24.480 --> 00:30:28.270
In fact, if you get a massive influx of
traffic, you can basically spin up a huge

00:30:28.380 --> 00:30:31.230
number of instances and handle
basically any amount of load.

00:30:31.510 --> 00:30:34.780
And when your traffic drops, Azure
can basically automatically shut down those

00:30:35.060 --> 00:30:38.730
resources to help you save money and
pay only for what you actually need.

00:30:39.680 --> 00:30:43.550
A couple cool features we've added
recently to the Azure App Service

00:30:43.770 --> 00:30:47.430
is enterprise connectivity, and this allows
you the ability to set up a virtual

00:30:47.660 --> 00:30:51.910
private network that allows you to connect
back to an on-premise enterprise network

00:30:52.170 --> 00:30:55.440
and access apps and data that you wish
to make available in the cloud.

00:30:55.670 --> 00:30:59.120
This makes it really easy to integrate
with existing enterprise solutions you

00:30:59.380 --> 00:31:03.390
already have, and Azure App Service also
now provides support for easily

00:31:03.500 --> 00:31:08.370
integrating data and functionality from
popular SaaS solutions like Office 365,

00:31:08.750 --> 00:31:11.780
Dynamics and Salesforce.
And you can use the logic app's

00:31:12.030 --> 00:31:15.920
functionality within App Service to
create long-running workflows to automate

00:31:16.030 --> 00:31:17.040
business processes.

00:31:18.030 --> 00:31:21.720
What I'd like to do is invite Scott Hanselman
here onstage to show off our

00:31:22.070 --> 00:31:25.230
Azure App Service and what
you can build with it.

00:31:33.620 --> 00:31:34.970
>> Hi, friends.

00:31:35.370 --> 00:31:39.710
We're really excited about the maker movement
and things like Raspberry Pis

00:31:39.940 --> 00:31:42.240
and 3D printers.
You really should pick up on of these.

00:31:42.400 --> 00:31:44.720
These are great.
And one of the applications that we've

00:31:44.950 --> 00:31:46.380
brought here, the Fabrikam application,

00:31:46.880 --> 00:31:53.000
is MakerSpace and they sell things like
Printrbot 3D printers and Netduino Wi-Fis

00:31:53.230 --> 00:31:57.550
and things like that, but they also offer
a service where I can go and upload a 3D print.

00:31:58.170 --> 00:32:02.350
I've got a 3D object here in 3D Builder
that you can go and get up on the Windows

00:32:02.630 --> 00:32:08.130
Store, so I'm going to upload him into
this application that is running in Azure

00:32:08.350 --> 00:32:12.580
App Service, and we bring him
up and then hit upload.

00:32:12.830 --> 00:32:15.920
This modern application -- there you go.
You've actually got a little JavaScript

00:32:16.050 --> 00:32:19.870
three.js there showing me the model.
It's going to tell me where I can pick it

00:32:20.110 --> 00:32:22.630
up and when, and this is now going
to go through a process.

00:32:22.920 --> 00:32:25.180
It's talking to a back end order service,

00:32:25.800 --> 00:32:31.540
the one that we saw, and let's switch over
into Visual Studio and see how we built that.

00:32:32.160 --> 00:32:38.820
Now, this is that ASP.NET 5 application,
using the .NET Core CLR and using modern

00:32:38.950 --> 00:32:45.550
techniques, that is talking to the back end.
This order details back end is running

00:32:45.780 --> 00:32:51.150
within the context of Azure, and we're
using HTML5, CSS3, all the kinds of modern

00:32:51.380 --> 00:32:55.740
things that you'd expect, and we're
actually bringing in Bower and NPM inside

00:32:55.980 --> 00:32:59.630
of Visual Studio.
And because I'm a web developer, I want to

00:32:59.780 --> 00:33:04.520
use my web development skills to make
other applications, so we also have the

00:33:04.780 --> 00:33:11.740
back end for the administrator, so when
someone at the store gets that 3D print,

00:33:12.230 --> 00:33:12.860
we can click on the order.

00:33:13.400 --> 00:33:17.740
They've got access to that print, so
they're using this application on

00:33:17.980 --> 00:33:22.560
a Surface to talk to the same order
API that the website does.

00:33:23.520 --> 00:33:28.720
We've got built into Visual Studio the
tools for Apache Cordova that are also

00:33:28.970 --> 00:33:33.920
using HTML and JavaScript, and we're reusing
some of that JavaScript, as well.

00:33:34.280 --> 00:33:39.550
And I can go and generate mobile applications.
I could certainly use C++ or tools like Xamarin.

00:33:39.920 --> 00:33:44.110
In this case, tools for Apache Cordova
have allowed me to create a mobile app so

00:33:44.470 --> 00:33:48.520
I can go and make purchases from this
store and also check on my order.

00:33:48.830 --> 00:33:52.920
You maybe have seen the Windows emulator
that runs on Hyper-V that comes with

00:33:53.150 --> 00:33:57.660
Visual Studio, but you may not be familiar
with the Android emulator.

00:33:57.920 --> 00:34:00.720
This is an Android emulator that
comes with Visual Studio.

00:34:00.950 --> 00:34:04.870
You have this, and I can go and check on
my order from that Android emulator

00:34:05.120 --> 00:34:09.920
running under Hyper-V at full speed, all
part of the Apache Cordova tools that are

00:34:10.270 --> 00:34:12.640
built in here.
It also includes debugging and a really

00:34:12.880 --> 00:34:16.480
amazing experience for people making
mobile applications on any platform.

00:34:17.460 --> 00:34:21.120
Let's switch over to Visual Studio Online

00:34:21.600 --> 00:34:25.920
and see how we're managing this code.
Now, in this case, our team is working on

00:34:26.280 --> 00:34:29.200
a Git repository that's running
in Visual Studio Online.

00:34:29.320 --> 00:34:32.410
You can see John Galloway is
making some changes here.

00:34:32.770 --> 00:34:37.090
But not only are we doing source control
within VSO, but we're also managing our

00:34:37.400 --> 00:34:41.700
backlog, so we can keep track of what's
working and what's not working in this

00:34:41.920 --> 00:34:44.690
Kanban board.
We've got full support for work items.

00:34:44.860 --> 00:34:49.560
But more interestingly to me is that workflow
that the team is going through.

00:34:50.050 --> 00:34:54.890
We've got the build running in Visual
Studio Online, as well, so this ASP.NET 5

00:34:55.120 --> 00:35:00.350
.NET Core CLR application is building
in VSO and then deploying out to the

00:35:00.720 --> 00:35:03.000
applications in Azure App Service automatically.

00:35:03.850 --> 00:35:11.040
Now, if I switch over to Azure, I can see
that application in the API host here,

00:35:11.340 --> 00:35:15.640
and when I move that into production, we
can click within Azure itself and see the

00:35:15.890 --> 00:35:17.240
deployments here, as well.

00:35:17.490 --> 00:35:22.810
So I can see a deployment that John put
out on Sunday, click on that, and that

00:35:23.030 --> 00:35:28.160
integration with Visual Studio Online, I
can see his commits, whether that build succeeded.

00:35:28.640 --> 00:35:31.120
So I check into Git, Visual Studio Online,

00:35:31.280 --> 00:35:35.110
it runs the build, runs the tests, makes
sure that everything is okay, sends it out

00:35:35.410 --> 00:35:38.890
into Azure.
Once it's in Azure, in production, I can

00:35:39.120 --> 00:35:41.750
also scale it.
I can automatically scale it.

00:35:42.240 --> 00:35:46.680
Coming here on scale by, I can set the number
of instances and a target range of

00:35:46.960 --> 00:35:50.090
the CPU.
So if the CPU goes above a certain amount,

00:35:50.560 --> 00:35:54.480
the application will scale, so I've got
the full life cycle from Visual Studio all

00:35:54.810 --> 00:36:00.560
up through production, and now this
application in production scaling,

00:36:01.040 --> 00:36:03.560
I'm going to want to get insights
into what's going on.

00:36:03.810 --> 00:36:07.920
You would expect to have great web insights.
We've got application insights showing us

00:36:08.030 --> 00:36:11.490
all sorts of details.
We have dependency tracking, all the way

00:36:11.720 --> 00:36:13.030
down to a single line of code.

00:36:13.570 --> 00:36:18.040
So from Visual Studio and Azure, you've
got the best DevOps that allow teams to

00:36:18.280 --> 00:36:23.290
create both web and mobile apps, but with
our recent integration of Hockey app,

00:36:23.460 --> 00:36:29.480
I've got the same deep insights for mobile applications.
So insight integrated into Azure, you can

00:36:29.600 --> 00:36:34.100
see here the mobile app, crashes,
events, sessions by country.

00:36:34.410 --> 00:36:38.290
I can go all the way down to a single line
of code, and here's actually the iOS

00:36:38.400 --> 00:36:42.280
version of this application.
And I can go and see specifically what

00:36:42.400 --> 00:36:46.500
worked and what didn't, down to an exact
line in this case of Swift code.

00:36:46.900 --> 00:36:50.700
So it's a 360-degree view of any platform

00:36:51.100 --> 00:36:53.690
from the highest level all the way down to

00:36:53.850 --> 00:36:56.050
the lowest level, to a single line of code.

00:36:56.760 --> 00:37:00.710
So this is a lot to take in.
Let's step back for a second and get an

00:37:00.920 --> 00:37:02.100
understanding about how this fits in.

00:37:02.380 --> 00:37:05.410
We've got web apps.
We've got mobile applications.

00:37:05.740 --> 00:37:08.700
Those are talking to APIs in the back end.

00:37:08.960 --> 00:37:13.910
When I submitted my order, it went to
this order API written in ASP.NET 5

00:37:14.060 --> 00:37:14.980
and the Core CLR.

00:37:15.160 --> 00:37:19.250
Those API apps can be written by me, or
they can be written by a third party or

00:37:19.650 --> 00:37:21.090
brought in from our marketplace.

00:37:21.570 --> 00:37:25.400
But a really interesting thing is this
concept of logic applications,

00:37:25.660 --> 00:37:29.130
because there's business processes, like
when that order gets completed, I want to get

00:37:29.380 --> 00:37:30.900
notified as a customer about that.

00:37:31.150 --> 00:37:35.250
So let's take a look at what a
logic application looks like.

00:37:39.250 --> 00:37:43.700
So let me switch over.
Here we go.

00:37:44.100 --> 00:37:48.830
So this is an application here where we've
got individual API applications.

00:37:49.250 --> 00:37:52.620
The SQL Connector is going to be looking
at the data for the orders, and then it

00:37:52.720 --> 00:37:58.770
flows through this workflow from one API
up to another, using a technology called

00:37:58.910 --> 00:38:03.050
Swagger, where that metadata is going
through the system into Salesforce,

00:38:03.340 --> 00:38:06.530
and then in this case, we're
posting a message to Slack.

00:38:06.910 --> 00:38:09.410
I can bring in that order API that we

00:38:09.660 --> 00:38:14.000
created in ASP.NET and then get
the details for that order.

00:38:14.620 --> 00:38:18.300
You see that that actually got populated,
using that Swagger details, and then it

00:38:18.460 --> 00:38:22.570
knows about previous things within this workflow.

00:38:22.780 --> 00:38:28.660
This is a reliable, durable workflow in
the cloud, and now I can click on Twilio

00:38:29.130 --> 00:38:33.100
and bring in the Twilio connector and then
send a message to let me know when this

00:38:33.320 --> 00:38:35.720
order is completed.

00:38:36.700 --> 00:38:42.170
So here I can access any aspects of what
is flowing through the system -- in this

00:38:42.450 --> 00:38:45.050
case, I'll look at the phone number,

00:38:45.540 --> 00:38:49.480
and we will have the from number, the to

00:38:49.760 --> 00:38:53.730
number, and then under text here,

00:38:53.970 --> 00:39:02.400
we're going to have hi person, Salesforce,
first name, your order is ready.

00:39:02.750 --> 00:39:06.290
This is the kind of common business process
that you don't necessarily want to

00:39:06.410 --> 00:39:08.570
write in code, because it changes a lot,

00:39:08.960 --> 00:39:12.690
and this is all happening in the cloud in
this business orchestration service called

00:39:12.910 --> 00:39:16.370
Logic Apps.
And you can integrate this with any

00:39:16.650 --> 00:39:21.060
existing application running on any language,
not just .NET, Node, Python.

00:39:21.290 --> 00:39:24.800
Anything that can create a Swagger
application can do this.

00:39:25.340 --> 00:39:31.650
Now, I think this is pretty amazing, but I
feel like perhaps I haven't sufficiently

00:39:31.780 --> 00:39:35.120
blown your mind, and I promised a number
of people that I would do that.

00:39:35.380 --> 00:39:40.060
So let's take a moment and then switch
over to our Macintosh here.

00:39:40.660 --> 00:39:43.910
Now, on this Mac, you can see that I
can load up Visual Studio Online.

00:39:44.170 --> 00:39:48.520
I can manage my code and write
my cross-platform .NET applications.

00:39:48.900 --> 00:39:53.410
And I can do that using any one of the
many editors that one would use on a Mac,

00:39:53.650 --> 00:39:58.200
like Emacs, Sublime and things like that,
but inevitably, I find myself going into

00:39:58.330 --> 00:40:01.370
Spotlight on a Mac and just wishing that
there was a member of the Visual Studio

00:40:01.650 --> 00:40:06.370
family that I could somehow
run, and now there is.

00:40:16.260 --> 00:40:20.800
I'm really, really happy to announce
that Visual Studio Code -- this is

00:40:21.060 --> 00:40:25.590
a code-optimized development tool that
runs natively on Windows, Mac and Linux.

00:40:25.960 --> 00:40:29.310
It supports dozens of languages
out of the box.

00:40:29.570 --> 00:40:33.850
It's a great application for all kinds of
things that you're going to do that are

00:40:33.970 --> 00:40:34.920
code focused.

00:40:35.420 --> 00:40:37.460
But it's not just a simple editor.

00:40:38.060 --> 00:40:42.910
It has deep insights into what's going on.
This is the same Fabrikam order details application.

00:40:43.140 --> 00:40:45.130
Here is a code peek.

00:40:45.510 --> 00:40:46.930
I can see the references.

00:40:47.320 --> 00:40:50.020
I'll go and go into order details.

00:40:51.760 --> 00:40:58.410
From here, I can hover over individual
objects, get info about them and help,

00:40:58.770 --> 00:41:03.530
and I get real IntelliSense, not just autocomplete.

00:41:04.030 --> 00:41:08.370
In this case, powered by the open-source
tools of Roslyn and OmniSharp.

00:41:09.380 --> 00:41:11.580
So this is pretty freakin' amazing.

00:41:12.060 --> 00:41:16.650
I can also do things like this.

00:41:17.110 --> 00:41:23.100
We'll bring in a little refactoring here,
make a change, save this, and I've got Git

00:41:23.940 --> 00:41:28.460
and difs, and I can push it to Visual
Studio Online, where it will then run

00:41:28.700 --> 00:41:32.910
through the process, be built, tested,
deployed and scaled to Azure, which

00:41:33.180 --> 00:41:35.250
is pretty fantastic.

00:41:35.980 --> 00:41:39.270
Visual Studio Code, this is still not

00:41:39.750 --> 00:41:41.260
really blowing my mind.

00:41:41.520 --> 00:41:45.340
I feel I could do even better.
So why don't we take a moment and switch

00:41:45.430 --> 00:41:47.250
over to Ubuntu?

00:41:59.280 --> 00:42:03.470
So now, I'm in my application.
In this case, I'm using a Mono

00:42:03.580 --> 00:42:08.980
application, and big thanks to the folks
at Mono who helped us with Mono 4.01 that

00:42:09.230 --> 00:42:13.000
this demo is running on.
I can now click on debug, launch an

00:42:13.240 --> 00:42:17.920
interactive debugging session.
So now I'm on Ubuntu in a .NET app,

00:42:18.230 --> 00:42:21.190
doing a debug session.
I've got local variables.

00:42:21.560 --> 00:42:24.590
I've got a call stack.
I've got breakpoints, all in this great,

00:42:24.840 --> 00:42:28.450
lightweight code editor, Visual Studio Code.

00:42:29.280 --> 00:42:34.980
This I think makes the point that Visual
Studio is now a family of tools for every

00:42:35.470 --> 00:42:40.520
developer, and Azure is the cloud
back end for everyone.

00:42:41.970 --> 00:42:46.990
And I just got a text message on my band
that my 3D print is being delivered.

00:42:47.360 --> 00:42:49.360
Oh, how nice.
That's great.

00:42:50.120 --> 00:42:52.520
Now my Scott action figure has a friend.

00:42:53.040 --> 00:42:55.790
Thank you, sir.

00:43:02.210 --> 00:43:04.970
>> Well, thanks, Scott.
That was kind of a great example of the

00:43:05.130 --> 00:43:06.950
type of end-to-end productivity that the

00:43:07.440 --> 00:43:11.560
combination of Azure and our Visual
Studio family now provides.

00:43:12.040 --> 00:43:16.640
You can see, as Scott mentioned, really
a 360-degree view from coding to deployment

00:43:17.070 --> 00:43:18.590
to testing to source control management to

00:43:18.770 --> 00:43:22.070
running and scaling your application.
It does it all.

00:43:22.570 --> 00:43:26.970
You also from the chairs saw our newest
edition to the Visual Studio family,

00:43:27.230 --> 00:43:28.660
which is Visual Studio Code

00:43:29.300 --> 00:43:32.440
Visual Studio Code is a code-optimized
editing environment.

00:43:32.720 --> 00:43:37.760
It's small, fast and provides both code
IntelliSense and debugging support, and as

00:43:38.170 --> 00:43:39.730
you saw, it has full integration for Git.

00:43:40.620 --> 00:43:45.020
And one of the things -- it can be used
on Windows, on Mac, as well as Linux

00:43:45.370 --> 00:43:48.670
development machines, and I'm really excited
to announce that we're going to be

00:43:48.920 --> 00:43:50.000
making it available for free.

00:43:57.930 --> 00:44:02.480
And even better, we're pleased to announce
that later today, the first download of it

00:44:02.840 --> 00:44:05.770
will be made available on all those
platforms for you to start using.

00:44:12.160 --> 00:44:16.440
Now, our mission with Visual Studio is
to provide best-in-class tools for every

00:44:16.580 --> 00:44:19.970
developer, and we now have tools
for developers who like lightweight

00:44:20.280 --> 00:44:23.610
code-optimized editors, as well as for
those looking for a full development

00:44:23.880 --> 00:44:25.090
enterprise IDE.

00:44:25.560 --> 00:44:30.200
And with Visual Studio Online, as Scott
showed, we now provide a full suite of

00:44:30.440 --> 00:44:32.390
developer services that run in the cloud

00:44:32.640 --> 00:44:37.310
that deliver a full application lifecycle
management experience, including source

00:44:37.440 --> 00:44:41.040
control, bug and work item tracking,
continuous integration builds,

00:44:41.510 --> 00:44:45.110
load testing, performance, crash analytics
and a whole bunch more.

00:44:45.730 --> 00:44:48.710
What's great is you can take advantage of
all of these services directly from any of

00:44:48.960 --> 00:44:50.390
our Visual Studio development tools,

00:44:50.560 --> 00:44:53.640
or you can also use them from any
other development tool, as well.

00:44:53.880 --> 00:45:01.990
And this really enables you to build
amazing applications in this mobile-first,

00:45:02.280 --> 00:45:05.700
cloud-first world, and we're really excited
to talk more about this in the

00:45:05.840 --> 00:45:09.160
breakout talks and all the great features
that are coming in Visual Studio this year.

00:45:11.160 --> 00:45:14.440
Now, Marc Andreessen wrote a famous article
a few years ago where he talked

00:45:14.680 --> 00:45:16.240
about how software is eating the world

00:45:16.420 --> 00:45:20.920
and about how companies will increasingly
deliver their value through online services.

00:45:21.420 --> 00:45:25.900
Today, more than 90% of all technology companies
are now delivering or building

00:45:26.310 --> 00:45:28.900
online SaaS services to deliver more value

00:45:29.160 --> 00:45:30.960
and better connect with their customers.

00:45:31.440 --> 00:45:36.310
And many of our biggest customers using
Azure today are using it to build

00:45:36.560 --> 00:45:38.760
and deliver SaaS services to their customers.

00:45:39.240 --> 00:45:43.190
This includes both born-in-the-cloud companies,
as well as enterprises that are

00:45:43.560 --> 00:45:46.110
reinventing themselves by becoming
technology firms.

00:45:47.240 --> 00:45:51.940
AccuWeather is a great example
of one of those companies.

00:45:52.390 --> 00:45:55.110
They're one of the largest weather-forecasting
services in the world.

00:45:55.530 --> 00:45:58.770
They're originally actually an AWS customer
and then switched to Azure to

00:45:58.980 --> 00:46:02.280
power their weather service.
They process more than 6 billion data

00:46:02.390 --> 00:46:06.590
requests each day through their APIs
for temperature and weather forecasts,

00:46:07.080 --> 00:46:08.590
and they use Azure for weather prediction,

00:46:08.930 --> 00:46:12.440
as well as to power all of their
iOS, Android and Windows Apps.

00:46:12.930 --> 00:46:16.110
DocuSign is another great example.
They provide an electronic signature

00:46:16.360 --> 00:46:17.680
signing SaaS service.

00:46:17.960 --> 00:46:22.040
They've been growing at 300% year over
year for seven years now, and they now

00:46:22.140 --> 00:46:26.480
service more than 120,000 enterprise customers,
and they're a fantastic example

00:46:26.710 --> 00:46:30.490
of a successful startup, and their
valuation is now worth billions.

00:46:31.090 --> 00:46:35.110
GE Healthcare is working to provide their
customers, who are doctors and hospitals,

00:46:35.590 --> 00:46:39.960
easier ways to collect, analyze and
report healthcare data, and they've deployed

00:46:40.080 --> 00:46:44.510
multiple SaaS applications on Azure,
while meeting the most stringent regulatory environments.

00:46:45.620 --> 00:46:49.110
This week at Build, we're going to talk
about a number of new technologies that

00:46:49.240 --> 00:46:53.990
we're delivering that enable you to build
great, high-scale SaaS services like these.

00:46:54.540 --> 00:46:57.520
One of the technologies we're going to
talk about is something we call Azure

00:46:57.650 --> 00:46:58.630
Service Fabric.

00:46:58.860 --> 00:47:02.300
Service Fabric is a high-control
distributed computing framework.

00:47:02.940 --> 00:47:07.430
We created it to power our own high-scale
cloud services, and we battle-hardened it

00:47:07.750 --> 00:47:12.680
over the last several years under extreme
loads and super-demanding requirements.

00:47:13.380 --> 00:47:17.090
It supports the ability to create
cloud services, composed of both stateless

00:47:17.490 --> 00:47:22.630
and stateful micro services, and it has
support for hyper-scaleout deployments,

00:47:23.030 --> 00:47:24.470
self-healing and quorum management,

00:47:24.730 --> 00:47:27.130
as well as the orchestration of code updates.

00:47:27.740 --> 00:47:32.380
And we're going to release the Service
Fabric SDK, make it available on both

00:47:32.630 --> 00:47:36.060
Windows as well as Linux systems, and the
first download of that will be available

00:47:36.320 --> 00:47:36.960
this week.

00:47:37.460 --> 00:47:40.890
And in addition to supporting Azure, you'll
also be able to use it to build

00:47:41.030 --> 00:47:45.530
great solutions that run in a multi-cloud
environment, and we have a great set of

00:47:45.760 --> 00:47:49.030
talks later today that will
go into more detail on it.

00:47:51.150 --> 00:47:55.960
Now, when you think about building great
SaaS applications, one of the things

00:47:56.090 --> 00:48:00.130
that's sort of fundamental to building those
is to be able to do great data management.

00:48:00.490 --> 00:48:04.220
And Azure supports a wide variety of
data storage and management solutions.

00:48:05.300 --> 00:48:09.130
You can use pretty much every commercial
or open-source data management offering on

00:48:09.420 --> 00:48:15.890
Azure, and Microsoft also optimizes
and delivers both relational and NoSQL data

00:48:16.130 --> 00:48:20.320
solutions as highly available managed services
that you can basically deploy and use.

00:48:20.690 --> 00:48:24.170
Our SQL Database offering is one
of our most popular offerings.

00:48:24.410 --> 00:48:26.530
It's a cloud-native database as a service.

00:48:27.080 --> 00:48:31.030
It's highly available, durable and
fault tolerant, and it enables you to store

00:48:31.360 --> 00:48:36.050
and manage data without having to worry about
infrastructure, patching, software updates

00:48:36.160 --> 00:48:38.960
or backups.
That's all built in as part of the service.

00:48:39.680 --> 00:48:43.430
You can provision a SQL Database in
just seconds and run it literally anywhere

00:48:43.690 --> 00:48:47.840
around the world, and you can set up a
SQL database to actively geo-replicate

00:48:47.960 --> 00:48:51.170
transactions across multiple Azure
regions while you're doing that,

00:48:51.660 --> 00:48:55.940
enabling automatic failover support within your
applications, as well as geographic scaleout.

00:48:56.680 --> 00:49:00.170
And we've added some great new features to
SQL Databases over the last few months,

00:49:00.550 --> 00:49:04.660
like elastic scale support, which enables
you to shard and scale out SQL Databases

00:49:04.900 --> 00:49:11.450
to be petabytes in size, and in-memory
column support, which gives you up to 100X

00:49:11.580 --> 00:49:14.440
performance improvements for
many core data scenarios.

00:49:15.280 --> 00:49:19.590
And because, again, SQL Database is offered
as a managed service as opposed to

00:49:19.860 --> 00:49:21.900
just a database inside a VM,

00:49:22.180 --> 00:49:26.810
developers are able to host, scale and
use databases in a true cloud-native way.

00:49:27.230 --> 00:49:30.100
In fact, up to 160,000 SQL Databases are

00:49:30.500 --> 00:49:35.230
now created or dropped every single day
using Azure for a wide variety of

00:49:35.530 --> 00:49:38.140
different scenarios.
What I thought I'd do is actually just

00:49:38.380 --> 00:49:42.040
talk about and show a nice video of one of
the customers that's using SQL Database.

00:49:42.170 --> 00:49:46.070
They actually have over 10,000 SQL Databases
running on Azure today, and this

00:49:46.280 --> 00:49:48.500
is Esri, who is the leading provider of

00:49:48.680 --> 00:49:52.580
geographic information services software.

00:49:53.030 --> 00:49:55.290
So what I'd like to do is roll the video
and talk about how they're taking

00:49:55.530 --> 00:49:56.230
advantage of it.

00:49:57.210 --> 00:49:58.900
[Video Plays].

00:49:59.880 --> 00:50:02.430
>> My name is Art Haddad.
I'm the Chief Technology Officer for

00:50:02.580 --> 00:50:04.140
location analytics at Esri.

00:50:04.310 --> 00:50:08.500
Esri has been a Microsoft Azure partner
from the very beginning days, and we've

00:50:08.620 --> 00:50:13.590
built a true SaaS offering in ArcGIS
online using Microsoft Azure.

00:50:14.080 --> 00:50:18.900
Esri uses Azure SQL Databases to geo-enable
business data of our users with

00:50:19.180 --> 00:50:20.850
mapping and analytic capabilities.

00:50:21.100 --> 00:50:24.330
There are major events out there that
take advantage to accommodate public

00:50:24.580 --> 00:50:28.780
safety or whatever it may be, but there's
also mission-critical scenarios like

00:50:29.100 --> 00:50:32.840
a government that needs to disseminate
public data in response to a natural disaster.

00:50:33.230 --> 00:50:36.830
People want to know where the latest
evacuation site is, or better yet,

00:50:36.990 --> 00:50:38.680
where to get fresh water and food.

00:50:38.830 --> 00:50:42.560
But when they make these maps and
data available over the web, sometimes, it goes viral.

00:50:42.980 --> 00:50:47.130
And when that happens, we have to be able
to scale on a moment's notice, and ArcGIS

00:50:47.250 --> 00:50:48.770
is that platform from which we can do that.

00:50:52.280 --> 00:50:56.650
Working on things that actually make
a difference in people's lives, that means something.

00:50:57.300 --> 00:50:58.930
[End Video].

00:51:09.480 --> 00:51:13.100
>> I'm excited to announce today a number
of great new enhancements to our SQL

00:51:13.380 --> 00:51:15.910
Database service that you can start using immediately.

00:51:16.550 --> 00:51:21.710
These include TDE support, which provides
the ability for you to ensure and control

00:51:21.930 --> 00:51:25.900
encryption at rest policies within
your databases, full-text search support,

00:51:26.150 --> 00:51:31.040
which enables you to run text queries against
your data, and a new capability I'm

00:51:31.180 --> 00:51:35.660
particularly excited about called elastic
database pool, which enables you to better

00:51:35.900 --> 00:51:41.100
manage lots of databases at even lower cost
and is perfect for SaaS solutions.

00:51:42.430 --> 00:51:45.850
One of the common challenges for developers
that are building SaaS-based

00:51:46.100 --> 00:51:50.330
applications that serve lots of B2B customers
is architecting for the right

00:51:50.450 --> 00:51:51.310
data model.

00:51:51.700 --> 00:51:53.630
One approach is to use a shared database,

00:51:53.950 --> 00:51:57.430
where you have lots of customers
sharing the same tables of data.

00:51:57.630 --> 00:52:01.630
This is good from a resource cost perspective,
but it introduces high

00:52:01.780 --> 00:52:04.040
operational complexity into your application.

00:52:04.980 --> 00:52:09.380
Now, another approach that many SaaS apps
use is to maintain a separate database per

00:52:09.630 --> 00:52:11.030
B2B customer.

00:52:11.680 --> 00:52:13.300
This provides great data isolation,

00:52:14.280 --> 00:52:18.330
and ensures that no two companies' data
is ever stored in the same database, but in

00:52:18.700 --> 00:52:22.060
the past, it's typically been more expensive,
since each database uses

00:52:22.180 --> 00:52:23.330
a separate set of resources.

00:52:24.010 --> 00:52:27.650
Today, we're really excited to introduce
our new Elastic Database Pool support,

00:52:27.900 --> 00:52:30.300
which gives you the best of both worlds.

00:52:30.770 --> 00:52:36.130
Elastic Database Pool allows you to
maintain completely isolated databases

00:52:36.530 --> 00:52:40.730
for each of your B2B customers but then
allows you to aggregate all of the

00:52:40.970 --> 00:52:43.020
resources necessary to run those resources

00:52:43.190 --> 00:52:45.730
or databases into a common resource pool,

00:52:46.150 --> 00:52:49.450
and this allows you to smooth out the
peaks and dips of different databases

00:52:49.820 --> 00:52:54.370
within your SaaS app and allows you to end
up using far fewer resources to run your application.

00:52:55.100 --> 00:52:58.440
And the end result is that it saves you
lots of money, while also improving the

00:52:58.590 --> 00:53:02.160
overall operational complexity
of running your SaaS solution.

00:53:02.540 --> 00:53:05.440
What I'd like to do is invite Lara on
stage to show this off in action.

00:53:09.490 --> 00:53:12.820
>> Thank you. Hi.

00:53:13.470 --> 00:53:17.020
We're going to walk through some great
new updates with Azure SQL Database

00:53:17.380 --> 00:53:19.930
and SaaS developers are going to love this stuff.

00:53:20.560 --> 00:53:25.040
As Scott just talked about, you can let
Azure dynamically manage your database

00:53:25.310 --> 00:53:28.330
resources using an Elastic Database Pool.

00:53:28.830 --> 00:53:31.960
And the best part is, this
could also save you money.

00:53:32.700 --> 00:53:36.430
When you first create a pool, one of
the decisions you need to make is,

00:53:36.780 --> 00:53:39.430
what databases should you even put in the pool?

00:53:40.400 --> 00:53:42.350
We've removed a lot of this guesswork.

00:53:43.390 --> 00:53:48.180
We're using machine learning behind the
scenes to produce a list of recommended

00:53:48.300 --> 00:53:50.300
databases to go into a pool.

00:53:51.830 --> 00:53:54.290
We're going to take that list of databases,
and we'll just add them.

00:53:55.750 --> 00:53:59.850
We want these databases to dynamically
use a pool of resources.

00:54:00.830 --> 00:54:05.260
So we have these visualizations that help
us properly size what that pool should

00:54:05.450 --> 00:54:09.340
look like, based on the databases
that we've selected.

00:54:11.040 --> 00:54:16.240
But what's also very important is that you
can specify the minimum and maximum

00:54:16.500 --> 00:54:19.250
performance characteristics of all of your databases.

00:54:19.790 --> 00:54:22.130
And, basically, what this means is,

00:54:22.300 --> 00:54:26.380
any database can have a spike in performance,

00:54:27.110 --> 00:54:29.970
but they're not going to end up being
a noisy neighbor to any of the other

00:54:30.230 --> 00:54:31.250
databases in the pool.

00:54:33.300 --> 00:54:34.900
Now, you don't have to worry about what

00:54:35.150 --> 00:54:39.450
size you're going to give your
database, S0, S3, S1.

00:54:39.830 --> 00:54:43.340
Just let Azure dynamically
figure that out for you.

00:54:43.700 --> 00:54:46.890
You're going to have the best cost for
your company, and you get the best

00:54:47.030 --> 00:54:48.990
application performance for your customers.

00:54:50.350 --> 00:54:52.340
Let's go through some developer stuff.

00:54:53.950 --> 00:54:59.990
We have this report, and this is a report
for the Fabrikam Company, and it allows

00:55:00.100 --> 00:55:03.360
franchise owners to see how their
stores are performing.

00:55:04.040 --> 00:55:06.790
The really cool thing about this report

00:55:07.430 --> 00:55:10.150
is that it's aggregating live data from

00:55:10.500 --> 00:55:13.180
all of the databases in our pool.

00:55:13.900 --> 00:55:20.190
We had 30 databases, and it's using a
single connection string and a single query.

00:55:21.680 --> 00:55:23.330
In a few weeks, we're going to deliver in

00:55:23.580 --> 00:55:25.940
preview elastic database query,

00:55:26.790 --> 00:55:32.030
and creating a report with a single connection
string against a group of databases will

00:55:32.270 --> 00:55:34.340
be as simple as a Select *.

00:55:35.790 --> 00:55:40.870
And finally, how do you manage updates
and changes when you're in a SaaS world?

00:55:41.230 --> 00:55:44.120
You have tens, hundreds, thousands of databases.

00:55:44.990 --> 00:55:47.380
How do you make updates to all of those databases?

00:55:48.320 --> 00:55:51.350
For example, our world, we may want to

00:55:51.680 --> 00:55:57.380
restrict the rows of data so that
each franchise owner only sees the data for the

00:55:57.640 --> 00:55:59.190
stores that they own.

00:55:59.360 --> 00:56:04.630
Well, Azure SQL Database delivered
row-level security some time ago.

00:56:05.120 --> 00:56:09.520
We want to implement that, but that's going
to require a change to all of our databases.

00:56:11.010 --> 00:56:16.580
To make any database change, any schema
change -- maybe you want to do

00:56:16.810 --> 00:56:21.290
a maintenance update,  we'll use
the new elastic database job.

00:56:21.940 --> 00:56:27.770
We'll take our standard T-SQL that we know
and love, and we're just going to just

00:56:28.020 --> 00:56:29.670
submit this.

00:56:29.820 --> 00:56:34.890
Click correctly.
Submit this as a job to our pool.

00:56:35.520 --> 00:56:37.820
We'll call this RLS for row-level security.

00:56:38.540 --> 00:56:42.690
So once I click run, my work is done.

00:56:43.200 --> 00:56:44.870
I let Azure do all the rest of the work.

00:56:45.610 --> 00:56:49.080
I don't have to write my custom script
that loops through all the databases.

00:56:49.680 --> 00:56:51.540
I don't have to manage retry logic.

00:56:52.220 --> 00:56:56.620
I don't have to think about how I'm going
to scale this to tens and hundreds

00:56:56.900 --> 00:56:58.340
and thousands of databases.

00:56:59.210 --> 00:57:01.370
Azure takes care of all of that for me.

00:57:02.390 --> 00:57:04.370
I can use this for maintenance jobs like

00:57:04.610 --> 00:57:06.540
rebuilding indexes.

00:57:06.920 --> 00:57:11.800
I can use this for other standard statistics
updates or just one-time

00:57:12.060 --> 00:57:14.280
updates, any kind of update like that.

00:57:15.530 --> 00:57:24.800
And after this completes running, we can
see it's already almost complete against

00:57:25.070 --> 00:57:26.130
all of our databases.

00:57:27.530 --> 00:57:32.080
And if we just give it a second and
we refresh our report, hopefully,

00:57:32.450 --> 00:57:37.000
Martina only sees the rows of data
for the stores that she owns.

00:57:38.120 --> 00:57:42.970
So now you've got these fantastic new tools
that will help really build robust

00:57:43.250 --> 00:57:47.060
SaaS applications using Azure SQL Database.
Thank you.

00:57:54.330 --> 00:57:57.970
>> So as you can see, we're adding lots
of great enhancements to our overall data

00:57:58.200 --> 00:58:02.720
story in terms of enabling you to
store, operationalize data, whether it's in

00:58:02.970 --> 00:58:04.650
a single database or across thousands of them.

00:58:05.300 --> 00:58:08.650
I want to switch gears now and talk also
now about how you can use analytics on top

00:58:08.770 --> 00:58:09.720
of that data.

00:58:10.450 --> 00:58:15.200
We're in a unique world right now in terms
of the expectations people have around

00:58:15.310 --> 00:58:19.370
intelligent apps, and companies that
embrace analytics will be much more

00:58:19.480 --> 00:58:23.480
competitive in this disrupted
economy than those who don't.

00:58:23.850 --> 00:58:28.080
Your data, combined with analytics, enables
you to answer business-critical

00:58:28.320 --> 00:58:29.660
questions and build much better apps.

00:58:30.170 --> 00:58:33.470
Questions like what other products would
a customer who's already purchased something

00:58:33.720 --> 00:58:34.850
from you want?

00:58:35.300 --> 00:58:38.080
What's the likelihood of a customer
of yours churning?

00:58:38.190 --> 00:58:40.370
What are the warning signs you should
watch out for before they do so?

00:58:41.250 --> 00:58:43.920
What is the price elasticity of your
products and services and how do you

00:58:44.070 --> 00:58:45.050
optimize for that?

00:58:45.370 --> 00:58:48.650
Do you have sufficient product availability
for the upcoming holiday or

00:58:48.900 --> 00:58:50.450
for a special promotion?

00:58:50.700 --> 00:58:54.370
Being able to answer these questions accurately
and use that insight to improve

00:58:54.600 --> 00:58:56.850
your applications can transform your business.

00:58:57.700 --> 00:59:00.880
Now, in the past, answering questions
like this was painful.

00:59:01.040 --> 00:59:02.250
Data warehouses took months to set up,

00:59:02.530 --> 00:59:04.800
and integrating analytic systems was hard.

00:59:05.180 --> 00:59:10.430
With Azure, we now provide a suite of
highly engineered analytic services that

00:59:10.780 --> 00:59:12.610
make answering these types of questions easy.

00:59:13.380 --> 00:59:16.930
It enables you to basically maximize the
value of each byte of data that your

00:59:17.130 --> 00:59:18.580
application stores and processes.

00:59:19.460 --> 00:59:22.930
Each of these services on the slide can
be provisioned in minutes, and composed

00:59:23.190 --> 00:59:25.330
together, they provide complete, full solutions.

00:59:26.330 --> 00:59:30.080
And today, I'm excited to announce two new
Azure services that we're launching that

00:59:30.430 --> 00:59:34.740
complement this existing offering even further
and make it even easier to unlock

00:59:35.020 --> 00:59:36.210
insights from data.

00:59:37.230 --> 00:59:41.680
Our new SQL Database Service makes it easy
for anyone to set up a data warehouse

00:59:42.080 --> 00:59:44.030
to aggregate and store data in just minutes.

00:59:44.830 --> 00:59:48.480
You can elastically scale the SQL
Data Warehouse service to store petabytes of

00:59:48.780 --> 00:59:52.900
data and independently scale compute to
match whatever resources you need to

00:59:53.140 --> 00:59:54.630
process it.

00:59:55.260 --> 00:59:59.080
Our data warehouse offering makes it easy
to interactively query and visualize all

00:59:59.430 --> 01:00:03.940
of the data stored within it, as well as
operationalize machine learning on top of it.

01:00:04.480 --> 01:00:06.910
And what I'd like to do is show
a quick video of it in action.

01:00:08.530 --> 01:00:10.090
[Video Plays.]

01:00:14.180 --> 01:00:17.800
>> Imagine, how could you make your business
more intelligent using data?

01:00:18.560 --> 01:00:21.590
Where do the digital customers
using your services come from?

01:00:22.180 --> 01:00:25.030
How can you engage them better
in improved customer churn?

01:00:26.180 --> 01:00:28.990
How would discounts affect your
inventory and margins?

01:00:31.780 --> 01:00:36.100
Imagine if you could use data to analyze
these questions and intelligently predict

01:00:36.220 --> 01:00:41.830
outcomes, but each question could take
hours, maybe even days, requiring more

01:00:42.090 --> 01:00:44.250
services than you have in any on-premise datacenter.

01:00:45.230 --> 01:00:49.910
But now, you can use Azure to add unlimited
compute power to your questions.

01:00:51.380 --> 01:00:53.380
Introducing SQL Data Warehouse.

01:00:53.730 --> 01:00:57.840
The new SQL Data Warehouse service is easy
to create and can be launched in minutes.

01:00:59.340 --> 01:01:02.540
It's the industry's first cloud data warehouse
that can grow or shrink to any

01:01:02.830 --> 01:01:09.980
size in seconds and which you can use to
intelligently answer any question using data.

01:01:12.080 --> 01:01:16.540
You can easily important data for any
data source and automate data pipelines

01:01:16.940 --> 01:01:20.440
from Hadoop, NoSQL and SQL Databases, IoT,

01:01:20.630 --> 01:01:23.030
as well as on-premise applications and systems.

01:01:24.360 --> 01:01:27.440
Then, you can easily create reports against
it, as well as visualize it.

01:01:28.350 --> 01:01:32.030
Simply connect Microsoft Power BI to a
SQL Data Warehouse in just seconds.

01:01:34.730 --> 01:01:38.900
It also unlocks the ability to easily
use predictive analytics.

01:01:39.180 --> 01:01:43.340
Azure machine learning can now
use petabyte-scale data with applications

01:01:43.580 --> 01:01:48.180
written in R and Python to analyze customer
product recommendations or assess

01:01:48.320 --> 01:01:49.640
customer churn risk.

01:01:50.350 --> 01:01:54.440
You can expose machine learning APIs that
your apps can call to more intelligently

01:01:54.580 --> 01:01:55.940
interact with your customers.

01:02:00.990 --> 01:02:05.090
A data warehouse that can scale up in
seconds enables Power BI and Azure machine

01:02:05.240 --> 01:02:13.340
learning to tap into unlimited query power,
so you can visualize and explore

01:02:13.580 --> 01:02:14.740
unlimited scenarios.

01:02:17.640 --> 01:02:21.430
The power to use data to build intelligent
apps has never been greater.

01:02:23.440 --> 01:02:25.420
[End Video].

01:02:37.430 --> 01:02:41.190
>> Using our new SQL Data Warehouse
service, you can easily stand up

01:02:41.310 --> 01:02:43.310
and aggregate data from any source.

01:02:43.860 --> 01:02:47.660
You can archive data from your operational
SQL or NoSQL databases.

01:02:48.260 --> 01:02:50.010
You can also then aggregate that data

01:02:50.200 --> 01:02:54.110
from on-premises data like an SAP
system or a Dynamics system.

01:02:54.880 --> 01:02:59.060
You can also easily aggregate data from
a Hadoop cluster and be able to import any

01:02:59.310 --> 01:03:00.810
type of data from that.

01:03:01.110 --> 01:03:04.410
Now, once your data is in the data warehouse,
you can then easily visualize

01:03:04.750 --> 01:03:07.910
and interact with it using
our new Power BI service.

01:03:08.150 --> 01:03:11.630
This provides a rich way that you
can visualize your data and ask questions of it.

01:03:12.310 --> 01:03:13.940
You can also run reports against it,

01:03:14.190 --> 01:03:20.540
as well as stand up and use machine learning
to create predictive models on top of that data.

01:03:21.390 --> 01:03:24.340
Now, one of the things that makes our
machine learning service so powerful

01:03:24.690 --> 01:03:28.430
is that once you create a predictive model
with it, you can then expose it as an API

01:03:28.890 --> 01:03:31.280
that your apps can then call and use,

01:03:31.540 --> 01:03:34.840
and this basically means the more data
you get, the smarter your apps get, and it

01:03:35.140 --> 01:03:39.490
creates a virtuous cycle that really allows
you to build some truly amazing systems.

01:03:41.110 --> 01:03:46.640
Now, there are other data warehouse offerings
in the market today, and AWS has

01:03:46.750 --> 01:03:49.540
seen a good uplift with its Redshift offering.

01:03:50.030 --> 01:03:53.000
I thought I'd just spend a little bit of
time talking about how now Azure is even better.

01:03:54.090 --> 01:04:01.340
Unlike Redshift, you can independently adjust
the amount of compute and storage

01:04:01.700 --> 01:04:03.150
that you use with a SQL Data Warehouse.

01:04:03.540 --> 01:04:07.740
This allows you to reduce costs and pay
only for what you actually need.

01:04:09.600 --> 01:04:15.470
You can automatically scale up your
data warehouse in seconds.

01:04:15.940 --> 01:04:19.430
This is a big difference versus Redshift,
where typically it takes hours or even

01:04:19.550 --> 01:04:23.190
days to rescale your data warehouse, and
your data warehouse goes into a read-only

01:04:23.440 --> 01:04:24.750
mode with perf degradation.

01:04:25.040 --> 01:04:28.790
This allows you to basically increase
and decrease pretty much at will.

01:04:29.370 --> 01:04:35.270
Redshift doesn't have the ability to pause
a cluster, and so unlike SQL Data

01:04:35.410 --> 01:04:38.760
Warehouse, where you can pause when you no
longer need your data warehouse and pay

01:04:38.920 --> 01:04:41.810
only for storage.
This allows you to reduce costs and pay

01:04:42.020 --> 01:04:43.560
only for what you actually need.

01:04:44.170 --> 01:04:48.010
A great example of that might be at the
end of the month or the end of a quarter,

01:04:48.470 --> 01:04:50.760
when you need a data warehouse.
When you no longer need it, just turn it

01:04:51.070 --> 01:04:52.430
off, and you're not having to pay for anything.

01:04:54.260 --> 01:04:58.830
Our SQL Data Warehouse runs not just in
Azure but can also be deployed and run in

01:04:59.210 --> 01:05:01.920
an on-premises environment, unlike others.

01:05:02.280 --> 01:05:06.860
And from a compatibility and feature set
perspective, SQL Data Warehouse provides

01:05:07.010 --> 01:05:11.720
a full SQL experience and allows you to
build super-powerful applications with ease.

01:05:12.210 --> 01:05:15.320
So we're really excited about what
SQL Data Warehouse delivers.

01:05:15.670 --> 01:05:19.410
We think this is really a perfect opportunity
for you to build and analyze

01:05:19.630 --> 01:05:22.540
data in a really rich way, and it's going
to allow every developer to get more

01:05:22.810 --> 01:05:24.520
insights from the data they have.

01:05:26.380 --> 01:05:29.240
Now, one of the most exciting opportunities
I think for every business

01:05:29.470 --> 01:05:33.030
out there is to use the Internet of things
to transform how they build products

01:05:33.410 --> 01:05:37.320
and how they engage with customers, and
we have some fascinating use cases of IoT

01:05:37.670 --> 01:05:39.380
solutions built now on Azure.

01:05:40.260 --> 01:05:45.210
Ford is adding IoT sensors to all of
their vehicles to improve the overall car

01:05:45.420 --> 01:05:49.870
owner experience, and they've built an
IoT back end solution on Azure to collect

01:05:50.010 --> 01:05:51.410
and process all of this data.

01:05:51.810 --> 01:05:54.760
And then they're connecting it with
the customer information that they already

01:05:55.000 --> 01:05:59.010
store within apps they own inside their
own on-premises datacenters and providing

01:05:59.230 --> 01:06:00.620
a full, complete solution.

01:06:01.210 --> 01:06:05.870
Rockwell Automation has partnered with one
of the biggest energy super-majors out

01:06:06.120 --> 01:06:10.070
there and is basically now running
unmanned Internet-connected gas dispensers.

01:06:10.460 --> 01:06:15.010
Each dispenser emits real-time management
information, which they can basically then

01:06:15.240 --> 01:06:18.850
use machine learning on top of to
detect anomalies and predict when proactive

01:06:19.120 --> 01:06:21.210
maintenance needs to be done on the machines.

01:06:22.460 --> 01:06:24.640
And my favorite example is probably the NFL.

01:06:25.210 --> 01:06:29.810
Most teams in the NFL now use the X and
Os Thundercloud platform to record,

01:06:30.160 --> 01:06:34.670
analyze and share game and player data
in near real time during the game.

01:06:35.410 --> 01:06:37.040
This Thundercloud solution runs on Azure,

01:06:37.460 --> 01:06:41.520
and in addition to providing real-time statistics
and analysis on plays, it also

01:06:41.760 --> 01:06:44.270
records, encodes and uploads video that

01:06:44.720 --> 01:06:47.010
can be used for postgame analysis.

01:06:48.210 --> 01:06:51.870
Let's walk through some of the canonical
services that you can use in Azure to

01:06:52.240 --> 01:06:53.830
build these types of IoT back ends.

01:06:54.570 --> 01:06:59.560
Using the Azure Event Hub service, which
we released just last fall, you can now

01:06:59.670 --> 01:07:03.830
ingest and process tens of millions
of IoT messages per second.

01:07:04.810 --> 01:07:08.870
You can use the Azure Stream Analytics
service, which we made generally available

01:07:09.160 --> 01:07:13.240
this month to perform near-real-time analytics
on top of these IoT messages.

01:07:13.780 --> 01:07:18.160
And you can operationalize it using
a combination of Power BI to create rich

01:07:18.280 --> 01:07:21.270
data visualization dashboards
of the stream data.

01:07:22.480 --> 01:07:26.680
And you can optionally now store the raw
data, or more commonly a subset of that

01:07:26.940 --> 01:07:30.740
data, inside any of these databases that
we run inside Azure, and you can now store

01:07:30.880 --> 01:07:35.550
the raw data within our new Data Lake
service that we're making available

01:07:35.790 --> 01:07:37.110
and announcing this week.

01:07:38.370 --> 01:07:41.390
Now, this new Data Lake service that we're
announcing today is really a revolutionary

01:07:41.690 --> 01:07:44.000
way to store and process data.

01:07:44.850 --> 01:07:46.640
We've built the new Data Lake service

01:07:46.890 --> 01:07:51.480
using more than a decade of real-world
learnings, managing exabytes of data for

01:07:51.840 --> 01:07:53.160
our own Microsoft services.

01:07:54.000 --> 01:07:58.440
And the Data Lake service allows you to
store literally an infinite amount of data.

01:07:59.080 --> 01:08:03.030
You can create accounts that store exabytes
of content with individual files

01:08:03.520 --> 01:08:04.840
that are up to a petabyte in size.

01:08:05.340 --> 01:08:08.690
And this infinite capacity allows you
to keep data in its original form,

01:08:09.250 --> 01:08:13.790
whether it's IoT data, log files or
any other non-relational structure.

01:08:15.160 --> 01:08:19.630
You can then run high-throughput, low-latency
analytic jobs to analyze

01:08:20.120 --> 01:08:21.790
and process this data at any scale.

01:08:22.570 --> 01:08:26.000
You don't have to worry about setting up
or managing your own clusters to do this.

01:08:26.360 --> 01:08:30.900
Instead, you can focus on the task at hand
that you want to get accomplished,

01:08:31.480 --> 01:08:35.430
and the service will automatically scale
out for you and apply the appropriate

01:08:35.550 --> 01:08:36.750
resources to get it done.

01:08:37.490 --> 01:08:40.640
And the service provides built-in enterprise-grade
security support,

01:08:40.740 --> 01:08:44.720
enabling you to securely lock down control
and access to any data that you store

01:08:44.850 --> 01:08:45.640
within it.

01:08:46.370 --> 01:08:50.290
And one of the great things about the Data
Lake service is that it exposes data

01:08:50.770 --> 01:08:53.290
using the standard Hadoop HDFS API,

01:08:54.000 --> 01:08:57.950
and this enables you to actually leverage any
analytic software already out there that

01:08:58.430 --> 01:09:00.350
supports HDFS.

01:09:01.140 --> 01:09:05.120
This allows you, for example, to run
standard Hadoop jobs and Hadoop workloads

01:09:05.490 --> 01:09:07.880
on top of anything stored inside the Data Lake.

01:09:08.740 --> 01:09:12.720
You can take advantage and write
R applications using our new Revolution R

01:09:12.940 --> 01:09:17.910
distribution and be able to now have those
scale out and query against literally

01:09:18.150 --> 01:09:19.350
exabytes of content.

01:09:20.260 --> 01:09:25.300
You can also stand up and use Cloudera
as well as Hortonworks clusters to access

01:09:25.610 --> 01:09:28.630
and run analytics stored inside
the Data Lake, as well.

01:09:28.900 --> 01:09:32.050
This gives you maximum flexibility and enables
you to derive even more insight

01:09:32.400 --> 01:09:34.320
from the data that you ultimately stored.

01:09:35.780 --> 01:09:40.050
So Azure now has we think the richest
analytic capabilities of any cloud

01:09:40.660 --> 01:09:42.880
and enables you to build intelligent apps

01:09:43.120 --> 01:09:45.170
that are highly differentiated for your customers.

01:09:45.770 --> 01:09:49.270
And this morning, I've talked about some
of the types of applications you can do

01:09:49.410 --> 01:09:53.260
with that, that you can use to drive your
business, disrupt businesses or grow profits.

01:09:55.000 --> 01:09:59.070
This technology can also be used to really
change the world in non-business ways,

01:09:59.360 --> 01:10:02.910
as well, and one of the things I'd like to
do is invite onstage a customer of Azure,

01:10:03.260 --> 01:10:06.440
who's doing just that, and that's JustGiving,
who basically optimized

01:10:06.720 --> 01:10:11.520
philanthropic giving campaigns and helped
funnel money into good causes.

01:10:11.890 --> 01:10:15.360
And what I'd like to do is invite Mike
Bugembe onstage to talk about what they do

01:10:15.520 --> 01:10:19.920
and how they're doing it with Azure.
>> Thank you, Scott.

01:10:23.810 --> 01:10:25.550
Great.
Good morning.

01:10:26.040 --> 01:10:28.080
This is what I'm going to
talk to you about today.

01:10:28.360 --> 01:10:29.700
This is what we've built on the platform.

01:10:30.380 --> 01:10:31.920
We call it the Give Graph.

01:10:32.280 --> 01:10:36.040
It's a set of complex algorithms that
will fundamentally change the way that you

01:10:36.270 --> 01:10:39.070
and I interact with causes that we care about.

01:10:39.610 --> 01:10:41.320
It's going to change the way we give.

01:10:41.850 --> 01:10:44.870
But to give you some context, let me tell
you a little bit about our company first.

01:10:45.110 --> 01:10:49.040
We're based in the UK, and we're the
largest social giving platform.

01:10:49.490 --> 01:10:54.560
We enable people to raise money and
do amazing things for the causes and for the

01:10:54.680 --> 01:10:56.320
charities that they care about.

01:10:56.810 --> 01:10:58.560
Some people decide to do the marathon.

01:10:58.930 --> 01:11:02.410
Obviously, recently, people were throwing
buckets of cold water on their head,

01:11:02.770 --> 01:11:04.670
all in the name of charity.

01:11:04.930 --> 01:11:10.110
And we've been fortunate in having around
23 million people from over 160 countries

01:11:10.480 --> 01:11:17.040
in the world do this, and they've raised
in excess of $3b for charity and for good causes.

01:11:18.300 --> 01:11:22.890
And this has taken us a lot closer to our
goal, which is to ensure that every great

01:11:23.010 --> 01:11:25.160
cause gets the funding that it requires.

01:11:26.720 --> 01:11:29.930
Now, we live in a world where we have billions
of people who have that natural

01:11:30.040 --> 01:11:33.040
desire to give, and if everyone did that,

01:11:33.460 --> 01:11:34.960
we would eradicate poverty.

01:11:35.980 --> 01:11:37.810
We would put cancer out of business.

01:11:38.780 --> 01:11:42.250
Now, our team had the task of trying
to understand why that isn't happening,

01:11:42.530 --> 01:11:44.750
using analytics, using machine learning

01:11:45.210 --> 01:11:49.160
and getting a real understanding as to how we
think and how we make that decision to give.

01:11:49.790 --> 01:11:55.300
And our analytics has identified three key
things that our product needed to use data for.

01:11:56.000 --> 01:11:59.560
The first is that it needed to change giving
from being a transactional activity

01:11:59.930 --> 01:12:01.830
to something that's far more engaging.

01:12:02.700 --> 01:12:04.630
It also needed to be personal, and of

01:12:04.900 --> 01:12:06.560
course, it needed to be social.

01:12:07.090 --> 01:12:10.160
After all, we've solved some of the
biggest problems as the human species by

01:12:10.640 --> 01:12:12.810
connecting with each other and collaborating.

01:12:13.890 --> 01:12:18.040
But at the heart of all of this is that
we needed to make giving personal,

01:12:18.530 --> 01:12:21.870
which for us means that we need to understand
what you specifically care about.

01:12:22.380 --> 01:12:26.250
traditional ways of trying to
address personalization, we would use things like

01:12:26.530 --> 01:12:28.100
lookalikes or collaborative filtering.

01:12:29.180 --> 01:12:33.050
But in this space, that doesn't work.
What you care about is specific to you.

01:12:34.000 --> 01:12:38.550
If you care about cancer or beating cancer,
I can't find somebody who looks

01:12:38.810 --> 01:12:41.270
like you and say that they also care about cancer.

01:12:41.980 --> 01:12:44.810
Everybody has something specific
that they care about.

01:12:45.160 --> 01:12:49.870
However, using machine learning and graph
theory on this platform, we've managed to

01:12:50.210 --> 01:12:51.520
crack that problem.

01:12:52.210 --> 01:12:57.070
In fact, what we've done is we've built
a machine that does three specific things.

01:12:57.580 --> 01:13:01.110
First of all, it understands how
you specifically want to give.

01:13:01.380 --> 01:13:05.350
See, giving isn't just about money.
It understands whether you want to give

01:13:05.610 --> 01:13:07.410
time or whether you want to give effort.

01:13:08.260 --> 01:13:13.440
Secondly, the algorithm can work
out specifically what you care about, and it

01:13:13.730 --> 01:13:16.120
also understands that what you care about changes.

01:13:16.660 --> 01:13:19.640
It's a moving data piece.
It's not static.

01:13:20.130 --> 01:13:21.640
It changes as your circumstances change,

01:13:21.930 --> 01:13:25.760
as your associations change and the
more interactive you become.

01:13:26.530 --> 01:13:31.050
And lastly, my most favorite part of the
algorithm is that it understands how to

01:13:31.230 --> 01:13:36.040
interact with you, specifically with you,
to make giving more engaging and remove

01:13:36.150 --> 01:13:39.280
those barriers that might exist
to stop you from giving.

01:13:39.660 --> 01:13:43.060
Now, we couldn't have done this
without the Azure platform.

01:13:43.530 --> 01:13:46.850
We're a small team of scientists
and engineers, and what the Azure platform

01:13:47.130 --> 01:13:50.650
really allowed us to do was focus
intensely on our goal.

01:13:50.930 --> 01:13:54.680
We don't have a team of operations experts
who can manage a huge cluster of

01:13:54.930 --> 01:13:56.960
Hadoop -- cloud machines in the cloud.

01:13:57.460 --> 01:13:59.670
But this platform was ideal for us,

01:14:00.100 --> 01:14:01.880
and these are the components that we used,

01:14:02.620 --> 01:14:04.160
and this is how we architected them.

01:14:04.780 --> 01:14:06.680
Essentially, we had three core processes.

01:14:07.060 --> 01:14:10.930
We had a batch process which runs nightly,
a real-time process and a process

01:14:11.160 --> 01:14:14.280
that allowed us to put our APIs
in front of the product.

01:14:14.900 --> 01:14:17.620
And the batch process is the backbone for

01:14:17.980 --> 01:14:21.670
everything that we do, and at the
center of it is HDInsight.

01:14:22.180 --> 01:14:27.160
This is where we do all of our large calculations.
This is where we build the Give Graph

01:14:27.410 --> 01:14:30.530
that I showed you earlier.
So essentially, we take all of our data,

01:14:30.730 --> 01:14:35.280
we upload it into blob storage, then we
spin up the clusters and do all of our calculations.

01:14:35.660 --> 01:14:38.890
And once that's done, the clusters are
put down and the data is moved onto Azure

01:14:39.180 --> 01:14:42.760
table storage.
And at the same time, we have a real-time

01:14:42.880 --> 01:14:45.080
service that helps us keep this product interactive.

01:14:45.580 --> 01:14:50.080
It helps providing data to the machine so
that it can learn and it can continue to

01:14:50.200 --> 01:14:51.050
become more effective.

01:14:51.700 --> 01:14:54.920
We use F# mailboxes and Azure
Service Bus for that.

01:14:55.160 --> 01:14:59.430
And, of course, we have Azure Websites,
or the Azure Web App, which is where we

01:14:59.800 --> 01:15:03.270
put our APIs and where the
product has access to it.

01:15:03.900 --> 01:15:07.160
And all of this manifests itself
on the product itself.

01:15:07.410 --> 01:15:10.450
This is what our feed looks like.
This is what that platform is powering.

01:15:10.820 --> 01:15:14.770
And what's exciting is that this is where
we are seeing giving move from

01:15:15.040 --> 01:15:17.750
a transactional activity
to a more engaging one.

01:15:18.020 --> 01:15:21.560
We're seeing people be far more interactive
and far more social,

01:15:22.040 --> 01:15:25.570
connecting, collaborating about the causes
that they care about, the charities that

01:15:25.960 --> 01:15:27.030
are important to them.

01:15:27.660 --> 01:15:33.370
And as I conclude, I can't emphasize enough
how much of an impact this is going

01:15:33.600 --> 01:15:36.430
to have.
And we're really in a fantastic position,

01:15:36.690 --> 01:15:41.710
because this platform has allowed us to
focus exclusively on our goal, to ensure

01:15:41.960 --> 01:15:45.200
that every great cause gets the
funding that it requires.

01:15:45.560 --> 01:15:52.010
Thank you.
>> Thanks.

01:15:54.960 --> 01:15:59.100
The opportunity to build applications that
can change the world has never been greater.

01:15:59.970 --> 01:16:04.040
Each of you now has access to cloud resources
that were unimaginable just

01:16:04.320 --> 01:16:05.560
a few years ago.

01:16:06.060 --> 01:16:09.640
There's never been a better time to be
a developer, and I'm really looking forward

01:16:09.890 --> 01:16:12.040
to seeing what you build.
Thank you very much

01:16:19.930 --> 01:16:20.890
>> All right.

01:16:21.210 --> 01:16:23.230
Well, we'll move to the next chapter of

01:16:23.460 --> 01:16:26.230
our platform innovation, Office.

01:16:27.330 --> 01:16:29.720
There are three core concepts in the

01:16:30.620 --> 01:16:33.410
transformation of Office to a platform.

01:16:34.250 --> 01:16:37.510
The first one is about the user experience.

01:16:38.360 --> 01:16:44.170
We're opening up the Office user experience
for all of your applications in

01:16:44.280 --> 01:16:49.520
fundamental ways, so that your applications
can show up in the context of

01:16:49.610 --> 01:16:56.690
what a billion-plus users of Office do
in Office, create stuff, get stuff done,

01:16:56.940 --> 01:17:00.240
collaborate, communicate.
We want you to be able to build

01:17:00.350 --> 01:17:03.290
applications that fit naturally into those contexts.

01:17:04.480 --> 01:17:11.410
Second, we want to go beyond single applications,
their APIs and data silos to

01:17:11.770 --> 01:17:14.970
a semantically rich graph of data that

01:17:15.170 --> 01:17:20.980
is available for you to be able
to consume as well as extend.

01:17:22.580 --> 01:17:29.240
And, third, we want to have the capability
to reason over that rich graph

01:17:29.540 --> 01:17:33.910
and add intelligence into your applications
so that not only does it

01:17:34.050 --> 01:17:39.260
drive new features, but more importantly,
drives engagement in your applications.

01:17:40.300 --> 01:17:43.890
So those are the three concepts
that fundamentally change Office.

01:17:44.380 --> 01:17:45.910
We want to give you a quick tour so you

01:17:46.130 --> 01:17:51.370
can look at what your applications can
do to exploit these capabilities.

01:17:51.490 --> 01:17:54.720
For that, I just want to introduce
Rob Lefferts from our Office team to show you

01:17:54.830 --> 01:17:56.780
some of this.
Hi, Rob.

01:17:57.010 --> 01:17:57.710
>> Hi.

01:17:59.570 --> 01:18:05.040
>> How about we get started by talking about
how we're moving from Office from us

01:18:05.420 --> 01:18:08.690
to Office with partners
>> That's great.

01:18:08.910 --> 01:18:11.680
Let's dive right in.
What we're looking at here is Word.

01:18:11.920 --> 01:18:17.110
This is Office 16 Win32, and what we
see is a solution from DocuSign.

01:18:17.370 --> 01:18:20.880
Scott was talking about them earlier.
They do digital signatures, and they've

01:18:21.120 --> 01:18:26.050
integrated the power of their service directly
into Office using a new modern

01:18:26.170 --> 01:18:29.490
web add-in framework.
It's built on top of HTML5

01:18:29.600 --> 01:18:33.370
and JavaScript, and it communicates the
document through a JavaScript object model.

01:18:34.020 --> 01:18:35.520
Let's switch gears and look at another one.

01:18:35.910 --> 01:18:39.890
This is an add in that we're building partnering
with SAP that makes it easy for

01:18:40.170 --> 01:18:44.190
me, while I'm building a spreadsheet, like
my product inventory information, to pull

01:18:44.330 --> 01:18:46.290
information directly from SAP.

01:18:46.460 --> 01:18:49.770
This is built on top of SAP Gateway for Microsoft.

01:18:50.210 --> 01:18:53.530
And one of the great things about the new
add-in framework is that it works across

01:18:53.660 --> 01:18:55.920
platform, so let's switch over to the browser.

01:18:56.110 --> 01:19:01.380
And in Excel Online, I get to see the
same spreadsheet with the same great add-in

01:19:01.600 --> 01:19:04.910
experience running in both places.
>> It's the same add on that goes

01:19:05.210 --> 01:19:07.500
everywhere Office goes.
>> That's exactly right.

01:19:07.720 --> 01:19:12.400
And in fact, let's take a look at Excel
for the iPad, and what we see is exactly

01:19:12.530 --> 01:19:17.020
what you want to have, the same solution,
hosted in Excel for the iPad, showing the

01:19:17.290 --> 01:19:22.060
same add in running for SAP, and this
will be released in upcoming months.

01:19:22.290 --> 01:19:27.760
But let me just show you how I could
use that to connect to SAP.

01:19:28.180 --> 01:19:30.990
I'll click connect, and it does exactly
what you want, which is connect to my

01:19:31.210 --> 01:19:35.280
on-premise IP server, pull the content out
and deliver it directly inside of my

01:19:35.580 --> 01:19:37.000
spreadsheet running on the iPad.

01:19:42.810 --> 01:19:46.410
Let's talk about something very different.
Let's talk about making a presentation.

01:19:46.650 --> 01:19:50.510
And when I'm doing this, I of course want
a constant source of high-quality,

01:19:50.740 --> 01:19:54.110
professional photographs that I can
integrate into my slide deck.

01:19:54.470 --> 01:19:57.700
PicHit.Me is a relatively new company
that is building just such a service

01:19:57.930 --> 01:20:02.810
and has provided an add in here that lets me
search through the photos in the service

01:20:03.070 --> 01:20:04.800
and paste them directly within PowerPoint.

01:20:05.500 --> 01:20:09.730
And one of the key things about this add-in
model is that it's a roadmap for

01:20:09.980 --> 01:20:11.740
how we're going to do add ins going forward.

01:20:12.160 --> 01:20:15.920
So let's take a look at the newest
member of the Office family, Sway.

01:20:16.310 --> 01:20:19.610
This is a tool for interactive storytelling
that runs great on the web

01:20:20.050 --> 01:20:24.210
and renders beautifully mobilely, and
we've integrated a set of services that

01:20:24.450 --> 01:20:26.810
make it easy for me to pull in content.

01:20:27.060 --> 01:20:33.210
We've integrated with PicHit, and we will
be delivering in upcoming months -- live services.

01:20:33.960 --> 01:20:38.010
We'll be delivering in upcoming months
the exact same framework and add-in model

01:20:38.250 --> 01:20:40.850
that runs across all of the endpoints for Office.

01:20:41.180 --> 01:20:43.700
That's Word, Excel, PowerPoint and Outlook.

01:20:44.030 --> 01:20:48.070
But let's take a look at people working
in Outlook, professional users handling

01:20:48.320 --> 01:20:51.560
and managing all of their email, dealing
with a great deal of information.

01:20:51.920 --> 01:20:55.130
They want to stay up to date on who are
all these people that we're talking to.

01:20:55.400 --> 01:20:59.390
And what we're showing here is an add-in
from LinkedIn that makes it easy for me

01:20:59.490 --> 01:21:02.520
to do that.
It pulls the users off the To and CC line.

01:21:02.630 --> 01:21:05.510
It shows them to me directly in the context
of my email, so I don't have to

01:21:05.610 --> 01:21:07.660
leave the flow of how I'm doing my work.

01:21:08.520 --> 01:21:12.600
Salesforce has built a very similar thing
that pulls from the To and CC line but

01:21:12.840 --> 01:21:14.190
also looks up the companies that are

01:21:14.400 --> 01:21:18.160
showing up on the mail thread, so I get
to see the people and connect to them in

01:21:18.380 --> 01:21:21.290
Salesforce, but I can see the accounts,
and I can drill right into the

01:21:21.640 --> 01:21:25.990
opportunities and take action from here,
within Outlook, without leaving the flow

01:21:26.150 --> 01:21:28.050
of my work.
>> And it's been great to be working with

01:21:28.310 --> 01:21:32.510
the Salesforce team, because they've
really exploited all of the extensions we

01:21:32.750 --> 01:21:37.180
have across the entire surface area
of Office, be it in Excel or in Outlook or in

01:21:37.640 --> 01:21:42.440
other areas and built the business process
right into the collaboration

01:21:42.790 --> 01:21:45.130
and communications infrastructure,
and that's fantastic to see.

01:21:45.380 --> 01:21:46.230
>> Absolutely.

01:21:46.400 --> 01:21:50.750
Outlook is not just about mail.
Outlook is also about my appointments

01:21:50.990 --> 01:21:54.660
and my calendaring, and it has all of
that information in a structured way.

01:21:54.680 --> 01:21:57.110
But one of the important things for me is
not just being at the meeting but getting

01:21:57.230 --> 01:21:58.290
there on time.

01:21:58.550 --> 01:22:01.550
We're partnering with Uber to build
a solution that does exactly this.

01:22:01.900 --> 01:22:03.590
So here is an add in that Uber has built.

01:22:04.000 --> 01:22:06.200
There, I can set an Uber ride reminder to

01:22:06.360 --> 01:22:09.660
show up ahead of time and make sure
that I get to where I need to go.

01:22:10.080 --> 01:22:12.230
As we switch over here to the iPhone,

01:22:12.490 --> 01:22:17.180
what I actually see is that I've got
a reminder from Uber saying slide to get

01:22:17.340 --> 01:22:19.340
a ride, so I'll go ahead and do that.

01:22:19.640 --> 01:22:22.990
It brings up Uber, and it sets my pickup location.

01:22:23.150 --> 01:22:27.360
The cool thing is that it got my destination,
because that lived in Outlook.

01:22:27.370 --> 01:22:30.850
So Outlook knew where I needed to be, and
now Uber knows where I need to go.

01:22:31.340 --> 01:22:34.440
>> No, that's great.
So that shows you how applications that

01:22:34.690 --> 01:22:39.040
you build show up throughout Office.
They extend beyond any single application.

01:22:39.580 --> 01:22:41.580
Now, let's talk a little bit about this graph.

01:22:42.180 --> 01:22:46.640
How are we building the graph and
exposing the graph to developers?

01:22:47.010 --> 01:22:50.530
>> Yes, let's actually pop it open and take
a look at exactly what it looks like.

01:22:50.860 --> 01:22:56.260
So this week at Build, we are announcing
the preview of the unified API endpoint

01:22:56.500 --> 01:22:58.260
for Office 365 APIs.

01:22:58.520 --> 01:23:03.150
This builds on top of the file mail
calendar workloads that we delivered last fall.

01:23:03.390 --> 01:23:06.670
And what it does is make it easy
for developers to get to this data in

01:23:06.870 --> 01:23:08.310
a unified, consistent way.

01:23:08.700 --> 01:23:13.500
So we're just popping open up a little
API Explorer tool that can show us what do

01:23:13.780 --> 01:23:16.130
some of those request and response
patterns look like?

01:23:16.330 --> 01:23:19.790
So what will you as a developer have to
do in order to get access to this rich data?

01:23:20.380 --> 01:23:24.050
What you can see is that the URLs are
pretty simple, graph.microsoft.com,

01:23:24.440 --> 01:23:26.690
version number and the tenant
that I am connecting to.

01:23:27.180 --> 01:23:31.590
And this will make it easy for me in this
example to query Active Directory to get

01:23:31.700 --> 01:23:33.970
a list of users.
I'm querying from users for a particular

01:23:34.210 --> 01:23:36.130
department, in this case operations,

01:23:36.380 --> 01:23:40.450
and what I get back is exactly what you
would expect -- clean, well-formatted,

01:23:40.700 --> 01:23:43.980
easy-to-understand JSON.
Every developer in the room has a whole

01:23:44.210 --> 01:23:47.700
toolkit that can parse this and use
it to build great solutions.

01:23:47.940 --> 01:23:51.760
But the point is that this actually a graph,
and so I can go from an individual

01:23:52.040 --> 01:23:54.000
user to drill into their files.

01:23:54.860 --> 01:23:59.320
All I have to do to get to the files from
OneDrive for Business is stick /files on

01:23:59.580 --> 01:24:03.980
the end of the URL, and from there, I see
data documents coming back from OneDrive.

01:24:04.300 --> 01:24:08.050
These are just the files that the logged-in
user has permission to see.

01:24:08.180 --> 01:24:11.160
>> And that's the powerful concept, which
is you no longer are going to different

01:24:11.500 --> 01:24:14.040
applications for different data.
You're not going to Active Directory for

01:24:14.300 --> 01:24:18.210
users and groups and then to OneDrive
for files, but you're able to traverse the

01:24:18.370 --> 01:24:22.250
entirety of the graph with these APIs.
>> Exactly right.

01:24:22.390 --> 01:24:25.180
In fact, speaking of groups, let's
pull up another example.

01:24:25.450 --> 01:24:29.620
Office 365 has a new concept for a unified,
modern group that brings together

01:24:29.720 --> 01:24:33.130
the people and the documents and conversations
and calendar that they're

01:24:33.300 --> 01:24:36.180
having, and we're exposing that
through the unified API.

01:24:36.450 --> 01:24:40.320
So I can query the Active Directory for
Groups and I can navigate through them to

01:24:40.800 --> 01:24:45.370
find files that belong to those groups.
So here we actually see stick on a /files,

01:24:45.650 --> 01:24:49.300
and it brings up the files associated with
that group, again, trimmed for the

01:24:49.530 --> 01:24:50.610
logged-in user.

01:24:51.380 --> 01:24:55.130
Now, this notion of logged-in user is
a really common pattern for people building

01:24:55.380 --> 01:24:57.820
solutions, and so we've actually
made it super easy.

01:24:58.050 --> 01:25:01.330
There's a me token that you can stick in
your URL to just get back the data for the

01:25:01.580 --> 01:25:03.500
logged-in user.
>> And that's probably really important,

01:25:03.720 --> 01:25:07.450
because everything here is permissioned
through the policies and ACLs that you put

01:25:07.580 --> 01:25:10.450
into AD.
So in some sense, the me token gives you

01:25:10.700 --> 01:25:13.500
access for the user using the
application's credentials.

01:25:13.750 --> 01:25:18.410
>> Exactly right, and because now I have
access to my information, I can go

01:25:18.610 --> 01:25:21.540
and look at my calendar.
Just /events on the end of the URL,

01:25:21.780 --> 01:25:25.300
and that brings back appointments that are
live in my Outlook calendar, and the same

01:25:25.420 --> 01:25:29.810
idea to get to messages -- /messages,
and boom, I'm in my inbox coming from

01:25:30.040 --> 01:25:32.440
Exchange, and it's just that easy.
>> Awesome.

01:25:32.860 --> 01:25:36.930
So how about we talk about the last concept,
which is how do we go from here

01:25:37.460 --> 01:25:40.210
to really building the richness of

01:25:40.700 --> 01:25:44.500
intelligence inside of your
applications? >> Sure.

01:25:44.900 --> 01:25:47.180
So this is powered by the Office Graph,

01:25:47.630 --> 01:25:50.780
and the thing about the Office Graph is
we've talked about data, we've talked

01:25:51.050 --> 01:25:55.110
about add-ins, and we've really talked about
how we can use that to drive a whole

01:25:55.330 --> 01:25:57.930
other set of insights.
We know who are the people,

01:25:58.050 --> 01:26:01.500
the conversations, the meeting and
the organizations, and what we can do with

01:26:01.730 --> 01:26:03.330
that is provide additional insights to developers.

01:26:03.580 --> 01:26:06.970
They can use that in the preview here to
query the graph to get information out.

01:26:07.450 --> 01:26:11.130
And in addition, we're delivering
a first-party app in the shape of Delve that

01:26:11.610 --> 01:26:15.450
actually provides me every day with information
about what am I working on

01:26:15.690 --> 01:26:21.690
and helps me search and discover the content
that my colleagues are using.

01:26:23.750 --> 01:26:25.290
>> There is something funny going on?

01:26:27.580 --> 01:26:29.730
>> I'll keep going.
>> Okay, keep going.

01:26:30.840 --> 01:26:33.340
>> Okay.
Okay, so here I am, looking at Delve,

01:26:33.580 --> 01:26:38.840
and what I see is exactly what you'd expect,
some cards and contact that will help me

01:26:39.100 --> 01:26:42.900
stay up to date on what my colleagues
are doing, so I see an Excel notebook that

01:26:43.270 --> 01:26:47.580
is coming out of OneDrive that lets me see,
here's what my boss built, here are some KPIs.

01:26:47.750 --> 01:26:51.530
Here is an attachment that lives in email.
But we've been working with partners to

01:26:51.820 --> 01:26:57.240
imagine what will it look like when we
have additional third-party signals coming

01:26:57.500 --> 01:26:59.900
into the graph, how can they get
into this notification stream?

01:27:00.310 --> 01:27:03.910
And what we see here are opportunities.
>> So that's a card from Salesforce.

01:27:04.190 --> 01:27:06.290
>> That's exactly right.
This is a card from Salesforce showing

01:27:06.510 --> 01:27:09.710
the amount, showing information about
who owns the account, etc.

01:27:10.100 --> 01:27:12.970
I can navigate down.
Here's information coming from Twitter,

01:27:13.540 --> 01:27:16.880
and beneath that, we see information
coming from Trello, so if people are

01:27:17.170 --> 01:27:20.000
collaborating on boards, I can navigate
directly through and get to that.

01:27:20.500 --> 01:27:24.100
And let's actually scroll down a little
bit further, and what we see is a purchase

01:27:24.250 --> 01:27:25.690
order coming from Dynamics AX.

01:27:26.050 --> 01:27:29.200
That looks like a super-important one, so
it was great that Delve made it easy for

01:27:29.440 --> 01:27:31.110
me to take action on it.
>> Right.

01:27:31.300 --> 01:27:35.600
So this is no longer now information that
is inside of the Office Graph that's based

01:27:35.860 --> 01:27:39.970
on the data of our apps, but people are
able to extend the graph with additional

01:27:40.250 --> 01:27:45.170
edges and nodes that's all surfacing in Delve.
>> That's exactly right.

01:27:45.340 --> 01:27:47.120
>> Wonderful.
Thank you so much, Rob.

01:27:47.220 --> 01:27:47.970
Thank you very much.

01:27:53.970 --> 01:27:57.710
>> That gives you a flavor for how
Office is fundamentally changing.

01:27:58.160 --> 01:28:01.770
In fact, there is one other SDK that we
are launching in addition to the Office

01:28:02.000 --> 01:28:07.570
Graph, which is the web SDK for Skype, where
the presence information, where the

01:28:07.870 --> 01:28:12.560
ability to embed inside of your applications,
video, chat and messaging,

01:28:12.850 --> 01:28:15.650
is now possible.
So you can build a web app, a mobile app,

01:28:16.000 --> 01:28:20.200
using Skype presence information and
Skype embedded inside of your apps.

01:28:20.410 --> 01:28:26.670
This fundamental change that we are making
to Office -- this fundamental

01:28:27.060 --> 01:28:33.200
platform shift of Office, where the users,
the 1 billion-plus users are available for

01:28:33.520 --> 01:28:38.440
you as developers, the semantically rich
graph that is available for you to consume

01:28:38.560 --> 01:28:43.480
and extend and to drive additional engagement
through intelligence we believe

01:28:43.760 --> 01:28:48.680
is going to change the very fundamental
nature of what Office is to becoming

01:28:48.920 --> 01:28:52.440
really a platform from us and from you together.

01:28:54.060 --> 01:28:56.640
I know you all waited very patiently to

01:28:57.110 --> 01:29:03.870
hear about Windows, and it's now
time to talk about Windows.

01:29:11.420 --> 01:29:17.670
>> Windows 10, as I said, is not
just another release of Windows.

01:29:18.040 --> 01:29:21.140
It is a new generation of Windows.

01:29:22.300 --> 01:29:27.120
It is Windows built for this era
of more personal computing.

01:29:27.760 --> 01:29:34.270
It's built where mobility of the experience
across devices is what

01:29:34.460 --> 01:29:38.400
is paramount, not just the mobility of the device.

01:29:38.930 --> 01:29:44.180
It's built such that users can interact
with a variety of devices that are going

01:29:44.480 --> 01:29:49.030
to be powered by Windows in
the most natural of ways.

01:29:49.280 --> 01:29:54.960
It could be touch, it could be ink, speech,
mouse and keyboard or even holograms.

01:29:56.040 --> 01:29:59.540
It is also built with a foundation of trust.

01:30:00.280 --> 01:30:02.080
When we talk about more personal,

01:30:02.800 --> 01:30:07.750
it becomes even more important to know that
the data that you are giving the system

01:30:08.220 --> 01:30:11.000
is being used to benefit the user.

01:30:11.970 --> 01:30:16.810
Those are the foundational things that
drive more personal computing for us.

01:30:18.050 --> 01:30:19.600
But it's just not that.

01:30:20.480 --> 01:30:27.680
It is a very different Windows in terms
of how we deliver it, how we keep it alive.

01:30:28.790 --> 01:30:33.920
It's a service.
We want to make sure that for every

01:30:34.200 --> 01:30:42.000
developer here, you have the widest vibrant
user base that your applications

01:30:42.230 --> 01:30:43.320
can target.

01:30:44.270 --> 01:30:46.630
We also have a unified platform.

01:30:47.240 --> 01:30:53.280
Everything from Raspberry Pi to
the holographic computer is one developer platform.

01:30:53.630 --> 01:30:58.400
That means your skills apply across
all of the places Windows runs.

01:30:59.480 --> 01:31:03.080
And lastly, it's one unified store.

01:31:03.570 --> 01:31:11.350
That means the economic return for what
you do on Windows spans the entire install

01:31:11.600 --> 01:31:16.800
base and the growing device family of Windows.

01:31:19.780 --> 01:31:25.610
And so I'm really excited about where we
are in this journey, but I'm most excited

01:31:25.920 --> 01:31:31.490
about what we together are going to do
in the coming year with Windows 10.

01:31:31.650 --> 01:31:32.950
Let's roll the video.

01:31:50.700 --> 01:31:54.700
>> Windows 10 embodies what our consumer
and our enterprise customers are demanding.

01:32:03.710 --> 01:32:05.710
We'll be making available a free upgrade.

01:32:08.830 --> 01:32:12.520
Cortana, we're excited to
welcome you to the PC.

01:32:19.100 --> 01:32:23.530
Windows Insider program gives us
that connection at an earlier phase than at any

01:32:23.800 --> 01:32:25.300
other time in the history of Windows.

01:33:20.580 --> 01:33:22.310
>> Terry Myerson:  Hello, developers.

01:33:23.310 --> 01:33:27.260
It is so great to be back here at
Build to talk about Windows 10.

01:33:28.530 --> 01:33:33.080
Satya just shared that our inspiration is
for customers, for endusers to love using

01:33:33.260 --> 01:33:38.740
Windows 10, while we also have this aspiration
for you to love developing for

01:33:39.280 --> 01:33:40.930
Windows 10.

01:33:41.700 --> 01:33:47.840
Our goal is to make Windows 10 the
most attractive development platform ever,

01:33:48.980 --> 01:33:53.950
enabling you to build the most
innovative applications, applications that your

01:33:54.250 --> 01:33:56.760
customers never before thought possible.

01:33:58.130 --> 01:33:59.950
Integrate Cortana into your apps.

01:34:01.090 --> 01:34:04.840
Integrate Xbox Live into your apps,
giving your customers awards

01:34:05.140 --> 01:34:07.890
and achievements, or bring them
to life with the avatar.

01:34:08.690 --> 01:34:13.800
Add natural user interactions to
your apps like pen or speech.

01:34:15.290 --> 01:34:17.640
Turn your apps into holograms.

01:34:19.400 --> 01:34:25.600
With Windows 10 we're targeting the broadest
device family ever, from devices

01:34:25.950 --> 01:34:32.600
with small screens like phones, to large
screens, going beyond an all in one PC to

01:34:33.080 --> 01:34:39.440
our large wall mounted displays, the Surface
hub, to devices with no screen at

01:34:39.800 --> 01:34:43.360
all, like the Internet of Things, or HoloLens.

01:34:44.930 --> 01:34:46.460
We're talking about one platform,

01:34:48.000 --> 01:34:54.080
a single app, a single binary that can
run across all of these devices.

01:34:55.780 --> 01:34:57.670
When we look at the search terms in the

01:34:58.170 --> 01:35:02.720
store, when we compare what people
are searching for on phones, searching for on

01:35:02.960 --> 01:35:07.880
PCs, we see that 40 percent of the
search terms are exactly the same.

01:35:09.130 --> 01:35:12.000
Customers are looking for your apps in

01:35:12.200 --> 01:35:13.940
all of these places.

01:35:15.660 --> 01:35:20.730
With Apple, you choose to
invest in IoS or Mac OS.

01:35:21.450 --> 01:35:25.610
With Google you choose to invest
in Android or Chrome OS.

01:35:26.490 --> 01:35:32.010
Windows is the only ecosystem that lets
you bring your apps to all of these

01:35:32.240 --> 01:35:34.400
devices efficiently.

01:35:37.380 --> 01:35:39.840
Now, there are many ways to get apps on Windows.

01:35:40.930 --> 01:35:42.940
Let's talk about the Windows Store.

01:35:44.200 --> 01:35:46.130
Apps that come from the Windows Store

01:35:47.090 --> 01:35:48.750
come with a set of promises to the

01:35:49.370 --> 01:35:52.830
enduser, your customers.

01:35:53.930 --> 01:35:58.340
For endusers, applications in the Windows
Store will be very easy to discover,

01:35:59.090 --> 01:36:04.150
not only within the store itself, but Joe
Belfiore soon will show you how Windows

01:36:04.400 --> 01:36:06.990
applications can be discovered throughout
the Windows experience.

01:36:08.580 --> 01:36:14.820
Apps from the Windows Store will be easy
and fast to install, and uninstall if you

01:36:15.050 --> 01:36:17.680
want, and they will never junk up your system.

01:36:19.680 --> 01:36:24.420
Commerce with the Windows Store will
be convenience and trusted with a wide

01:36:24.670 --> 01:36:26.920
variety of global payment entrants,

01:36:27.980 --> 01:36:33.720
not just the credit cards we use here in the
U.S. but payment instruments like Alipay

01:36:34.030 --> 01:36:40.520
for China, and today we're announcing
carrier billing not only for Windows

01:36:40.810 --> 01:36:43.420
phones but for all Windows devices.

01:36:45.080 --> 01:36:49.080
And Windows will have the largest carrier
billing footprint of any ecosystem with

01:36:49.870 --> 01:36:53.020
connections to 90 mobile operators.

01:36:54.370 --> 01:36:57.070
Our experience with phones, this is great

01:36:58.060 --> 01:37:03.520
for our customers that don't have credit
cards but do have phones, and this

01:37:03.820 --> 01:37:07.840
is great for developers because our experience
with phones is that in emerging

01:37:08.150 --> 01:37:14.950
markets, application purchases have gone
up by a factor of eight times when carrier

01:37:15.060 --> 01:37:17.730
billing is enabled, and now it's available

01:37:18.270 --> 01:37:20.560
across all Windows devices.

01:37:22.200 --> 01:37:26.820
The new Windows Store will offer new
business models and ways to monetize for

01:37:27.230 --> 01:37:31.130
all of our Windows developers,
including subscriptions, affiliate referrals,

01:37:31.800 --> 01:37:36.270
an updated advertising SDK with support
for video ads and install tracking.

01:37:36.920 --> 01:37:39.530
One set of tools, one set of processes

01:37:40.120 --> 01:37:44.350
for you to reach customers across all
of these devices and engage with the

01:37:44.600 --> 01:37:49.430
customers all over the planet with reviews
and ratings and the other tools that are

01:37:49.600 --> 01:37:51.420
available in the Windows Store.

01:37:53.470 --> 01:37:57.270
And today we're introducing the
Windows Store for Business.

01:37:58.400 --> 01:38:03.830
Businesses and schools can customize the
Windows Store, highlighting applications

01:38:04.200 --> 01:38:08.020
from the public catalog that they want to
make more easily discoverable or recommend

01:38:08.430 --> 01:38:09.780
to their employees or students.

01:38:11.270 --> 01:38:15.150
And the Windows Store for Business will
support business payment methods like

01:38:15.400 --> 01:38:21.350
purchase orders, opening up a new vein
of opportunity for Windows developers to

01:38:22.080 --> 01:38:25.000
engage with Windows enterprises worldwide.

01:38:28.070 --> 01:38:33.280
Now, to make all this worthwhile
for developers, we know we need to get Windows

01:38:33.470 --> 01:38:36.220
10 to be broadly adopted quickly.

01:38:37.170 --> 01:38:43.910
So we started by making it available as
a free upgrade for the first year and now

01:38:44.150 --> 01:38:48.920
we're investing and making it easy
for consumers and businesses to adopt Windows

01:38:49.200 --> 01:38:54.020
10 worldwide, and today we're sharing our goal.

01:38:54.530 --> 01:38:59.530
Our goal is that within two to three years
of Windows 10's release, there will

01:38:59.640 --> 01:39:02.750
be one billion devices running Windows 10.

01:39:04.730 --> 01:39:12.400
No other platform version in any ecosystem
is available on one billion devices.

01:39:14.040 --> 01:39:19.750
Current estimates for Google Play, KitKat
is at a little over 500 million devices.

01:39:20.700 --> 01:39:22.650
iOS 8 is lower than that.

01:39:23.800 --> 01:39:30.250
With Windows 10, there will be one billion
devices ready to run your applications.

01:39:34.640 --> 01:39:39.000
Now, we've already been working with many
of you on your XAML apps, embracing this

01:39:39.350 --> 01:39:45.350
new universal Windows platform, working
on doing things that you can't do on any

01:39:45.480 --> 01:39:46.550
other platform.

01:39:47.820 --> 01:39:51.940
We're delighted that companies like
Disney, Netflix, Line, Twitter, and so

01:39:52.120 --> 01:39:55.880
many more are working with us to build
amazing applications for the one billion

01:39:56.140 --> 01:39:58.640
devices that will run Windows 10.

01:40:00.310 --> 01:40:03.740
Let's take a look at some of
the work by these partners.

01:40:05.940 --> 01:40:09.440
I thought I'd start by highlighting the
work being done by USA Today, which has

01:40:09.560 --> 01:40:11.690
been a great Windows developer and a great partner.

01:40:12.420 --> 01:40:17.950
Today they have a separate code base for
their phone application and their PC application.

01:40:18.820 --> 01:40:21.890
They want to bring these code bases
together so they can focus on great

01:40:22.040 --> 01:40:27.030
quality and great functionality and then
take that application to new Windows devices.

01:40:28.510 --> 01:40:33.490
And so here you see the USA Today's live
tile from their new universal Windows

01:40:33.780 --> 01:40:41.860
application, on this PC, which is great
work with touch and keyboard shortcuts.

01:40:43.160 --> 01:40:48.000
The application uses our standard
platform controls so it resizes

01:40:48.380 --> 01:40:56.510
and reflows as the application is resized on
the desktop, snapping it, allowing me to

01:40:56.660 --> 01:40:58.320
do more work.

01:41:00.030 --> 01:41:04.440
Now, I can never get enough reading about
Duke's basketball team, so let's go there.

01:41:04.620 --> 01:41:10.680
And you can see here the app, the article
flows greatly in the    flows great in

01:41:10.780 --> 01:41:13.690
this size window.
Now, this application is also using our

01:41:14.380 --> 01:41:17.770
platform capabilities to automatically
store state in the cloud.

01:41:18.230 --> 01:41:23.510
So the state of me reading this article
is available on all of my Windows devices,

01:41:23.870 --> 01:41:27.730
or other devices that might want
to access the same state.

01:41:28.030 --> 01:41:30.280
So now when I pick up this Windows Phone,

01:41:30.570 --> 01:41:32.620
I have the same binary running here,

01:41:32.930 --> 01:41:34.680
the same live tile.

01:41:35.880 --> 01:41:38.380
I run it, and the article's opening up to

01:41:38.720 --> 01:41:43.070
the exact same place, leveraging the state
that was automatically shared to the cloud.

01:41:44.280 --> 01:41:48.890
One binary, one code base, all working
across phone, tablet, and PC.

01:41:49.920 --> 01:41:55.670
Now, USA Today wants to bring their application
to the Xbox, but we don't do

01:41:55.920 --> 01:41:57.430
a lot of reading of articles on the Xbox,

01:41:57.980 --> 01:42:03.600
so they wanted to tailor the application,
filter the application down to just video feeds.

01:42:04.370 --> 01:42:08.680
So they invested one hour in their universal
Windows application code base,

01:42:08.930 --> 01:42:11.030
and here it is running on the Xbox,

01:42:11.430 --> 01:42:13.160
filtered down to just video.

01:42:13.560 --> 01:42:15.670
I'm navigating it with the controller.

01:42:15.930 --> 01:42:20.480
Navigate down, and I see the same video
controls that are available across the

01:42:20.770 --> 01:42:25.030
Windows 10 platform, navigating down
further in the controller, and I get

01:42:25.260 --> 01:42:29.130
recommended video articles.
So an investment in this one universal

01:42:29.380 --> 01:42:34.630
Windows application, they now have phones,
tablets, PCs, interactive television all

01:42:35.080 --> 01:42:38.200
covered with one code base and one app.

01:42:39.930 --> 01:42:41.980
It's cool.

01:42:46.530 --> 01:42:50.630
>> So now let's take a look at the work
Tencent's done with their WeChat application.

01:42:51.170 --> 01:42:53.000
WeChat's an incredible phenomenon.

01:42:53.380 --> 01:42:57.720
They just crossed 500 million monthly
active users, growing 40 percent year over year.

01:42:58.030 --> 01:43:01.130
They have been a great application
for Windows Phone users.

01:43:01.780 --> 01:43:04.240
Here they are on my Windows Phone.

01:43:05.230 --> 01:43:10.230
Tencent wanted to bring WeChat
to Windows PCs and tablets.

01:43:10.820 --> 01:43:15.080
So they made an investment in their
Silverlight application on the phone.

01:43:15.280 --> 01:43:19.900
The team spent about approximately one month.
They now have a universal Windows app

01:43:20.400 --> 01:43:24.630
that runs great on the phones and will also
now be available on the desktop with

01:43:24.940 --> 01:43:26.810
some tailored experiences for the desktop.

01:43:26.980 --> 01:43:29.490
So let's look at WeChat on the desktop.

01:43:31.130 --> 01:43:35.740
Now, on the phone, I don't know if
you noticed, Shannon sent me a message.

01:43:36.450 --> 01:43:38.280
I have WeChat installed on this PC,

01:43:38.580 --> 01:43:40.490
but now we can access that new message from

01:43:40.740 --> 01:43:42.300
the notification center.

01:43:43.450 --> 01:43:46.230
I click on the notification
center message from WeChat.

01:43:46.570 --> 01:43:48.130
This is the same binary running both places.

01:43:50.690 --> 01:43:54.440
Open the message from Shannon asking me
for the file, and here they have done some

01:43:54.720 --> 01:44:00.080
tailoring to accept drag and drop from
the desktop, all with one universal

01:44:00.380 --> 01:44:03.680
application that's running across these devices.

01:44:09.780 --> 01:44:13.580
So USA Today and WeChat are just a couple
of the many great apps coming to the

01:44:13.890 --> 01:44:15.430
Windows platform.

01:44:16.290 --> 01:44:21.770
In a few minutes Joe Belfiore will join
us and show how universal Windows apps are

01:44:22.000 --> 01:44:25.090
going to enable you to do things you
never thought possible on a phone.

01:44:26.180 --> 01:44:31.370
Then Alex Kipman is going to join to talk
about how universal Windows apps you never

01:44:31.600 --> 01:44:33.880
thought possible on HoloLens.

01:44:35.380 --> 01:44:40.290
Now, partners like these are giving us
great feedback, as they engage across all

01:44:40.690 --> 01:44:42.930
these devices with the universal Windows platform.

01:44:43.690 --> 01:44:47.490
Netflix loves it.
They can deploy their apps efficiently everywhere.

01:44:48.630 --> 01:44:51.990
The team of Trivia Crack, my favorite.

01:44:52.230 --> 01:44:58.700
It's a great game    crack    developing

01:44:58.940 --> 01:45:02.840
this universal app is four times faster
than developing for Android and iOS.

01:45:03.700 --> 01:45:09.050
So let me just say thank you for your
early engagement on the universal Windows

01:45:09.190 --> 01:45:14.060
platform so we can bring your applications
to life.

01:45:16.390 --> 01:45:20.250
So that was about new

01:45:26.590 --> 01:45:32.200
That was all about new universal Windows
apps, but today we want to talk also about

01:45:32.490 --> 01:45:35.960
your current code, your current apps.

01:45:37.450 --> 01:45:42.000
Windows has always embraced a wide variety
of technologies to build great

01:45:42.250 --> 01:45:45.890
apps, and today we're going to announce

01:45:46.850 --> 01:45:48.650
four new ones.

01:45:50.220 --> 01:45:56.650
Four new ways to leverage your existing
code and skills, four new ways to reduce

01:45:56.940 --> 01:45:59.300
the cost and effort, making it easy for

01:45:59.780 --> 01:46:04.800
you to bring applications to the Windows
Store, four new ways to delight one

01:46:05.060 --> 01:46:07.950
billion Windows 10 customers, at home,

01:46:08.600 --> 01:46:11.000
at school and at work.

01:46:12.820 --> 01:46:15.750
Let's start by talking about the Web.

01:46:17.420 --> 01:46:21.500
Now, many of you have websites that provide
great functionality to your customers.

01:46:22.590 --> 01:46:25.400
Today I'm announcing that you can reuse

01:46:25.650 --> 01:46:31.970
your current server hosted website code
and tools and take advantage of the rich

01:46:32.260 --> 01:46:37.410
capabilities of the universal Windows
platform, to have your website send

01:46:37.540 --> 01:46:42.180
notifications, to give your website a
live tile, have your website integrate with

01:46:42.410 --> 01:46:46.210
Cortana, do in app purchases, integrate
with Xbox Live and more.

01:46:48.820 --> 01:46:53.850
This will help your websites reach
new customers and delight Windows customers in

01:46:54.140 --> 01:46:55.260
new ways.

01:46:56.350 --> 01:46:57.850
Let's see this in action.

01:46:59.820 --> 01:47:04.850
So to demonstrate this, we're going to
use a website, 22tracks, which deejays

01:47:05.090 --> 01:47:11.540
across Europe use to exchange their tunes.
It's a very rich website, uses WebGL,

01:47:12.710 --> 01:47:18.550
reflows to the browser resizing.
It's a great website.

01:47:18.820 --> 01:47:23.300
What they've done is they've registered
their website with the Windows Store

01:47:23.650 --> 01:47:31.460
and then I have installed that application
on this machine    oops, there it is

01:47:31.910 --> 01:47:36.700
and it's going to open up as an application.
The server hosted Web code can detect

01:47:37.050 --> 01:47:42.940
whether the code is executing inside
a browser tab or inside an application frame.

01:47:43.390 --> 01:47:45.190
When it's inside an application frame,

01:47:46.020 --> 01:47:49.560
it knows it can call the whole
universal Windows platform.

01:47:50.420 --> 01:47:52.450
So now when I close the browser tab,

01:47:52.820 --> 01:47:55.760
the website's gone.
But now that it's an app, when I close

01:47:56.090 --> 01:48:01.200
the app, 22tracks can now send me a notification.

01:48:02.590 --> 01:48:06.450
I click on the notification, and
I come back to their app.

01:48:06.800 --> 01:48:12.000
Likewise, now that 22tracks is using or
can detect they are running as an app,

01:48:12.250 --> 01:48:14.540
they can efficiently, conveniently offer

01:48:14.800 --> 01:48:19.410
in app purchases to all their customers
for the music, leveraging the commerce

01:48:19.740 --> 01:48:21.790
capabilities of the Windows Store.

01:48:22.420 --> 01:48:26.410
So this is just fantastic, letting
website developers leverage all of the

01:48:26.650 --> 01:48:32.650
server hosted code and take advantage of
the capabilities of the Windows platform

01:48:33.300 --> 01:48:34.840
and the Windows Store.

01:48:42.450 --> 01:48:48.140
So now the second technology I want
to announce today to enable you to bring new

01:48:48.380 --> 01:48:50.340
applications to the Windows Store

01:48:51.020 --> 01:48:53.200
is actually the most popular technology

01:48:53.570 --> 01:48:55.450
within the Windows development community,

01:48:56.940 --> 01:48:59.090
.NET and Win32.

01:49:00.800 --> 01:49:06.340
There's overs 16 million .NET and Win32
applications being used every month in the

01:49:07.340 --> 01:49:12.800
Windows user base, ranging from some
amazing games to some of the most

01:49:13.210 --> 01:49:15.780
important line of business apps used worldwide.

01:49:16.850 --> 01:49:20.780
This is a testament to the great work
being done by Windows developers.

01:49:21.620 --> 01:49:26.090
So I'm so excited to announce that we will
be adding support for bringing your

01:49:26.370 --> 01:49:29.600
.NET and Win32 apps into the Windows Store

01:49:30.260 --> 01:49:35.100
and take advantage of all of the new
universal Windows platform capabilities.

01:49:42.430 --> 01:49:48.120
To show you how this works, let's use an
app that's loved by customers worldwide,

01:49:48.970 --> 01:49:51.560
one of the best win32 applications ever,

01:49:51.920 --> 01:49:53.580
Adobe PhotoShop.

01:49:56.400 --> 01:49:59.150
So here you see Adobe PhotoShop elements

01:50:03.400 --> 01:50:05.080
in the Windows Store.

01:50:05.630 --> 01:50:11.270
Now I shared earlier the promise Windows
makes to endusers, that applications will

01:50:11.750 --> 01:50:15.720
be very efficiently installed, uninstalled,
and will never junk up your system.

01:50:16.600 --> 01:50:21.840
We know that at the same time Win32 applications
can do anything to a Windows system.

01:50:23.280 --> 01:50:25.230
So we've learned from AppV,

01:50:25.630 --> 01:50:28.380
our enterprise application virtualization technology.

01:50:28.760 --> 01:50:31.140
We've adopted it for the Windows Store.

01:50:31.370 --> 01:50:36.920
So now Win32 and .NET applications come
down from the Windows Store and they run

01:50:37.350 --> 01:50:41.270
in an isolated way from the rest of the
system so we can deliver on that promise

01:50:41.750 --> 01:50:44.400
to endusers to deliver a great enduser experience.

01:50:51.520 --> 01:50:54.520
And so here is PhotoShop.
You can see it is the full PhotoShop

01:50:54.750 --> 01:50:56.470
experience with great performance.

01:50:57.200 --> 01:51:00.390
And I'll prove that to you with the full
limits of my PhotoShop capabilities.

01:51:06.490 --> 01:51:08.280
Helping Scott out here.

01:51:08.520 --> 01:51:10.280
So there you go.

01:51:11.000 --> 01:51:13.600
But all come down from the Windows Store.

01:51:15.920 --> 01:51:17.480
And it's very exciting to share that

01:51:18.120 --> 01:51:19.960
later this year, Adobe will be bringing

01:51:20.120 --> 01:51:24.990
PhotoShop Elements and Premier
Elements to the Windows Store.

01:51:27.640 --> 01:51:33.320
So the Windows Store with great support
for apps built using Web code, .NET

01:51:33.450 --> 01:51:39.440
and Win32 code, enabling you to use
your current code bases, extend them using

01:51:39.630 --> 01:51:41.770
Windows 10's new platform capabilities

01:51:42.320 --> 01:51:48.590
and delight customers across the
one billion Windows 10 devices.

01:51:50.720 --> 01:51:57.920
Now the third technology I am announcing
today will enable developers to reuse

01:51:58.270 --> 01:52:03.850
nearly all of the Java and C++ code from
an Android phone app to create apps for

01:52:04.240 --> 01:52:05.950
phones running Windows 10.

01:52:13.320 --> 01:52:19.380
To make this possible, Windows Phones will
include an Android subsystem, where an app

01:52:19.640 --> 01:52:24.720
can be written that takes advantage of the
Android code but also the extensions you

01:52:25.170 --> 01:52:29.070
would write in the Windows platform
to really delight the Windows user.

01:52:29.580 --> 01:52:33.410
To show you how this works, please
welcome to the stage Agnieszka.

01:52:34.820 --> 01:52:39.460
>> Agnieszka Girling:  Thank you, Terry. Hello.

01:52:40.580 --> 01:52:44.070
My name is Agnieszka Girling.
I'm one of the project leaders working on

01:52:44.460 --> 01:52:46.470
the technology that will enable you to

01:52:47.330 --> 01:52:52.970
build great Windows apps by reusing a lot
of the code you had written for Android.

01:52:53.940 --> 01:52:56.250
Here I have an Android device.

01:52:57.180 --> 01:53:00.780
At the moment I am running the Choice Hotels app.

01:53:00.930 --> 01:53:05.360
Choice Hotels is the highest rated app in
its category, makes it very easy for

01:53:05.610 --> 01:53:08.410
travellers to find a great hotel.

01:53:09.190 --> 01:53:11.270
And I'm going to switch to Windows Phone.

01:53:16.270 --> 01:53:20.010
On this Windows Phone, I am also running

01:53:20.660 --> 01:53:23.120
the Choice Hotels app.

01:53:23.590 --> 01:53:28.170
This app is reusing the code you just
saw running on the other device.

01:53:30.600 --> 01:53:32.910
I'd like to look for hotels nearby.

01:53:35.260 --> 01:53:43.330
The app is taking advantage of the
Windows location API to find hotels in San

01:53:43.610 --> 01:53:51.140
Francisco, California. Okay.

01:53:51.370 --> 01:53:54.670
Can I have a switch, device switch?

01:53:55.990 --> 01:53:57.810
Well, let's try that again.

01:54:02.710 --> 01:54:07.270
All right.
As I scroll through the results, you can

01:54:07.540 --> 01:54:12.620
see that the Windows graphics and touch
just work, and the app is running smoothly.

01:54:13.000 --> 01:54:16.920
It's running in the Windows Security
container to ensure a trustworthy

01:54:17.140 --> 01:54:18.940
experience for Windows users.

01:54:19.960 --> 01:54:25.860
I'd like to go back, and as I hit the
back button, please note that the app's

01:54:26.020 --> 01:54:29.550
navigation is integrated with
the Windows navigation model.

01:54:31.200 --> 01:54:38.620
I'd like to select a different city, so I
am going to type in Seattle, with a built

01:54:38.740 --> 01:54:40.470
in Windows keyboard.

01:54:44.670 --> 01:54:53.660
So I have just shown you how an app can
take, efficiently reuse its existing code

01:54:54.020 --> 01:54:56.220
to deliver a great experience on Windows,

01:54:56.860 --> 01:55:02.100
and in tomorrow's keynote we will show you
how you can light up your app's experience

01:55:02.400 --> 01:55:06.750
with native Windows features such as live
tiles and with Microsoft services.

01:55:07.110 --> 01:55:08.260
Thank you.

01:55:08.460 --> 01:55:11.000
Terry, back to you.
>> Terry:  Thanks, Agnieszka.

01:55:15.370 --> 01:55:22.000
>> So Windows 10's going to enable you to
reuse your Web code, your .NET and Win32

01:55:22.130 --> 01:55:25.950
code, your Android, Java and C++ code to

01:55:26.320 --> 01:55:29.200
build amazing new applications.

01:55:30.680 --> 01:55:33.820
Bringing the code over, extending it,

01:55:34.400 --> 01:55:36.140
putting it in the Windows Store

01:55:36.570 --> 01:55:40.190
and reaching one billion Windows 10 customers.

01:55:42.510 --> 01:55:50.550
Finally, the fourth technology to build
great new universal Windows applications

01:55:52.110 --> 01:55:54.020
is Objective C.

01:56:01.000 --> 01:56:05.750
So today we're announcing that you will
be able to compile the same Objective C

01:56:05.860 --> 01:56:09.210
code that's being used in iOS applications

01:56:10.110 --> 01:56:12.660
within Visual Studio on Windows.

01:56:19.450 --> 01:56:21.270
Enabling you to leverage that code

01:56:21.670 --> 01:56:24.750
and extend it with the capabilities only found

01:56:25.270 --> 01:56:28.800
on the Windows platform.
Let's take a look.

01:56:30.320 --> 01:56:36.670
So here in this directory we have
an iOS application Mathdream.

01:56:38.080 --> 01:56:41.070
You can see here the X code project file

01:56:41.450 --> 01:56:43.030
for MathDream.

01:56:43.290 --> 01:56:45.560
You can see the nibs and xib files for

01:56:45.720 --> 01:56:47.200
the UI.

01:56:47.370 --> 01:56:49.030
You go into the classes directory,

01:56:49.460 --> 01:56:53.080
you can see the .mfiles for the Objective C.

01:56:55.320 --> 01:57:00.320
Using the toolkit we're announcing today,
we've converted the X code project file

01:57:00.720 --> 01:57:02.750
into a Visual Studio solution.

01:57:04.070 --> 01:57:07.560
So let's open it up here in Visual Studio.

01:57:09.860 --> 01:57:15.280
You can see full support for this Visual
Studio project's Objective C.

01:57:17.050 --> 01:57:21.390
Great syntax highlighting support
you'd expect from Visual Studio,

01:57:21.750 --> 01:57:25.530
including highlighting all the
weirdness of Objective C.

01:57:34.090 --> 01:57:40.750
We've taken this application and now we
can debug it and execute this tablet app

01:57:41.040 --> 01:57:42.350
on Windows.

01:57:49.790 --> 01:57:54.230
You can see that this is a relatively
sophisticated app that uses UI kit,

01:57:54.460 --> 01:57:56.970
uses core animation, on Windows.

01:57:59.510 --> 01:58:03.950
The performance is good, but it also
works with mouse and touch.

01:58:06.360 --> 01:58:10.110
Can do very complex arithmetic too.
Look at that.

01:58:10.710 --> 01:58:15.630
But actually that's the wrong answer.
So let's adjust this to the right number

01:58:15.800 --> 01:58:21.590
of apples, and you can see not only
can it correctly do math...

01:58:26.520 --> 01:58:28.380
But this application has been extended to

01:58:29.480 --> 01:58:32.230
offer me an Xbox Live achievement for

01:58:32.600 --> 01:58:35.040
doing the proper math equation.

01:58:43.920 --> 01:58:46.430
Now, you might be wondering
if this actually works.

01:58:50.160 --> 01:58:52.180
Will it work for a more complex app?

01:58:53.550 --> 01:58:57.710
Now, usually when we announce this kind
of thing, we would say "Coming soon."

01:58:58.920 --> 01:59:00.590
Well, in this case it's different.

01:59:01.200 --> 01:59:05.390
We've been working with some great
development partners on bringing their

01:59:05.660 --> 01:59:10.910
applications to Windows using this
technology already, and today I'm very

01:59:11.140 --> 01:59:17.260
excited to share, but this is how King
brought Candy Crush Saga to Windows Phone.

01:59:18.510 --> 01:59:20.580
The app has four and a half star reviews,

01:59:20.960 --> 01:59:22.430
40,000 reviews.

01:59:22.800 --> 01:59:27.430
King brought the app to Windows Phone with
a very fast time to market, very few

01:59:27.720 --> 01:59:30.470
code modifications, and it's a great app,

01:59:31.560 --> 01:59:35.230
and now King will be releasing more titles

01:59:35.720 --> 01:59:37.740
for Windows 10 soon.

01:59:46.030 --> 01:59:47.830
So four's not enough.

01:59:48.680 --> 01:59:55.260
So there's actually one more thing we're
going to do to help make it easy for you

01:59:55.360 --> 01:59:58.550
to build great Windows applications

01:59:59.720 --> 02:00:03.380
and that is we need to get you some great hardware.

02:00:09.760 --> 02:00:16.180
So we're going to start today by giving
everyone here a brand new HP Spectre 2 in 1.

02:00:17.400 --> 02:00:19.220
This is a great device.

02:00:25.880 --> 02:00:31.520
Compared to a MacBook pro, it's thinner,
it's lighter, it has longer battery life

02:00:31.800 --> 02:00:33.950
and, of course, it has a touch display.

02:00:35.200 --> 02:00:36.880
And I would encourage everyone here to

02:00:37.710 --> 02:00:39.750
join the Windows Insider program,

02:00:40.000 --> 02:00:46.780
engage with us on this platform and help shape it
for your needs, but please do the upgrade

02:00:47.030 --> 02:00:49.430
to Windows 10 from your hotel's wi fi,

02:00:50.030 --> 02:00:55.230
not the wi fi here at the conference.
(Laughter.)

02:00:55.470 --> 02:01:01.070
So today we talked about our goal of
one billion Windows 10 devices, the unique

02:01:01.180 --> 02:01:03.390
capabilities of the Windows 10 platform,

02:01:04.000 --> 02:01:09.330
and our commitment to a broad range
of technologies to leverage your skills

02:01:09.600 --> 02:01:12.750
and your current code to build great apps,

02:01:13.480 --> 02:01:15.260
and we've got so much more to come.

02:01:15.890 --> 02:01:18.310
So please welcome Joe Belfiore.

02:01:20.630 --> 02:01:22.670
>> Joe Belfiore:  All right.
Good morning!

02:01:23.630 --> 02:01:26.440
Hello! It's nice to be here
at Build with all of you.

02:01:27.130 --> 02:01:31.150
So you got a chance to look at how
the universal Windows platform is going to

02:01:31.310 --> 02:01:35.960
enable all of you and tons of other developers
to build great, compelling apps.

02:01:36.280 --> 02:01:39.870
And what I'm here to do, as Terry said,
is to talk about how we're going to

02:01:39.980 --> 02:01:45.680
enhance the Windows user experience so
that endusers on lots and lots of devices,

02:01:45.780 --> 02:01:50.030
but in particular I'm going to focus on
the PC, how end users will be able to

02:01:50.140 --> 02:01:55.830
discover and engage with all of
the apps that you and we write.

02:01:56.180 --> 02:01:59.780
We know that great technology for building
apps is just part of the story.

02:02:00.040 --> 02:02:02.890
You need users to engage with them.
So I want to show you some of the work

02:02:03.000 --> 02:02:05.850
we're doing that's going to make that possible.
And then I'm going to wrap up with one

02:02:06.070 --> 02:02:10.910
more cool demo of how the universal
Windows platform enables new devices

02:02:11.380 --> 02:02:15.630
and new kinds of actions on devices.
So let me just jump right in and get started.

02:02:17.230 --> 02:02:21.950
So I have here a very recent build of Windows
10 for the PC, and I'm going to

02:02:22.230 --> 02:02:25.180
begin on the start menu.
I want to show you some of the work we've

02:02:25.320 --> 02:02:27.780
been doing to continue to tweak the design

02:02:27.970 --> 02:02:31.110
and improve the visuals and the interaction.

02:02:31.480 --> 02:02:36.280
So you'll see what I've got here we think
is pretty close to what we expect to have

02:02:36.520 --> 02:02:39.430
when we're done, although of course we're
going to continue to take feedback from

02:02:39.600 --> 02:02:40.430
our Insiders.

02:02:40.690 --> 02:02:46.100
You'll notice there's new beautiful live
tile animations that help draw people's

02:02:46.320 --> 02:02:50.920
attention to the apps and the app data
for the things that they've penned.

02:02:51.080 --> 02:02:53.720
You'll notice we've cleaned
the layout up a bit.

02:02:53.860 --> 02:02:57.990
For those of you Insiders who kind
of surprised us with your enthusiasm for

02:02:58.320 --> 02:03:03.630
Windows 7's Aero Glass, you'll notice the
translucency here as the blur effect that

02:03:03.870 --> 02:03:06.120
you saw in Windows 7.
So we're trying to bring some of that

02:03:06.230 --> 02:03:09.070
feel back.
We've got the most used apps here.

02:03:09.230 --> 02:03:12.880
We're putting File Explorer settings
Power All apps at the bottom.

02:03:13.120 --> 02:03:16.920
We're bringing jump lists back in, so you
can see here's File Explorer with jump

02:03:17.030 --> 02:03:19.290
lists, and this will work
for other apps as well.

02:03:19.480 --> 02:03:20.190
Thank you.

02:03:21.030 --> 02:03:24.630
But the thing I want to sort of focus on
a little bit is this space right here,

02:03:24.880 --> 02:03:28.240
where in this case I haven't installed
an app for a little while.

02:03:28.470 --> 02:03:33.380
So the system is going to give us a smart
suggestion for an app in the store that

02:03:33.650 --> 02:03:39.160
is going to be one that's suitable for me.
As I'm using my PC, on the client we know

02:03:39.300 --> 02:03:42.440
which apps you're launching and which
apps you're installing and so we're able to

02:03:42.650 --> 02:03:46.950
communicate with the store and bring down
suggestions that are personalized for you

02:03:47.320 --> 02:03:51.580
to help users learn about great new apps
that are available for them to try out on

02:03:51.710 --> 02:03:55.520
their PC.
And as time goes by, we reuse that space

02:03:55.890 --> 02:04:01.390
in a smart way to help script the
user's discovery of apps first but then their

02:04:01.550 --> 02:04:04.880
engagement later.
So if I've installed an app, as you see

02:04:05.030 --> 02:04:08.920
here, for a little while that space
becomes the recently installed app.

02:04:09.350 --> 02:04:12.680
The user can find the app, they can revisit
it, and if they use it enough,

02:04:13.150 --> 02:04:16.930
it will move its way up into the most
used section automatically, and, of course,

02:04:17.030 --> 02:04:21.260
at any time the user can drag from left to
right to take any of those apps and pen

02:04:21.390 --> 02:04:25.390
them as full, live tiles.
So think of this as the user's lifecycle

02:04:25.750 --> 02:04:30.350
of discovery and engagement and reuse,
which we're trying to script right into

02:04:30.460 --> 02:04:31.320
the Start menu.

02:04:32.720 --> 02:04:37.190
There's a whole other area that users are
engaging with where we want to bring some

02:04:37.360 --> 02:04:42.590
beauty and new ideas for how they can get
value out of their PC experience, and that

02:04:42.780 --> 02:04:45.390
is the lock screen.
So I want to show you some of what we're

02:04:45.730 --> 02:04:51.240
doing on Lock to help users discover
and engage with the value in the Windows ecosystem.

02:04:51.720 --> 02:04:55.840
So imagine you're a user and this morning
you wake up and you turn on your PC or

02:04:55.950 --> 02:04:58.870
your tablet and you get this
beautiful Lock screen.

02:04:59.000 --> 02:05:02.530
Well, in this case you're using our
Windows Spotlight feature, which you could

02:05:02.690 --> 02:05:07.120
choose to use, or not, on your lock screen.
And it provides a service driven,

02:05:07.300 --> 02:05:12.060
personalized stream of information
on your lock screen for you.

02:05:12.320 --> 02:05:16.450
And so maybe in a week you'll wake up and
your screen looks a little different.

02:05:16.550 --> 02:05:20.920
In this case you say to yourself, man, that
is a beautiful and striking image.

02:05:21.240 --> 02:05:24.350
You're so enthused by it that you move
your mouse to the upper right, click on

02:05:24.580 --> 02:05:28.240
the hotspot "like what you see," and
here's a place where you have the

02:05:28.480 --> 02:05:32.930
opportunity to train our service on which
things are interesting to you.

02:05:33.350 --> 02:05:35.950
In this case I find out this is
the Navajo loop switchback.

02:05:36.390 --> 02:05:38.950
It's a cool looking trail.
I might vote that I love it and then I'll

02:05:39.190 --> 02:05:41.990
get more images back like that.
Time goes by.

02:05:42.490 --> 02:05:44.520
One day you see an image like this.

02:05:44.890 --> 02:05:50.470
Now, this is because we are able, as I
said, to understand on the client what

02:05:50.720 --> 02:05:55.320
your use of the PC is and communicate that
data to the service to give personally

02:05:55.550 --> 02:05:58.790
relevant suggestions.
And so I want you to imagine a user who's

02:05:58.930 --> 02:06:03.730
had Windows 10 for six weeks or eight weeks
and they haven't used Cortana yet.

02:06:03.980 --> 02:06:07.280
They haven't tried it out.
And because they haven't tried it out,

02:06:07.750 --> 02:06:11.970
our service is able to provide the client
with a set of options that we can display

02:06:12.290 --> 02:06:16.930
to help users learn about, discover,
and engage with value in the Windows ecosystem.

02:06:17.270 --> 02:06:20.270
And in this case you see the image
that's suggestive of Cortana.

02:06:20.520 --> 02:06:22.960
There's a few more hotspots to
give you more information.

02:06:23.190 --> 02:06:27.260
If you click in the upper left, we'll give
you a preview of what the Cortana UI

02:06:27.520 --> 02:06:31.850
would be like, then you can click, give me
a try, then unlock your PC, will reveal

02:06:32.030 --> 02:06:35.200
the Cortana user experience and then
you can try it out for yourself.

02:06:35.390 --> 02:06:37.560
Keep in mind this is personalized,

02:06:37.730 --> 02:06:40.270
and it's informed by what you do on the PC.

02:06:40.440 --> 02:06:43.870
So if you're a power user who's been
using Cortana, you're not going to see this.

02:06:44.810 --> 02:06:47.920
Imagine time goes by.
You get more beautiful images.

02:06:48.160 --> 02:06:52.150
Your desktop PC or your tablet always
feels fresh with all this great stuff

02:06:52.320 --> 02:06:55.370
and then one morning you might
see an image like this.

02:06:55.640 --> 02:06:59.990
As a tablet user, you maybe have not tried
out all the capabilities of your

02:07:00.280 --> 02:07:03.400
tablet to do stuff like beautiful
artwork using the pen.

02:07:03.650 --> 02:07:08.370
And, in fact, here's an app that gives
you that kind of benefit that you haven't

02:07:08.470 --> 02:07:11.760
used so far, and there's a few extra hot
spots to help you learn about it.

02:07:12.130 --> 02:07:13.440
When you click in the upper left,

02:07:13.970 --> 02:07:18.900
the fresh paint app that's in the store
is described, and at any time you could

02:07:19.190 --> 02:07:23.450
choose to click "Get it now."  Your PC,
you'd unlock your PC, jump right into the

02:07:23.670 --> 02:07:26.790
store and then you'd be able to
install the app and try it out.

02:07:27.270 --> 02:07:31.680
And then a few days go by and you're back
to seeing your beautiful images.

02:07:32.040 --> 02:07:34.790
We call this feature the Windows
Spotlight, and it's optional.

02:07:34.900 --> 02:07:39.760
Any user can turn it on with their lock
screen and then get the value of learning

02:07:40.050 --> 02:07:44.800
about new things in the Windows ecosystem
in a way that's tailored for you and also

02:07:45.040 --> 02:07:48.130
get this beautiful stream of
images on your lock screen.

02:07:48.240 --> 02:07:52.360
So that's another way that we're going to
help users find and discover value in the

02:07:52.760 --> 02:07:53.960
Windows ecosystem.

02:07:54.620 --> 02:07:57.600
Okay.
I want to show you yet another part of

02:07:57.850 --> 02:08:01.760
our user experience that we've continued
to evolve with feedback from our Insiders

02:08:01.990 --> 02:08:07.120
and which has a lot of relevance to
users discovering and engaging with apps.

02:08:07.470 --> 02:08:08.270
That's Cortana.

02:08:08.450 --> 02:08:11.680
So, of course, we've done
lots of demos of Cortana.

02:08:11.790 --> 02:08:14.730
I'm not going to go through the end user
features of Cortana, but I want to show

02:08:14.870 --> 02:08:18.890
you a couple of ways that Cortana
will assist with engagement.

02:08:19.360 --> 02:08:23.190
I should quickly point out there's some
new UI that we have for Cortana that you

02:08:23.440 --> 02:08:26.120
all haven't seen yet.
You'll be getting this in a flight coming

02:08:26.250 --> 02:08:29.520
up soon.
Over here I have access to the Cortana home.

02:08:29.840 --> 02:08:35.040
I'll fold this out so you can see
the notebook, your reminders, your favorite places.

02:08:35.500 --> 02:08:37.000
And, of course, here is the Cortana,

02:08:38.090 --> 02:08:42.170
the place where she gives you proactive
suggestions and information based on your interests.

02:08:42.560 --> 02:08:44.360
You can see I follow Microsoft stock,

02:08:44.520 --> 02:08:49.400
I follow the Mariners baseball team, I care
about sports news in general, the Seattle

02:08:49.640 --> 02:08:52.590
Seahawks and so on.
So those are personal interests that I've

02:08:53.080 --> 02:08:55.760
educated Cortana about, which are relevant

02:08:56.020 --> 02:08:58.590
to me, and you'll see how this
comes up again later.

02:08:58.810 --> 02:09:04.330
Now, one of the really high use cases for
that Cortana edit control right there

02:09:04.560 --> 02:09:09.090
is people typing to ask questions,
get information, but also to launch apps,

02:09:09.410 --> 02:09:13.840
and we think that's a great, relevant way to
help people discover new value as well.

02:09:14.040 --> 02:09:16.320
So imagine I'm running Star Wars

02:09:16.540 --> 02:09:20.850
Commander on my PC.
I've got it installed, and I run it a lot.

02:09:21.170 --> 02:09:25.320
I might start typing in to launch the
app, and you'll notice in this case

02:09:25.560 --> 02:09:29.870
there's a new Star Wars Rebels app in the
Star Wars app family, and we're going to

02:09:29.990 --> 02:09:33.330
promote right up at the top this new
app that's available for you to install.

02:09:33.740 --> 02:09:37.340
Now, I will point out, because you may be
sitting there thinking, hmmm, that's not

02:09:37.490 --> 02:09:40.280
that much promotion.
We've done some user testing on this,

02:09:40.560 --> 02:09:44.460
and we're going to bulk up that store app tile
to provide a little bit more information

02:09:44.760 --> 02:09:47.950
more along the lines of what you saw in Start.
So we think this is going to be quite

02:09:48.100 --> 02:09:52.320
a helpful way to discover new apps
that are available in the store.

02:09:53.180 --> 02:09:56.680
Now, Terry mentioned this and Satya mentioned
the notion that we care about

02:09:56.990 --> 02:10:02.800
natural interaction, and we want Cortana
to represent a single way for users on

02:10:03.050 --> 02:10:07.570
Windows to interact with all kinds
of capabilities that are built throughout the ecosystem.

02:10:07.990 --> 02:10:12.690
So we're connecting Cortana's typed
natural language and spoken natural

02:10:12.970 --> 02:10:17.090
language deeply into your apps, and
we're doing this in two ways.

02:10:17.390 --> 02:10:20.490
This is quite a bit farther than we did
with Windows Phone before, so I want you

02:10:20.590 --> 02:10:23.930
to show you the range of sorts
of things that are possible.

02:10:24.420 --> 02:10:28.060
I want you to imagine in one case I want
to bring up the app to do a task with the

02:10:28.250 --> 02:10:32.560
app, and in the other case I simply want
Cortana to get something done for me using

02:10:32.890 --> 02:10:36.450
the technology that's part of an app.
So here are a couple of examples.

02:10:37.330 --> 02:10:42.720
Hey, Cortana, start a chat with
Terry Myerson on Viber.

02:10:44.620 --> 02:10:46.800
>> Starting a chat with Terry Myerson.

02:10:47.040 --> 02:10:50.270
>> Now, in this case I gave
a natural language query.

02:10:50.540 --> 02:10:53.440
I said I want to start a chat, I said it
was with Terry, and I said I wanted her to

02:10:53.580 --> 02:10:57.400
do it on Viber.
And in this case she opens up the app,

02:10:57.740 --> 02:11:00.660
I'm in my chat context with the previous
chatting we were doing and I could keep

02:11:00.880 --> 02:11:04.060
going with my chat.
So it's sort of a deep app launching kind

02:11:04.470 --> 02:11:07.470
of task.
But then there's a whole class of tasks

02:11:07.870 --> 02:11:13.010
where we want Cortana to represent being
a personal assistant that can get things

02:11:13.190 --> 02:11:17.750
done for you even using the capabilities
that are written into the apps that are

02:11:17.990 --> 02:11:21.850
part of the Windows ecosystem.
So I can ask Cortana to execute commands

02:11:22.150 --> 02:11:24.820
in apps and get confirmation right on her canvas.

02:11:25.550 --> 02:11:26.990
Hey, Cortana.

02:11:27.330 --> 02:11:31.790
Tell Terry Myerson I'm running
really late using Viber.

02:11:34.930 --> 02:11:37.710
>> Okay.
Message Terry Myerson on Viber.

02:11:37.950 --> 02:11:41.420
Myerson, I'm running really late.
Sounds good?

02:11:41.640 --> 02:11:44.420
>> Yep.  Yes.  Yep.

02:11:44.800 --> 02:11:48.630
>> Message sent.
>> Okay.

02:11:48.760 --> 02:11:51.830
There we go.
So you get the idea here.

02:11:51.940 --> 02:11:56.560
Now, in this case I asked Cortana to do
something using an app, and in that case

02:11:56.690 --> 02:12:02.080
the app UI didn't need to get displayed
and so Cortana's canvas was able to do the disambiguation.

02:12:02.360 --> 02:12:05.230
If I want to, I could go right here and
click the link to open the app, but that's

02:12:05.500 --> 02:12:09.010
not what I need to do.
There's Cortana helping me get stuff done.

02:12:09.880 --> 02:12:12.050
Okay.
So I've talked about the lock screen,

02:12:12.220 --> 02:12:15.000
the start screen, Cortana.
There's one other really big feature in

02:12:15.220 --> 02:12:18.510
Windows 10 that has relevance to
this conversation to all of you as developers

02:12:18.760 --> 02:12:21.600
and that is Project Spartan.

02:12:21.850 --> 02:12:26.160
Project Spartan, Project Spartan.
You know, I have to admit our PR team has

02:12:26.350 --> 02:12:30.350
been giving me and us a hard time because
they say it's not a great idea to keep

02:12:30.670 --> 02:12:34.620
saying "Project Spartan" when that's not
really the name of the Web    would you

02:12:34.800 --> 02:12:37.710
like to hear the name of the new
Web browser in Windows 10?

02:12:37.860 --> 02:12:40.160
Okay.
Let's run the video!

02:13:56.400 --> 02:14:01.880
Microsoft Edge is the browser built for
Windows 10, and it will be available on

02:14:02.280 --> 02:14:06.790
the widest range of Windows 10 devices.
And for us, the name refers to the idea

02:14:07.150 --> 02:14:12.350
of being on the edge of consuming and creating.
It refers to the developer notion of

02:14:12.620 --> 02:14:15.820
being closest to the modern
capabilities of the Web.

02:14:16.200 --> 02:14:20.630
And so it is a browser that end users
will think about for getting things done,

02:14:21.110 --> 02:14:25.390
for things like note taking on the Internet,
for a great way of reading

02:14:25.890 --> 02:14:29.760
and consuming content.
And it's a browser that has Cortana built

02:14:30.000 --> 02:14:33.510
in, so it learns the things that you care
about and helps you get things done.

02:14:33.880 --> 02:14:37.110
I'm not going to go show any of that stuff.
We've shown that before.

02:14:37.360 --> 02:14:40.800
As developers there are a few reasons
that you're going to care about Microsoft Edge.

02:14:41.160 --> 02:14:44.680
You're going to care about the blazing
fast core technology that's inside it,

02:14:45.100 --> 02:14:46.900
and you will hear more about that in a talk tomorrow.

02:14:47.080 --> 02:14:51.030
You're going to care that we're writing
it as a universal Windows app, proving out

02:14:51.270 --> 02:14:55.080
the platform, and you're also going to
care because we're going to help it make

02:14:55.200 --> 02:14:58.960
users discover and engage with
your apps and your sites.

02:14:59.350 --> 02:15:02.220
So let me come over here and show you some
of what we're doing there, and I'm

02:15:02.360 --> 02:15:06.270
going to come down here on the E icon on
the task bar, which now has a completely

02:15:06.400 --> 02:15:11.510
different and better meaning than it has
for a while, and open up Microsoft Edge.

02:15:12.050 --> 02:15:16.560
Now, the first thing that I want to show
you that's new is the New Tab page that

02:15:16.790 --> 02:15:20.510
we're adding to Microsoft Edge.
Today in IE, the task of starting a new

02:15:20.680 --> 02:15:24.310
tab and starting new Web browsing happens
over a billion times a day.

02:15:24.480 --> 02:15:29.560
So this is a heavily used piece of UI,
and you'll see here how we're going to

02:15:29.830 --> 02:15:33.510
take advantage of Cortana's presence in
the browser and understanding of you,

02:15:33.880 --> 02:15:38.630
along with an understanding of value in
the ecosystem to give users a great way to

02:15:38.810 --> 02:15:42.080
start their Web browsing experience
or to discover other things.

02:15:42.400 --> 02:15:45.510
So you can see, of course, I can type
to enter a Web address or do a search.

02:15:45.790 --> 02:15:49.030
Up here are my top sites.
And in some cases there's an app for

02:15:49.390 --> 02:15:52.710
these sites in the store.
So we make that discoverable and available.

02:15:53.010 --> 02:15:56.660
As I scroll down, you'll see here's
some featured apps that we're showing.

02:15:56.870 --> 02:15:59.340
Here's a lot of new stories
that are relevant to me.

02:15:59.590 --> 02:16:04.110
In fact, my sports favorites that you saw
in Cortana and my stock watch list in Cortana.

02:16:04.290 --> 02:16:07.020
Those are represented right
here in the new tab page.

02:16:07.370 --> 02:16:11.450
That's an example of Cortana helping to
compose this in a way that's useful to me.

02:16:11.720 --> 02:16:16.850
So that's New Tab, and we've been testing
this a ton, and we're optimistic about its

02:16:17.070 --> 02:16:21.700
opportunity to help people discover
and connect with work that you all do on the

02:16:21.910 --> 02:16:23.040
Web and in apps.

02:16:23.620 --> 02:16:28.010
Now, there's another big thing that we're
doing in Microsoft Edge that has huge

02:16:28.140 --> 02:16:32.360
relevance to you and that is enabling users
to engage with your sites and give

02:16:32.640 --> 02:16:36.780
you a shot at starting to write some Web
code, which you may put into an app via

02:16:37.070 --> 02:16:40.770
Web extensions built into Microsoft Edge.

02:16:41.120 --> 02:16:43.650
So I'm going to show you a couple of Web extensions.

02:16:43.800 --> 02:16:48.430
This is HTML and JavaScript, Web extensions,
using Web standards that

02:16:48.670 --> 02:16:51.750
people have been writing for Firefox
and Chrome for quite a while.

02:16:52.210 --> 02:16:56.750
We've grabbed a couple of these from Chrome
with just a few minor modifications

02:16:57.220 --> 02:16:59.880
and we're lighting them up right
here in Microsoft Edge.

02:17:00.020 --> 02:17:02.410
So the first thing, how many
Reddit users do we have?

02:17:02.600 --> 02:17:05.310
Yes? Come on, you must
be Reddit users.

02:17:05.810 --> 02:17:10.360
For those of you who are Power Reddit
users, maybe some of the other browsers,

02:17:10.630 --> 02:17:15.080
you've tried the Reddit Enhancement Suite,
which modifies the markup on Reddit to

02:17:15.370 --> 02:17:19.490
make it easier to find images and scroll pages.
Well, we've brought that to Microsoft

02:17:19.760 --> 02:17:23.280
Edge, as I said, with just a few changes.
So as I scroll down here, you'll see the

02:17:23.610 --> 02:17:30.680
Web has been altered via this little paw
print here that I can use to expand,

02:17:30.930 --> 02:17:33.990
and his little pig nose just kills me, too,

02:17:34.220 --> 02:17:36.410
as I look at this cute image.
Is that a cat or a mouse?

02:17:36.550 --> 02:17:39.240
I don't even know.
And as I scroll down here, you'll see the

02:17:39.430 --> 02:17:44.830
never ending Reddit modifies the page
to continue to expand it as we go.

02:17:45.280 --> 02:17:50.310
It was virtually no work to take this from
the Chrome extension store and run this.

02:17:50.720 --> 02:17:55.170
This is standards based, HTML and JavaScript
just running here as part of an extension.

02:17:55.630 --> 02:17:58.720
Now, another example which certainly
matters in terms of user engagement,

02:17:59.120 --> 02:18:04.220
up here you'll see we've added a Pinterest
extension to the browser toolbar, and when

02:18:04.430 --> 02:18:09.040
I click that, this is going to interact
with the markup on the page to show all of

02:18:09.200 --> 02:18:12.610
the images that was generated on the
Reddit Enhancement Suite and now I can

02:18:12.920 --> 02:18:16.530
find tons of things here that are incredibly
cute that I might pin to one of

02:18:16.830 --> 02:18:21.370
the many Pinterest cute animal boards that
I, and I know all of you, keep just for

02:18:21.720 --> 02:18:26.890
this sort of thing.
So with Project Spartan    with Microsoft

02:18:27.010 --> 02:18:30.480
Edge and the new support for these extensions,
you'll see how we're going to

02:18:30.720 --> 02:18:34.700
enable people to discover and engage with
code that you're propping up on the Web,

02:18:34.960 --> 02:18:37.660
and as I said, of course you could
bring that into an app as well.

02:18:38.110 --> 02:18:42.030
So you've seen for engagement the start
screen, the lock screen, you've seen

02:18:42.140 --> 02:18:47.350
Cortana and Microsoft Edge all helping
people discover value in the Windows ecosystem.

02:18:47.620 --> 02:18:51.310
But now what I'm going to do is change
gears and talk about how the Windows

02:18:51.570 --> 02:18:58.020
platform and universal Windows apps
make devices more valuable to end users.

02:18:58.250 --> 02:19:01.510
In general we have a vision and an idea

02:19:01.810 --> 02:19:06.440
that the Windows platform and apps written
for it should be able to flex to different

02:19:06.680 --> 02:19:12.260
screen sizes and different input methods
not by writing separate code but by having

02:19:12.410 --> 02:19:16.520
a platform that's smart enough to do it;
in fact, even dynamically on the same device.

02:19:16.830 --> 02:19:21.520
And we call this feature Continuum.
It's a promise to endusers made along

02:19:21.750 --> 02:19:25.820
with our OEM partners that devices can flex.
So I'm going to show you some of the ways

02:19:26.080 --> 02:19:31.240
that Continuum is evolving and I want to
show you some of the ways your apps can

02:19:31.400 --> 02:19:35.400
light up a great Continuum experience.
I'm going to start with an 8 inch tablet.

02:19:35.940 --> 02:19:39.670
This is a Lenovo ThinkPad.
It's running full Windows.

02:19:40.140 --> 02:19:44.090
It's got a Intel compatible part, and the
first thing you might notice, of course

02:19:44.320 --> 02:19:47.230
I'm going to use this in tablet mode.
So you're looking at tablet mode.

02:19:47.480 --> 02:19:50.830
But for those of you who paid attention,
especially if you've given us feedback,

02:19:51.320 --> 02:19:55.260
our touch start in tablet mode
we've simplified here.

02:19:55.500 --> 02:19:59.320
We've made the live tiles bigger.
This looks very familiar to Windows 8 users.

02:19:59.610 --> 02:20:04.760
And the extra stuff, your most used list,
your sign in, things like File Explorer,

02:20:04.990 --> 02:20:07.400
Settings, the Power switch are all over here.

02:20:07.660 --> 02:20:11.890
I can navigate to all apps.
All apps are shown nicely in this list.

02:20:12.140 --> 02:20:17.720
We now have jump lists working in here in
a nice way with animation and so on.

02:20:18.160 --> 02:20:20.970
So it's really easy for me to
navigate around my apps.

02:20:21.440 --> 02:20:27.380
Of course, down here in the system
task switcher, I've got my task switching

02:20:27.510 --> 02:20:30.020
button which I can use to switch
between lots of apps.

02:20:30.150 --> 02:20:33.650
Here's Excel.
That's the Excel for Windows 10.

02:20:34.290 --> 02:20:36.760
And what I'm going to do
here is jump into maps.

02:20:37.160 --> 02:20:40.210
I want to do some navigation in the maps
app here and I want to show you how this

02:20:40.420 --> 02:20:44.050
will scale to a more full PC like experience.

02:20:44.670 --> 02:20:47.610
So here I am in my map.
I'm going to go up here, choose the

02:20:47.920 --> 02:20:52.680
Favorites menu, and down here in this panel
on the bottom, we're first going to

02:20:52.810 --> 02:20:55.670
navigate to New York City.
And I want to point out that the system

02:20:56.040 --> 02:20:58.330
UI now includes a global Back button.

02:20:58.490 --> 02:21:03.330
So I'll hit the Back button, the app navigates
back, and now we'll navigate to Tampa.

02:21:03.690 --> 02:21:07.040
Now what I'm going to do, I want you to
and think about me using this in a very

02:21:07.180 --> 02:21:08.810
natural, touch friendly way.

02:21:08.980 --> 02:21:12.950
But now since it's a full PC, I'm going
to bring it back to my office and I'm just

02:21:13.110 --> 02:21:14.690
going to dock it in here.

02:21:14.860 --> 02:21:21.490
And when I do, I want you to notice how
the maps app experience changes to adapt.

02:21:21.680 --> 02:21:25.760
The panel that was on the bottom when I
was in portrait mode is now on the left

02:21:26.000 --> 02:21:31.330
side and, in fact, when I, you know,
restore this window, I've now got my

02:21:31.440 --> 02:21:36.840
Excel, I've got my PowerPoint all here
running in a familiar way with Windows

02:21:37.090 --> 02:21:41.730
that I can minimize and restore in PC mode.
So that's an example of Continuum really

02:21:41.870 --> 02:21:43.800
helping me flex on a small tablet.

02:21:44.380 --> 02:21:48.890
The next example I want to show you that's
new is here on this Surface Pro 3,

02:21:49.060 --> 02:21:55.250
where I have a rich, complex Win32
app, this is Autodesk's Maya.

02:21:55.490 --> 02:21:59.930
It's a high end, heavily used,
very popular 3D authoring app.

02:22:00.160 --> 02:22:03.410
And, you know, if you notice the UI, I've
got lots of toolbars and palates.

02:22:03.700 --> 02:22:08.290
Down here I've got the timeline, or I might
edit animation of my 3D character.

02:22:08.760 --> 02:22:12.520
But imagine I'm an artist and so I might
use this docked with a big screen,

02:22:12.640 --> 02:22:15.660
keyboard and mouse, I might use it like
this, but sometimes I'm going to remove

02:22:15.850 --> 02:22:18.130
the keyboard entirely and use it like a tablet.

02:22:18.460 --> 02:22:23.230
And in this case here's a Win32 app responding
to that change in state in the

02:22:23.480 --> 02:22:25.050
system and adapting its UI.

02:22:25.380 --> 02:22:30.440
And now I can use touch or I could use the
pen to be able to do things like mark

02:22:30.640 --> 02:22:34.610
up right on the character.
Maybe I'm now going to be in this mode

02:22:34.970 --> 02:22:39.690
where I want to take notes for people on
my team, share my thoughts on the character.

02:22:40.170 --> 02:22:45.950
The app flexes to take advantage of the
use of the pen and touch as opposed to

02:22:46.250 --> 02:22:48.810
mouse and keyboard, and in that case using Win32.

02:22:49.800 --> 02:22:53.020
Now, I have one last thing I want to show.
Thank you.

02:22:55.300 --> 02:22:59.300
I have one last thing I want to show.
So far we've shown this Continuum feature

02:22:59.700 --> 02:23:04.500
working with our shell and with apps on
the PC and watching the PC device flex

02:23:04.720 --> 02:23:09.400
across these form factors, but we have
a vision that not only the PC can benefit

02:23:09.690 --> 02:23:15.770
from flexibility and use of input devices
and screen sizes, so too can the phone.

02:23:16.020 --> 02:23:21.730
And so today we're excited to show for
the first time Continuum for phones built

02:23:21.870 --> 02:23:25.530
into Windows 10.
So let me give you a look at how that works.

02:23:25.750 --> 02:23:30.220
So over here I have a    now, I should point
out we need new hardware for this,

02:23:30.380 --> 02:23:34.090
and I don't have that hardware working today.
In fact, we're going to try a demo of

02:23:34.220 --> 02:23:37.040
that at a session on Thursday.
So you're seeing a simulation.

02:23:37.330 --> 02:23:39.220
What I'm going to do is connect my phone

02:23:39.620 --> 02:23:43.290
and, let's see, get this going.

02:23:44.260 --> 02:23:47.320
Once I connect my phone, I
want you to think of this.

02:23:47.440 --> 02:23:51.250
I've got a Bluetooth keyboard, a Bluetooth
mouse and a screen, just

02:23:51.400 --> 02:23:54.530
a screen that I'm connecting via HDMI, okay?

02:23:55.020 --> 02:23:59.500
So because this phone software has all
the core componentry that's highly shared

02:23:59.720 --> 02:24:02.950
between the PC, things like Bluetooth,
keyboard and mice, they're supported.

02:24:03.560 --> 02:24:07.130
And you might notice    I'm not
sure if the shot shows this.

02:24:07.230 --> 02:24:11.220
But at the top of my phone screen now,
it says, tap for mouse and keyboard controller.

02:24:11.610 --> 02:24:15.370
I could tap that and then get essentially
a mouse pad on my phone, but I don't need

02:24:15.500 --> 02:24:18.930
to do that because I have a full
Bluetooth mouse and keyboard.

02:24:19.100 --> 02:24:22.570
Up here on the monitor you'll notice
this looks very familiar.

02:24:22.900 --> 02:24:27.300
It's the same start menu with tiles I had
on my phone now displayed like a Start

02:24:27.400 --> 02:24:31.300
menu, and I'm going to start running apps
to give you a sense of how well the phone

02:24:31.480 --> 02:24:36.430
experience transforms through Continuum
to give you a very PC like experience.

02:24:36.700 --> 02:24:40.130
First I'll launch PowerPoint.
This is the version of PowerPoint that

02:24:40.530 --> 02:24:45.500
comes with the phone, and what you see on
the big screen here sure looks like the

02:24:45.810 --> 02:24:50.120
version of PowerPoint that you would see
on a PC because, in fact, it is the same

02:24:50.420 --> 02:24:54.730
code as the version of PowerPoint that you
would download from a store and see on a PC.

02:24:55.150 --> 02:24:58.580
I can do things like use my mouse and
keyboard to create a new slide.

02:24:58.900 --> 02:25:00.330
I'm going to go up here, use the ribbon

02:25:00.580 --> 02:25:02.020
to insert pictures.

02:25:02.300 --> 02:25:03.840
Remember, this is my phone.

02:25:04.100 --> 02:25:07.850
So as I'm inserting the photos,
I bring up my photos.

02:25:08.010 --> 02:25:09.450
This is the camera roll of my phone

02:25:09.780 --> 02:25:12.370
and the photos that I've synced from OneDrive.

02:25:12.620 --> 02:25:14.850
I'll choose an appropriate desert picture

02:25:15.070 --> 02:25:19.110
from a trip I've made to Utah and I'll
insert that into my PowerPoint

02:25:19.290 --> 02:25:23.930
presentation in a completely natural
and familiar way using the keyboard and the mouse.

02:25:24.300 --> 02:25:28.020
Let's look at some other examples.
I'm going to click here to go into mail,

02:25:28.500 --> 02:25:33.370
and the Outlook mail client that comes
with Windows 10 PCs and comes with phones

02:25:33.730 --> 02:25:37.770
is now viewed, and it looks completely familiar.
Here's my mail folders.

02:25:38.170 --> 02:25:41.850
I can choose a message in my inbox, and
over here I'll click the Reply button

02:25:42.330 --> 02:25:46.420
where I have the full power of the Word
engine embedded right in Outlook for doing

02:25:46.700 --> 02:25:50.900
replies, and there's the familiar ribbon.
You can see here Ann is asking me to

02:25:51.130 --> 02:25:55.220
update the latest expense report.
Eric's going to give me the December expenses.

02:25:55.360 --> 02:25:59.370
So I'm going to switch over here to Excel,
where we're doing our expense

02:25:59.500 --> 02:26:01.570
reporting, and you'll see here's Excel,

02:26:01.820 --> 02:26:07.620
the universal Windows app Excel running on
the phone but looking the same as it would

02:26:07.780 --> 02:26:11.450
on the PC.
I'll choose my expense reporting app,

02:26:11.700 --> 02:26:13.540
and look at this.
My phone just buzzed.

02:26:14.010 --> 02:26:16.220
I got a text from Eric right there.

02:26:16.700 --> 02:26:21.430
I'm going to click to navigate on my
phone screen separately to my text app.

02:26:21.700 --> 02:26:26.620
I'll press and hold to get the context
menu, and I'll choose copy because I'm

02:26:26.800 --> 02:26:31.970
going to copy from that text right
here to my December cell.

02:26:32.140 --> 02:26:36.970
And, of course, my brain is wired to know
the keyboard shortcuts for all these apps.

02:26:37.120 --> 02:26:39.100
So I will hit Ctrl V to paste.

02:26:39.500 --> 02:26:46.020
I'll use my task switcher to come back to
the Outlook email client, and I can do

02:26:46.180 --> 02:26:49.780
a quick reply and send.
Thank you.

02:26:52.270 --> 02:26:54.570
Now, think about this.

02:26:55.550 --> 02:27:00.130
With Continuum for phones, we believe
any screen can be your PC.

02:27:00.670 --> 02:27:05.330
Imagine that your company has a touchdown
space where anyone could connect their

02:27:05.730 --> 02:27:10.820
tablet or their phone to keyboards, mice
and screens and then use their apps with

02:27:10.980 --> 02:27:14.650
their data and the full power
of a keyboard and mouse.

02:27:15.020 --> 02:27:20.050
Or imagine you're on vacation and your
hotel room can become a theater, or you

02:27:20.200 --> 02:27:23.730
connect your phone to the screen or you
let your kids watch a movie while you use

02:27:23.970 --> 02:27:26.230
the second screen to catch up on your email.

02:27:26.470 --> 02:27:30.160
Imagine the effect this can have on mobile
first countries, where individuals

02:27:30.440 --> 02:27:35.970
could be as productive with the phone that
they are buying if they can't buy a full PC.

02:27:36.470 --> 02:27:41.330
So what we're trying to show here today
with Continuum is our unique vision for

02:27:41.480 --> 02:27:45.930
phones and enabling them to scale
up to a full PC like experience.

02:27:46.110 --> 02:27:50.850
And what we have so far is just the first
step because it requires all of you

02:27:50.970 --> 02:27:55.620
writing these universal Windows apps, whose
UI can scale and adjust to different

02:27:55.820 --> 02:28:01.370
form factors, input types and screen sizes.
As I said, this capability will require

02:28:01.620 --> 02:28:05.940
new devices that can drive dual screen,
and you'll hear more about them later.

02:28:06.300 --> 02:28:11.060
So that is my quick look at how we're going
to help all of you and our endusers

02:28:11.250 --> 02:28:15.220
discover value in the Windows ecosystem,
on the lock screen, on the start screen,

02:28:15.350 --> 02:28:19.370
with Cortana, with Microsoft Edge, and how
we're going to enable great new devices

02:28:19.650 --> 02:28:21.100
with Continuum.

02:28:21.550 --> 02:28:25.730
And I'm now excited to introduce to the
stage Alex Kipman, who's going to tell you

02:28:25.960 --> 02:28:29.890
even more about some great new devices.
Thanks a lot.

02:28:36.350 --> 02:28:39.050
>> Alex Kipman:  Thank you, Joe,
and good morning, everyone.

02:28:39.220 --> 02:28:42.970
Now, Joe just showed you how to do incredible
things with Windows, from the

02:28:43.300 --> 02:28:45.510
little screen to the big screen.

02:28:45.900 --> 02:28:51.140
Now, I get the pleasure to show you how
to do incredible things with Windows on no

02:28:51.250 --> 02:28:56.990
screens at all, with the same familiar
tools and skills you already have.

02:28:57.590 --> 02:29:04.670
It's surreal being here today, less than
100 days since we mixed holograms with our world.

02:29:05.280 --> 02:29:10.330
Less than 100 days ago, we showed you
how Windows Holographic amplifies what

02:29:10.810 --> 02:29:12.590
is human about each of us.

02:29:13.160 --> 02:29:17.660
Humans live in the real world, and we should
not be confined to the virtual or

02:29:18.310 --> 02:29:23.140
just the digital.
We experience life in three dimensions.

02:29:23.510 --> 02:29:27.250
We move, we see, and we hear in three dimensions.

02:29:27.860 --> 02:29:33.600
Our dreams, fantastical or entrepreneurial,
start in the real world.

02:29:34.390 --> 02:29:36.910
Windows Holographic embraces this notion

02:29:37.300 --> 02:29:40.050
of experiencing life in three dimensions

02:29:40.560 --> 02:29:45.710
by mixing digital content right into
your world, right into your life with more

02:29:46.000 --> 02:29:47.730
reality than ever before.

02:29:48.360 --> 02:29:51.150
Now, the truth of the matter is people,

02:29:51.700 --> 02:29:55.260
not devices, are mobile, and we are ready

02:29:55.750 --> 02:29:58.610
for technology to move beyond devices,

02:29:59.070 --> 02:30:03.940
to move beyond screens and pixels and to
move beyond today's digital borders.

02:30:04.750 --> 02:30:07.060
Now in January we showed you glimmers of

02:30:07.960 --> 02:30:13.940
this holographic landscape, glimmers of
this more natural way of interacting with

02:30:14.200 --> 02:30:15.960
digital content.

02:30:16.300 --> 02:30:18.600
We introduced Microsoft HoloLens,

02:30:18.960 --> 02:30:23.010
the world's first and only fully untethered

02:30:23.300 --> 02:30:24.800
holographic computer.

02:30:25.560 --> 02:30:27.970
And I have to admit we have been humbled

02:30:28.400 --> 02:30:34.720
by the outpouring of enthusiasm spanning
from consumers to businesses, and the

02:30:34.820 --> 02:30:36.960
response we receive from developers like

02:30:37.200 --> 02:30:39.800
yourselves has been remarkable.

02:30:40.460 --> 02:30:45.060
On behalf of the entire Microsoft
team, thank you.

02:30:45.260 --> 02:30:47.920
We share your enthusiasm, and today we

02:30:48.360 --> 02:30:53.350
take the next step in unveiling the
Windows Holographic platform.

02:30:53.960 --> 02:30:57.410
Focus on you, the dreamers, the creators,

02:30:57.700 --> 02:30:59.410
the Windows developers.

02:31:00.260 --> 02:31:03.060
So let's get started by taking a tour of

02:31:03.560 --> 02:31:09.860
Windows Holographic, and to help us with
that, please help me welcome on stage one

02:31:10.120 --> 02:31:12.920
of the creative minds behind holograms, Darren.

02:31:16.060 --> 02:31:18.230
Hi, Darren.
>> Darren:  Hello, Alex.

02:31:21.850 --> 02:31:25.030
>> Alex:  Now, before we start, let
me explain the setup a little bit.

02:31:25.260 --> 02:31:31.370
Darren is wearing a HoloLens, and he sees
this globe we showed you in January right

02:31:31.740 --> 02:31:32.860
in his world.

02:31:33.280 --> 02:31:37.320
Now we also have this custom camera rig
over here so that you can see the

02:31:37.560 --> 02:31:42.400
holograms up on these screens as if
the camera is wearing a HoloLens.

02:31:43.110 --> 02:31:47.710
Now when we introduced Windows Holographic,
the globe was just a slide.

02:31:48.450 --> 02:31:53.610
Today Darren is experiencing it
as a universal Windows app.

02:31:54.030 --> 02:31:56.750
And guess what? It's running
on Windows 10.

02:31:57.510 --> 02:31:59.550
Welcome to Windows Holographic.

02:32:09.770 --> 02:32:11.670
>> Alex:  This is life with holograms,

02:32:12.160 --> 02:32:15.340
and as you can see, Darren has customized his space.

02:32:16.000 --> 02:32:17.620
Instead of digging through menus,

02:32:18.160 --> 02:32:20.810
everything is right where he wants it.

02:32:22.080 --> 02:32:26.670
>> Darren:  Yeah, whether it's Microsoft
Edge, photos or video apps, these are

02:32:26.920 --> 02:32:30.270
simply universal Windows apps
that we placed as holograms.

02:32:30.480 --> 02:32:33.010
So whether it's a slate on the wall or

02:32:33.520 --> 02:32:35.430
something a little bit more dimensional

02:32:36.200 --> 02:32:40.780
like my loyal companion Fang here    hey,
buddy    you can customize your space the

02:32:41.070 --> 02:32:42.150
way you want it.

02:32:42.510 --> 02:32:46.510
Now I want to add something to my space.
So I'm going to pull up my holographic

02:32:46.810 --> 02:32:53.520
start menu, and I'm going to open up Skype.

02:32:53.680 --> 02:32:57.470
I'm the worst at keeping in touch.
So I'm going to take the people that

02:32:57.720 --> 02:33:06.130
matter most to me, and I'm going to pin
them to this wall right here, that way

02:33:06.350 --> 02:33:10.380
every time I walk into this room, I'll
see their smiling faces and be inspired to

02:33:10.600 --> 02:33:11.460
reach out to them.

02:33:12.650 --> 02:33:15.770
>> Alex:  We're all creatures of habit,
and we do different things in different

02:33:15.890 --> 02:33:19.960
spaces in our homes.
This stage, as an example, is modeled

02:33:20.440 --> 02:33:21.530
after Darren's apartment.

02:33:22.080 --> 02:33:24.820
>> Darren:  Yeah, and this is where I'd
hang out in my apartment and surround

02:33:24.940 --> 02:33:28.910
myself with the applications that I
want to access or just check out.

02:33:29.560 --> 02:33:33.520
For example, I'm planning a trip
to Hawaii in a couple of weeks.

02:33:33.650 --> 02:33:37.480
So I placed this awesome weather app over
here so when I'm moving around, I can

02:33:37.720 --> 02:33:41.320
easily glance at it, reference it
and understand what the weather's going to be

02:33:41.560 --> 02:33:43.520
like when I get there, hopefully still hot.

02:33:44.780 --> 02:33:48.350
Then if I look up here on the wall to
my left, I've got a video player.

02:33:49.280 --> 02:33:51.820
I simply reach out, air tap, and I'm

02:33:52.320 --> 02:33:53.910
right in the action.

02:33:54.770 --> 02:33:57.260
>> Now, what if Darren has things
to do around the house?

02:33:57.470 --> 02:34:00.750
He shouldn't be confined to
watching just on one wall.

02:34:01.120 --> 02:34:05.230
He should be able to take his entertainment
with him anywhere and remain

02:34:05.480 --> 02:34:07.390
hands free as he does it.

02:34:08.170 --> 02:34:10.810
>> Darren:  Yeah.
So all I need to say is follow me.

02:34:14.120 --> 02:34:17.340
Now wherever I go in my house,
my entertainment tags along.

02:34:24.770 --> 02:34:25.830
All right.

02:34:27.280 --> 02:34:34.160
And when I get to where I'm going, I simply
place it, and I can scale it as big

02:34:34.270 --> 02:34:35.230
as I want.

02:34:39.910 --> 02:34:43.430
Now, that's not something
just a video player does.

02:34:43.720 --> 02:34:46.720
Every single universal Windows
app has the same capabilities.

02:34:47.570 --> 02:34:51.010
For example, I placed the calendar over
here because as Alex will tell you,

02:34:51.230 --> 02:34:52.870
I'm late for pretty much every meeting.

02:34:53.250 --> 02:34:57.810
So this makes it, a guy like me, it makes
a lot easier for me to just check in

02:34:58.040 --> 02:34:59.420
and see what I've got coming up next.

02:34:59.850 --> 02:35:03.720
We're discovering uses for
holograms every day.

02:35:04.080 --> 02:35:07.150
We know with all you here at Build putting
your minds towards it, we're going

02:35:07.310 --> 02:35:08.870
to be discovering new uses every second.

02:35:09.170 --> 02:35:12.030
I hope you have an inspiring time at Build.
We'll see you out there.

02:35:12.270 --> 02:35:13.240
>> Thank you, Darren.

02:35:20.880 --> 02:35:28.210
As you just saw, holographic computing can
seamlessly connect the digital world with

02:35:28.560 --> 02:35:29.470
real life.

02:35:29.680 --> 02:35:31.920
This mixed reality grants us permission

02:35:32.320 --> 02:35:37.460
to reinvent productivity by creating experiences
not possible in any other

02:35:37.760 --> 02:35:39.630
device or any other platform.

02:35:40.580 --> 02:35:45.600
Back in January we asked you to imagine
an architect walking around their designs

02:35:45.970 --> 02:35:48.150
while clients reviewed them remotely.

02:35:48.660 --> 02:35:53.920
Now, the construction industry is
a multibillion dollar industry, yet many of

02:35:54.160 --> 02:35:56.370
their processes have remained unchanged.

02:35:57.210 --> 02:36:01.320
Over the past few months we have had
the great honor to partner with an

02:36:01.600 --> 02:36:03.520
organization that has been transforming

02:36:03.680 --> 02:36:07.050
the construction industry for over 60 years.

02:36:07.650 --> 02:36:12.080
So let's take a sneak peek at how
holographic computing, enabled by Windows

02:36:12.220 --> 02:36:17.480
10, is fundamentally changing how they
think about architecture, construction,

02:36:17.920 --> 02:36:19.010
and collaboration.

02:36:22.370 --> 02:36:27.120
>> Architects are dealing with shapes
and spaces and light and they dream in 3D.

02:36:27.720 --> 02:36:31.120
And then you need to translate this
design into a set of 2D documents.

02:36:32.320 --> 02:36:34.470
HoloLens represents a complete new paradigm.

02:36:35.770 --> 02:36:39.620
Trimble provides design solutions
for architects and structural engineers.

02:36:40.410 --> 02:36:43.070
>> Anything that involves getting
dirty is our business.

02:36:44.290 --> 02:36:48.040
Literally hundreds of enterprises
can be represented on a job site.

02:36:48.920 --> 02:36:54.120
Today the best way those companies have
to interact with each other is paper,

02:36:54.280 --> 02:36:57.800
paper drawings.
But people aren't good at visualizing 3 D.

02:36:58.650 --> 02:37:04.270
>> Microsoft HoloLens is a hood mounted,
self contained computer that lets you see

02:37:04.520 --> 02:37:06.810
holograms in the real world.

02:37:08.780 --> 02:37:12.770
You have the physical model as a focus point
for the team to collaborate around,

02:37:13.120 --> 02:37:17.430
and you get a hologram with the flexibility
to run quick iterations.

02:37:17.800 --> 02:37:20.320
>> You'll see how we brought in the
courtyard that you suggested.

02:37:20.920 --> 02:37:25.470
You see that mouse go off the screen and
into holographic space, and you're then

02:37:25.660 --> 02:37:27.870
interacting with the hologram, with the mouse.

02:37:28.120 --> 02:37:30.040
>> The thing that we can do for architects

02:37:30.210 --> 02:37:33.670
is really give them much higher confidence
around decisionmaking.

02:37:34.040 --> 02:37:37.360
One way we can do that is we can allow them
to literally immerse themselves in

02:37:37.610 --> 02:37:41.000
the scene of that building and see the
street side, how the building's going to look.

02:37:42.050 --> 02:37:46.670
>> Visualizing design data in the context
of a real environment is a much better way

02:37:46.960 --> 02:37:50.800
to make sure that the design is
implemented correctly on site.

02:37:52.210 --> 02:37:56.130
>> Microsoft HoloLens allows you
to collaborate with somebody regardless of

02:37:56.370 --> 02:37:58.270
distance, like they were there.

02:37:58.570 --> 02:38:01.280
>> Hello there.
>> Hey, Igor, where they are trying to fit

02:38:01.560 --> 02:38:03.240
this door, there's a beam behind here.

02:38:04.100 --> 02:38:06.270
>> I'm looking at this beam.

02:38:06.530 --> 02:38:08.210
We're interacting with that.

02:38:08.690 --> 02:38:13.670
A problem that we can see and being able
to solve that problem with all the data

02:38:14.070 --> 02:38:16.120
that we need in front of us in realtime.

02:38:19.300 --> 02:38:22.840
>> When I'm talking about enterprise
construction, I always compare it to

02:38:23.050 --> 02:38:25.210
people trying to make music together.

02:38:25.810 --> 02:38:29.870
Each one of them is contributing to the
harmony, but they all should be completely synched.

02:38:30.120 --> 02:38:32.670
>> My gray hair says I've been doing this
for a while, I've seen a lot of these

02:38:33.000 --> 02:38:38.520
things come and go, and I expect in five
years we'll all be interacting with the

02:38:38.920 --> 02:38:40.600
world with this kind of technology.

02:38:54.890 --> 02:38:57.390
>> Holograms are already being sculpted by

02:38:57.660 --> 02:39:02.870
some of the most innovative people around.
Now with this ability to design and shape

02:39:03.160 --> 02:39:07.300
holograms, you have a new medium to express
your creativity, to visualize your

02:39:07.560 --> 02:39:09.120
work and share ideas.

02:39:09.720 --> 02:39:13.520
Your digital creations become so much
more relevant when they come to life in

02:39:13.920 --> 02:39:15.070
the real world.

02:39:16.010 --> 02:39:18.760
But that's just the beginning
of what holograms can enable.

02:39:19.090 --> 02:39:21.270
Windows Holographic also provides you

02:39:21.650 --> 02:39:26.710
with a unique opportunity to change how
you teach and learn in more effective ways.

02:39:27.660 --> 02:39:32.720
On January 21st, we asked you to imagine
a surgeon learning a procedure without

02:39:32.920 --> 02:39:34.350
picking up the scalpel.

02:39:34.970 --> 02:39:39.320
Since then we have partnered with
an institution, accustomed to thinking beyond

02:39:39.440 --> 02:39:40.770
the possible.

02:39:41.290 --> 02:39:43.460
And to show us what they have been up to,

02:39:43.690 --> 02:39:48.570
please help me welcome on stage Professor
Mark Griswold from Case Western Reserve

02:39:48.710 --> 02:39:51.010
University and our team member Michelle.

02:39:51.380 --> 02:39:53.570
Hi, Mark.
>> Professor Griswold:  Hey, Alex.

02:39:53.680 --> 02:39:55.620
>> Hi, Michelle.
>> Good morning.

02:39:56.890 --> 02:40:01.330
>> Now, Mark is part of a team from
Case Western and the Cleveland Clinic.

02:40:01.580 --> 02:40:06.130
We invited them to use Windows Holographic
to advance medical education

02:40:06.290 --> 02:40:10.230
beyond what is possible with
today's state of the art.

02:40:10.440 --> 02:40:12.470
Take it away.
>> Professor Griswold:  Thanks, Alex.

02:40:12.760 --> 02:40:16.270
Today we use a combination of cadavers
and medical illustrations to teach

02:40:16.410 --> 02:40:17.720
students anatomy.

02:40:18.300 --> 02:40:21.680
This is a curriculum that hasn't drastically
changed in over 100 years

02:40:22.070 --> 02:40:23.870
because there simply hasn't been another way.

02:40:24.490 --> 02:40:29.270
The mixed reality of the HoloLens has the
potential to revolutionize this education

02:40:29.720 --> 02:40:32.260
by bringing 3 D content into the real world.

02:40:33.730 --> 02:40:37.240
Now, one of the biggest challenges
for students learning anatomy is understanding

02:40:37.530 --> 02:40:41.450
the body in three dimensions and how all
the different systems fit together.

02:40:42.490 --> 02:40:45.120
Using holograms, we can easily separate

02:40:45.490 --> 02:40:48.330
and focus in on individual systems.

02:40:48.490 --> 02:40:51.020
For example, we can focus in on the

02:40:51.260 --> 02:40:55.420
femur, and students can immediately see
some of the types of fractures they may

02:40:55.550 --> 02:40:57.010
one day encounter in the clinic.

02:40:58.460 --> 02:41:01.370
Now I can leverage all of these
new capabilities while maintaining the

02:41:01.620 --> 02:41:03.830
important connection with my students.

02:41:04.170 --> 02:41:08.080
When we're both wearing a HoloLens, I can
see what they are looking at, what they

02:41:08.410 --> 02:41:13.080
are interacting with, I can assess their
progress, and they can communicate with me

02:41:13.320 --> 02:41:15.120
and each other naturally.

02:41:15.520 --> 02:41:20.000
For example, I can see if Michelle has
a question in class, or whether Gwen has

02:41:20.360 --> 02:41:22.040
a question while learning remotely.

02:41:23.920 --> 02:41:26.210
Now, obviously a cadaver doesn't move.

02:41:26.690 --> 02:41:29.410
This makes it difficult to see the
way a living body actually works.

02:41:29.920 --> 02:41:31.740
HoloLens doesn't have this limitation.

02:41:32.010 --> 02:41:35.760
Systems can be animated to easily
see how things function.

02:41:36.490 --> 02:41:39.550
Let's take a look at the center of
the cardiovascular system, the heart.

02:41:39.890 --> 02:41:41.320
It's an amazing organ.

02:41:41.610 --> 02:41:43.880
In reality it's about the size of your fist.

02:41:44.860 --> 02:41:49.740
With HoloLens, we can easily scale up the
heart to let students see minute details.

02:41:50.690 --> 02:41:54.620
We can even see inside the heart
to see the valves in action.

02:41:56.180 --> 02:41:59.680
This is a new way of seeing things, and
it has the potential to help students

02:42:00.020 --> 02:42:04.250
understand the structure and physiology of
the body in a way that's just not possible today.

02:42:06.300 --> 02:42:11.050
Now, what you've just seen is a vision of
how HoloLens could enhance one single

02:42:11.330 --> 02:42:17.240
subject, but as an educator it's easy for
me to see that it's not just anatomy that

02:42:17.530 --> 02:42:18.840
could benefit from this technology.

02:42:19.090 --> 02:42:20.770
This could change how everyone learns.

02:42:21.490 --> 02:42:25.440
Imagine for a moment some of the other
fields that could be changed.

02:42:26.220 --> 02:42:31.890
For example, chemistry and genetics. Art.

02:42:34.410 --> 02:42:35.840
Engineering.

02:42:37.610 --> 02:42:39.510
And paleontology.

02:42:40.460 --> 02:42:44.480
And the best part is we get to help
define that future together.

02:42:44.980 --> 02:42:48.180
I can't wait to see what you future
holographic developers are going to do

02:42:48.330 --> 02:42:49.740
with this amazing technology.

02:42:50.330 --> 02:42:52.910
Thanks.
>> Thank you, Mark.  Thank you, Michelle.

02:42:58.490 --> 02:43:02.680
And thank you to our friends at Case
Western and the Cleveland Clinic.

02:43:03.530 --> 02:43:09.170
From NASA, JPL, to Trimble, to Case Western,
these are just a few of the

02:43:09.620 --> 02:43:14.410
amazing partners we are actively collaborating
with to transform different

02:43:14.650 --> 02:43:19.740
industries, now that holograms have
become part of our everyday life.

02:43:20.980 --> 02:43:24.210
Now I feel very fortunate to
be in this moment in time.

02:43:24.390 --> 02:43:27.490
All the different pieces are
starting to fall into place.

02:43:28.020 --> 02:43:32.940
As we enter this decade, the amount
of processing power you can get into a small

02:43:33.120 --> 02:43:35.650
form factor, for a reasonable price point,

02:43:35.870 --> 02:43:37.550
is just staggering.

02:43:37.790 --> 02:43:42.020
Even in the last few years, as we
developed HoloLens, the innovation in

02:43:42.340 --> 02:43:49.170
optics, sensors and silicon has allowed us
to move forward a few orders of magnitude.

02:43:49.870 --> 02:43:53.450
Now, people used to say computers
today can do enough.

02:43:53.640 --> 02:43:57.310
"My apps run just fine.
The Internet runs just fine.

02:43:57.470 --> 02:44:02.630
What are we going to do with all of this
extra computing power?"   And the answer

02:44:02.760 --> 02:44:07.000
to that is that we are going to put
a different emphasis on it, new workloads,

02:44:07.520 --> 02:44:09.950
focus on solving brand new problems.

02:44:10.670 --> 02:44:15.670
In other words, we are going to start using
all of this power specifically to

02:44:16.040 --> 02:44:19.540
help us understand humans
and the world around us.

02:44:19.990 --> 02:44:21.410
So how do you do this?

02:44:22.070 --> 02:44:24.810
With no wires, with no markers,

02:44:25.440 --> 02:44:32.100
no external cameras, with no phones
and no connection to a PC required?

02:44:32.470 --> 02:44:39.080
Let's learn a little bit more about this
amazing magical device that is Microsoft HoloLens.

02:44:42.720 --> 02:44:47.070
>> The hardware allows us to take these
visions, these ideas about these new

02:44:47.340 --> 02:44:49.140
products, and make it all real.

02:44:49.640 --> 02:44:53.620
>> Imagine a computer that allows you to
put your images anywhere, and you can

02:44:53.870 --> 02:44:57.590
interact with things as a combination
of the real world and holograms.

02:44:58.200 --> 02:45:01.670
>> You have a bunch of different systems
that need to come together in one big symphony.

02:45:02.360 --> 02:45:04.740
>> Every time you think you understand
it, it's like peeling an onion.

02:45:04.990 --> 02:45:07.630
There's suddenly another layer of things
that you suddenly realize, of course,

02:45:07.760 --> 02:45:10.420
we have to figure that out now.
>> We don't have room for error, we don't

02:45:10.580 --> 02:45:13.750
have room for drift, we don't have room
for those normal things that happen in a device.

02:45:14.120 --> 02:45:17.870
>> So it's working with these people
across the world and bringing it all

02:45:17.990 --> 02:45:20.330
together into this brand new product.

02:45:22.840 --> 02:45:25.240
>> We envisioned an all in one device that

02:45:25.440 --> 02:45:28.410
is untethered, with built in batteries,

02:45:28.960 --> 02:45:31.480
hands free, and floating audio.

02:45:32.120 --> 02:45:35.340
>> You have to come up with holographic
processing unit because you're constantly

02:45:35.670 --> 02:45:37.590
producing data every single millisecond.

02:45:38.270 --> 02:45:39.930
>> Visor lens, so complex.

02:45:40.270 --> 02:45:42.390
While it looks very simple and pure,

02:45:43.160 --> 02:45:45.470
it needs to accommodate so many requirements

02:45:45.840 --> 02:45:47.790
to see progressive content.

02:45:48.640 --> 02:45:51.390
>> The audio components need to take in
all of that information about, "where

02:45:51.720 --> 02:45:55.340
is my head, where am I looking," so that your
brain knows that there's something real

02:45:55.620 --> 02:45:56.310
over there.

02:45:56.520 --> 02:46:01.140
>> The enclosure wraps around a user's head
to provide great weight distribution.

02:46:01.710 --> 02:46:03.910
>> We have so many sensors on this product.

02:46:04.090 --> 02:46:07.960
To read all those in realtime and to do
that in a very power efficient way

02:46:08.230 --> 02:46:11.310
requires the power of what they develop
with a new version of Windows.

02:46:11.710 --> 02:46:14.230
>> We need to get the hardware just right
so that we can sort of unleash that

02:46:14.350 --> 02:46:15.260
creativity in the world.

02:46:18.430 --> 02:46:22.270
>> I think we have great ideas.
I think when we get it out to developers,

02:46:22.710 --> 02:46:24.430
we're going to get hundreds of great ideas.

02:46:24.910 --> 02:46:27.010
>> And that's what Build conference
is all about, right?

02:46:27.140 --> 02:46:30.530
We want to get it out to people, show them,
hey, this is real and this actually works.

02:46:30.920 --> 02:46:32.590
Now let's see what you can do with it.

02:46:47.480 --> 02:46:53.470
>> With Windows 10, holograms are universal
Windows apps, and all universal

02:46:53.730 --> 02:46:57.710
Windows apps can be made to work
on Windows Holographic.

02:46:58.160 --> 02:47:00.590
Everything you have seen here today is

02:47:00.970 --> 02:47:02.820
a universal Windows app.

02:47:03.190 --> 02:47:07.910
Developers, this opens up a new vein of
innovation and a new vein of opportunity.

02:47:08.520 --> 02:47:10.780
With holograms, you have a new canvas to

02:47:11.160 --> 02:47:12.740
express your creativity.

02:47:13.030 --> 02:47:17.930
Your apps can come to life, and they can
be experienced naturally in the world

02:47:18.220 --> 02:47:19.060
around you.

02:47:19.920 --> 02:47:21.710
But seeing is believing.

02:47:22.380 --> 02:47:27.730
So let's take a look at how portability
of experiences, enabled by Windows 10,

02:47:28.230 --> 02:47:34.530
can change the way makers like you interact
with the physical things that you build.

02:47:34.950 --> 02:47:38.380
And to show us mixing holograms with IoT,

02:47:38.990 --> 02:47:43.540
please help me welcome on stage
my very good friend Miko.

02:47:46.390 --> 02:47:48.540
>> Miko:  Hey, Alex.
>> Hi, Miko.

02:47:48.900 --> 02:47:50.500
>> Miko:  I'd like you to meet B15.

02:47:50.720 --> 02:47:55.390
This year millions of people will use maker
kits like this one to enter robot

02:47:55.680 --> 02:47:58.030
competitions and learn about electronics.

02:47:58.560 --> 02:48:00.790
Many of them will use Raspberry Pi 2

02:48:01.040 --> 02:48:03.720
which now supports Windows 10 IoT core.

02:48:04.370 --> 02:48:08.420
We were inspired to see what we could do
with the same hardware and HoloLens.

02:48:09.050 --> 02:48:10.380
So let me show you.

02:48:10.560 --> 02:48:12.250
B15, wake up.

02:48:15.860 --> 02:48:18.230
Say hello to the real B15.

02:48:19.040 --> 02:48:24.080
Because every Windows 10 device has APIs
for human and environment understanding,

02:48:24.970 --> 02:48:29.000
we were able to overlay a holographic
robot on top of a physical one.

02:48:29.770 --> 02:48:34.410
And one thing we noticed while working is
you need your data to be easily accessible.

02:48:34.890 --> 02:48:38.500
But adding displays to this frame increases
your costs, and there's no way

02:48:38.810 --> 02:48:40.400
to see all that information at once.

02:48:41.240 --> 02:48:42.960
So let me show you how we check on our data.

02:48:43.770 --> 02:48:45.570
B15, control panel.

02:48:49.020 --> 02:48:52.510
This spatial UI system is
a universal Windows app.

02:48:53.060 --> 02:48:58.200
I'm pulling the data from B15, making it
as big as I need it to be and placing it

02:48:58.480 --> 02:49:00.030
where it's relevant in my world.

02:49:00.220 --> 02:49:04.630
>> And I love it that Miko didn't have
to actually go back to her desk to do it.

02:49:04.880 --> 02:49:09.700
This is a great example of how Windows 10
makes your digital life more powerful by

02:49:09.930 --> 02:49:12.200
connecting it with your real life.

02:49:12.740 --> 02:49:15.430
>> That's right.
You can waste a lot of time tweaking

02:49:15.710 --> 02:49:18.030
variables on another device before you test.

02:49:18.770 --> 02:49:23.300
But if all I need to do is something simple
like change LED color, I can use

02:49:23.430 --> 02:49:25.890
a control scheme like this.

02:49:27.760 --> 02:49:32.920
So that's how we envision controls
and displays evolving with holograms.

02:49:34.250 --> 02:49:40.320
>> Now, so many industrial robots need to
find paths safely through their work spaces.

02:49:40.820 --> 02:49:46.790
Let's take a look at how Miko can help
B15 navigate and how holograms can help.

02:49:47.540 --> 02:49:52.090
>> So B15's sensors aren't great at
detecting obstacles, but the cool thing

02:49:52.270 --> 02:49:56.210
is they don't have to be.
My HoloLens can communicate that information.

02:49:56.940 --> 02:49:58.970
B15, pathfinding mode.

02:49:59.780 --> 02:50:03.400
>> Now, with Windows Holographic,
we can scan an environment.

02:50:03.610 --> 02:50:07.760
We can queue up movement tasks and
visualize the robot's path.

02:50:09.090 --> 02:50:11.200
>> So all I have to do is air tap the ground.

02:50:11.680 --> 02:50:14.490
My HoloLens interprets the 3 D points

02:50:14.860 --> 02:50:17.880
and tells B15 when to turn and when to move forward.

02:50:18.860 --> 02:50:23.490
>> Now, this is a great example of
how portable our Windows experiences can be.

02:50:24.010 --> 02:50:26.690
B15 didn't have to know its environment.

02:50:27.180 --> 02:50:30.690
The room understanding comes from Windows Holographic.

02:50:31.370 --> 02:50:35.240
But what happens when the environment
actually changes?

02:50:35.780 --> 02:50:39.010
>> That's no problem.
Because I'm wearing HoloLens, I'm always

02:50:39.130 --> 02:50:40.360
aware of B15.

02:50:40.740 --> 02:50:43.900
I can see it updated its
route to go around you.

02:50:44.210 --> 02:50:47.130
And this is critical if you are working
with bigger robots like those in

02:50:47.400 --> 02:50:48.830
automotive manufacturing.

02:50:49.130 --> 02:50:52.150
You need to always be aware of a robot's intentions.

02:50:53.220 --> 02:50:58.290
HoloLens helps developers to understand
robots better at any scale or

02:50:58.520 --> 02:51:01.330
in any scenario.
>> This is just amazing.

02:51:01.690 --> 02:51:04.320
Thank you so much, Miko.
And nice to meet you, B15.

02:51:04.700 --> 02:51:05.930
>> B15, say goodbye.

02:51:10.650 --> 02:51:13.320
See you later, Alex.
>> Later, guys.

02:51:17.970 --> 02:51:22.490
Now, at some point in time, you get
this feeling you could actually be creating

02:51:22.690 --> 02:51:23.810
something meaningful.

02:51:24.250 --> 02:51:27.120
But that feeling is materially different,

02:51:27.500 --> 02:51:29.800
from seeing architects excited about it,

02:51:30.300 --> 02:51:35.920
from seeing doctors and professors excited
about it, for seeing developers like you

02:51:36.290 --> 02:51:37.720
excited about it.

02:51:38.030 --> 02:51:42.810
People outside of Microsoft will
start understanding the tools, will start

02:51:42.810 --> 02:51:48.090
understanding what they have in front of
them, who start painting with this brand

02:51:48.210 --> 02:51:50.590
new palate and these brand new paint brushes.

02:51:51.700 --> 02:51:55.090
It's humbling, and it's exciting
at the same time.

02:51:55.570 --> 02:52:05.400
It is in that spirit that we have brought
hundreds of HoloLens devices just like the

02:52:05.700 --> 02:52:12.210
ones you saw on stage today, all running
on Windows 10 so that you here at Build

02:52:12.370 --> 02:52:15.130
can experience holograms for yourselves

02:52:15.370 --> 02:52:16.990
over the next few days.

02:52:26.140 --> 02:52:27.970
>> From holographic presentations

02:52:28.450 --> 02:52:34.170
featuring Skype, to one on one demos like
the Trimble experience I showed you

02:52:34.400 --> 02:52:37.170
earlier today, and my personal favorite,

02:52:37.940 --> 02:52:43.600
our very own Holographic Academy where you'll
be able to build your very first

02:52:44.000 --> 02:52:46.290
holographic experience from scratch.

02:52:47.170 --> 02:52:51.250
We have a lot to share with you
this week here at Build.

02:52:51.720 --> 02:52:55.640
Now, registration for all of this
begins after the keynote.

02:52:56.020 --> 02:52:57.600
Space is limited.

02:52:57.970 --> 02:53:03.370
So make sure you sign up for all of these
activities by going to the Web or simply

02:53:03.780 --> 02:53:05.210
by using the Build app.

02:53:05.820 --> 02:53:09.320
The Holographic journey starts with you,

02:53:09.620 --> 02:53:13.200
the Windows developers.
And it starts right here, and it starts

02:53:13.450 --> 02:53:14.400
right now.

02:53:14.900 --> 02:53:16.920
And with that, I want to thank you

02:53:17.170 --> 02:53:21.120
and let's welcome Satya back on stage.
Thank you.

02:53:25.700 --> 02:53:26.970
>> Satya Nadella:  Thank you, Alex.

02:53:27.250 --> 02:53:29.400
That's just magical stuff.

02:53:30.140 --> 02:53:32.840
Hopefully you get the essence of our

02:53:33.220 --> 02:53:40.330
ambition with Windows 10 when we say we
want to move the users of Windows to move

02:53:40.570 --> 02:53:45.010
from needing Windows, to choosing
Windows, to loving Windows.

02:53:45.870 --> 02:53:47.920
At the core of our company

02:53:48.660 --> 02:53:51.220
is empowerment, empowering us all.

02:53:51.770 --> 02:53:55.170
It's our mission to empower every person

02:53:55.540 --> 02:54:00.920
and every organization on the planet to
achieve more, and it starts by empowering

02:54:01.030 --> 02:54:03.810
every one of you, every developer on the planet.

02:54:05.110 --> 02:54:10.370
Thank you so very much for being here today
and for being at this conference.

02:54:11.060 --> 02:54:16.530
I thought we will end today's morning keynote
by playing the music that David

02:54:16.640 --> 02:54:18.190
composed for us this morning.

02:54:19.510 --> 02:54:23.390
Thank you and have a great rest of Build.
Thank you very, very much.

