►
Description
Node.js and Microsoft: A Love Story About Developer Tools - Sara Itani, Microsoft
Node.js + Microsoft?! Yep, you heard us right. In this session, you’ll learn why Node.js is so exciting, why Microsoft cares, and – more importantly – what’s in it for you. Additionally, we’ll touch on many of Microsoft’s Node.js offerings and contributions, paying special attention to some of the exciting new developments in both Visual Studio and Visual Studio Code, as well as glimpse into the future with Node Chakra’s time-travel debugging.
A
A
So,
no,
no
don't
get
me
wrong.
I
mean
I
like
JavaScript.
It's
really
fun
at
all.
It's
just
that
I
never
really
considered
using
it
and
I,
don't
know,
say
production.
So
you
can
imagine
my
surprise
when
I
saw
everyone
jumping
on
the
node
bandwagon,
ranging
from
startups
to
large
scale,
enterprises
and
I
just
didn't
get
it,
but
now
I
think
two
years
later,
I
think
I
finally
understand
and
so
I
want
to
share
that
with
you
all
that
aha
moment
with
you
all
today.
A
So
when
we're
building
an
application,
it's
more
than
just
about
optimizing
for
speed
or
just
productivity
or
just
flexibility.
It's
about
striking
a
good
balance
between
the
three
of
those
and
I
think--not
does
a
really
great
job
of
that.
So
from
the
speed
front
right,
it's
not
the
fastest,
but
it's
super
fast
right.
A
It
has
a
lightweight
and
optimized
core,
so
you
only
have
to
use
the
functions
that
you
actually
want
to
be
using
it's
asynchronous
and
non
blocking
by
default,
and
it's
built
on
Chrome's
v8
engine,
which
is
the
fastest
JavaScript
tension
at
the
time.
Great
also,
because
of
the
absolutely
incredible
and
vibrant
ecosystem,
a
little
bit
of
code
goes
a
long
way
because
you
don't
have
to
keep
reinventing
the
wheel
and
then,
lastly,
you
can
develop
how
you
want
write.
A
Your
application
is
going
to
evolve
over
time
and
it's
going
to
need
different
things
at
different
points.
In
times
you
want
a
technology
stack,
that's
actually
going
to
support
you
there
and
no
does
just
that.
So
whether
you
want
to
be
developing
a
monolithic
application
or
whether
you
want
to
start
scaling
and
using
microservices
nodes
got
you
covered
or
whether
you
want
to
be
using
dynamic,
typing
or
static
typing,
with
tools
like
typescript,
you
have
that
option
at
your
disposal
and
so
that
that
balance
is
really
what
was
most
exciting
about
node
for
me.
A
But
then
the
question
is:
what's:
why
does
Microsoft
care
about
note?
Why
is
Microsoft
excited
about
node,
and
this
might
be
difficult
to
hear?
There's
really
no
good
way
to
say
this,
but
it's
not
us.
It's
you
you're!
Building!
All
of
these
absolutely
incredible
applications.
You're
building
up
this
absolutely
incredible
community,
and
we
want
to
support
you
in
that.
But
undoubtedly,
whenever
I
say
this,
the
skeptics
come
out
and
the
response
goes
something
like
this:
hey
Microsoft.
A
A
So
in.net
core
dinette
core,
now
supports
long
file
paths,
so
that's
a
huge
improvement
there
and
then
we're
also
chatting
with
the
windows
team
as
well
to
see
what
what
is
it
that
we
can
do
in
that
space
now,
in
those
cases
right
when
it
comes
to
platform
improvements
it
you
know,
it
depends
on
how
long
it
takes
for
those
improvements
to
actually
percolate
through
the
ecosystem.
But
at
least
there's
been
progress,
and
that's
it's
really
good
to
see
so
the
next
one
is
how
many
people
here
remember
this
thread,
because
I
do
so.
A
The
title
of
the
thread
is
it's
pretty
broad
and
the
problem
with
broad
threads,
at
least
in
this
case.
What
happened
was
it
it?
It
sort
of
just
turned
into
thread
for
everyone
who
was
generally
unhappy
and
happened
to
be
on
Windows,
but
the
core
of
the
issue
is
is:
is
this
native
modules
are
confusing,
so
native
modules
are
when
you're
using
a
bunch
of
C++
with
your
JavaScript,
and
then
you
start,
you
might
start
seeing
all
these
cryptic
compiler
errors
and
that's
confusing
because
your
JavaScript
developer.
A
So
what
is
this
and
that's
an
issue
with
just
every
platform?
So
not
just
windows,
but
the
thing
with
Windows
was
that
it
also
happened
to
be
kind
of
difficult
and
painful
to
actually
configure
your
environment.
So
people
weren't
really
sure
whether
is
an
issue
with
like
the
module
that
they
were
using
or
weather
is
an
issue
with
their
configuration,
and
it
turns
out
that
people
don't
actually
enjoy
downloading
8
gigabytes
worth
a
full-blown
visual
studio
in
order
to
NPM
install
some
native
module.
A
So
people
weren't
very
happy,
and
so
we
tried
and
take
try
to
take
care
of
that.
So
recently,
we've
released
the
sea
plot,
the
the
visual
c++
build
tools
which
are
actually
a
minimal
set
of
the
required
dependencies
in
order
to
compile
a
native
module.
So
that's
just
the
compiler
and
the
windows
SDKs.
A
This
is
with
the
windows
subsystem
for
linux
preview.
You
can
actually
go
and
actually
use
bash
on
on
windows,
and
so
those
were
the
top
three
frustrations
and
complaints
that
you
know
on
every
reddit
thread
anytime.
We
do
any
release
would
always
bubble
up
to
the
top,
so
I
just
wanted
to
get
all
of
that.
Now
that
that's
all
out
of
the
way,
I
hope
you'll.
A
Believe
me
when
I
say
that
we
want
you
to
be
as
productive
as
possible,
with
node
and
so
I'm
going
to
show
you
some
of
the
different
tools
that
we've
actually
built
in
order
to
help
with
that,
in
particular,
I'm,
going
to
focus
on
how
we've
actually
brought
some
of
the
magic
of
Visual
Studio
to
the
node
ecosystem.
Marketing
does
not
like
this
slide.
They
don't
like
when
you
modify
brands
and
stuff,
and
so
in
particular
we
have
two
different
offerings.
A
A
So
here
we
are
in
the
application
and
the
first
thing
actually
that
we
need
to
do.
This
is
vitally
important
as
we
need
to
comment
out
the
sentence,
because
we
cannot
have
this,
but
going
rogue.
That
would
not
be
good
and
so
basically
what
it
does
as
I
mentioned
is
it.
You
know
every
time
I'll,
tweet,
it'll,
tweet
back
some
inspirational
quote
like
or
tweet
like
nice,
tweet
or
dream
big
right
and
thats.
A
A
So
I
we're
just
going
to
go
for
the
next
best
thing
and
with
every
tweet
there
is
going
to
be
a
Satya
bobble
head
attached
to
that
and
I'll.
I
have
actually
the
code
to
generate
the
bobbleheads
later
on,
if
you're
interested
so
and
then.
The
other
thing
that
we
need
to
do
is
this:
is
the
test
account,
but
I'm
going
to
use
my
actual
twitter
handle,
because
when
I
test
things,
I
I
like
to
test
them
in
production
and.
A
We're
going
to
do
is
actually
before
we
do
any
of
that.
I
just
want
to
show
you
a
few
key
features
of
the
editor
that
in
the
environment
that
help
you
actually
write
your
code
right
so
right
here
we
see
that
we're
actually
requiring
the
fs
module
and
we
can
dot
in
and
see
that
we're
getting
code
completions
for
it
will
get
code
completions
for
four
node
or
any
of
the
most
popular
NPM
packages
and
those
are
provided
by
these
typing's
files
over
here.
A
So
there's
a
whole
ecosystem
around
this,
and
so,
if
you
were
to
require
Express
and
then
download,
the
Express
typing's
you'd
be
able
to
get
completions,
and
we
also
have
some
really
powerful
navigation
right.
So,
if
I
want,
if
I
have
this
on
tweet
function
over
here,
so
every
time,
I
tweet,
then
it's
going
to
call
that
I
can
take
a
look
shift.
F12
view
all
of
the
different
references
in
line
now.
A
A
When
we're
getting
the
status,
we
could
press
f5
again
and
then
go
into
Twitter
will
run
in
and
then
say
you
know,
like
my
tweet,
very
creative
right,
node
interactive,
because
that's
where
we
are
and
I'll
spell
that
right
and
we're
going
to
go
ahead
and
tweet,
and
then
we
should
hopefully
hit
this
breakpoint
might
take
some
time.
Don't
actually
see.
A
Okay,
so
oh
there
we
go.
Okay,
it
just
took
a
little
while
longer
I
guess
the
internet
was
being
a
little
bit
flaky.
So
we
can
go
ahead.
We
can
step
in.
You
have
all
of
the
different.
You
can
look
at
the
call,
stack
and
jump
in
between
that
we
can
keep
stepping
over
and
then
eventually,
you
know
step
out
of
the
application.
We
can
see
here
that
the
index
was
actually
5.16,
and
so
it
had
been
missing.
A
Was
this
mass
top
floor
over
here
and
we
go
ahead
and
add
that
then
it
would
have
got
it
worked
as
as
we
saw
so
one
of
the
things
that,
when
we're
designing
it
gets
this
Visual
Studio
code
that
we
wanted
to
make
sure
is
that
we
don't
want
to
limit
you
or
restrict
you
in
any
way
and
and
part
of
that
means
making.
It
super
super
customizable
for
all
the
different
workflows
that
people
are
using.
A
A
A
So
now
it's
gone
ahead
and
I
should
have
received
a
response
back
and
yeah.
You
got
it
thanks
Satya
and
we
can
go
back
to
Visual
Studio
code.
Now,
one
of
the
things
you'll
notice
is
there's
actually
a
folder
here,
TTD
that
includes
all
the
different
checkpoints
that
have
now
been
all
the
different
checkpoints
of
that
running
process.
And
now,
when
we
start
debugging-
and
in
this
case
it's
actually
using
a
different
debug
configuration
now
when
we
start
debugging,
we
can
press
f5.
A
But
we're
actually
going
to
see
that
we
have
the
exact
same
like
index
and
status
right,
so
we're
seeing
that
the
same
status
that
had
been
produced
was
you
got
it,
and
so
we
can
continue,
and
that
provides
just
an
easier
way
to
actually
inspect
your
code
now.
This
is
very
still
in
its
very
very
early
stages,
but
hopefully
in
the
future.
This
will
actually
help
diagnose
a
lot
of
those
those
those
issues
that
you
might
run
into
now.
A
One
of
the
key
things
that
I
just
wanted
to
mention
here
is
that
time,
travel
debugging,
isn't
a
new
idea.
It's
actually
been
around
for
or
there's
been
research
on,
the
topic
for
20
25
years
or
so.
But
the
key
innovation
here
is
really
just
how
performant
this
solution
is,
and
so,
if
you
notice,
there's
actually
fairly
quick
that
we
could
actually
checkpoint
process
and
replay
it
and
what
we've
seen
is.
A
If
you're
interested,
but
it's
it
is
really
really
neat,
and
so
with
that
I
promised
you
that
we
would
have
the
you
could
go
and
like
see
how
to
make
the
bobblehead
generating
application,
and
so
it's
a
nice
little
tutorial
that
you
can
run
through
and
we
also
have
a
bunch
of
really
great
resources
for
you.
So
the
first
is
we
have
this
nodejs
guidelines,
repo,
where
we've
just
been
putting
a
bunch
of
informal
notes
about
some
of
the
issues
that
one
of
the
things
is
about
working
in
developer
tools.
A
Is
that
you,
you
see
a
very
different,
interesting
perspective
on
the
world.
Mainly
you
get
to
hear
about
everyone's
problems,
and
so
eventually
you
get
tired
of
that
and
then
so
we
just
tried
to
put
that
all
in
one
place.
So
we
we
didn't
have
to
keep
rehashing
things
and
then
the
other
pieces.
I
really
encourage
you
to
go
and
download
Visual
Studio
code
and
download
the
time
travel
debugging
preview.
We
really
really
love
to
hear
your
feedback,
especially
if
it
happens
to
come
in
the
form
of
a
pull
request.
Thank
you.