►
From YouTube: PnP WebCast - What is PnP JS Core JavaScript library?
Description
In this PnP Webcast, we concentrate on covering PnP JavaScript Core library (sp-pnp-js). Key concentration is around the scenarios and value of what this library actually provides. PnP JS Core library can be used in SharePoint Online or in SharePoint on-premises to simplify access to SharePoint data in JavaScript development. More details from http://dev.office.com/blogs
A
B
Thanks
ray
so
we're
going
to
go
over
today,
we
get
the
question
a
lot
from
the
community.
What
is
the
SPP
and
PJs?
How
do
I
use
it?
What
is
why
does
it
exist?
How
does
it
relate
to
SharePoint
framework,
and
we
did
we've
actually
done
I
think
two
of
these
webcasts.
This
will
be
the
third
kind
of
what
is
this
library
and
we
kind
of
like
to
revisit
that,
because
everything
evolves
constantly.
B
So
today
we're
going
to
go
over
the
history
kind
of
where
we
got
to
where
we
are
the
current
state
so
where
we
are
we're
going
to
talk
about
the
relationship
with
SharePoint
framework,
how
they
fit
together
and
how
they
don't
and
just
sort
of
where
we
see
that
and
then
the
future
goals
of
the
library
and
how
we're
thinking
about
growing
it.
And
then,
of
course,
as
always,
we
think
about
the
feedback
from
the
community.
B
But
we
both
looked
at
each
other
at
the
end
of
I,
think
day
two
and
said
we
should
start
a
library
similar
to
the
patterns
and
practices.
Sison,
library-
that's
existed
now
for
probably
almost
three
years
and
it's
it's
there.
If
you've
used
the
the
managed
code
library
at
the
helper
library,
the
idea
is
to
be
very
lightweight
to
have
minimal
dependencies
and
to
be
easy
to
use
and
to
help
you
in
your
day-to-day
tasks.
So
we
thought
this
would
be
a
great
opportunity
to
start
something
for
the
JavaScript
community
for
the
client-side
development
community.
B
That's
something
that
patterns
and
practices.
We
had
some
examples,
but
not
a
very
heavy
presence
or
not
really
a
library
as
such,
you
could
take
and
use,
and
we
definitely
had
the
goal
of
complementing
SharePoint
framework
and
SharePoint
client-side
development
in
general
and
I.
Think
that
idea
we'll
talk
about
that
a
few
times
throughout
today's
session.
But
that
idea
of
complementing
the
functionality
is
we're
really
looking
to
work
with
SharePoint
framework
and
inclined
slide
development
to
help
folks
and
not
really
take
over
and
not
be
an
obstacle,
but
be
a
tool
in
the
tool
bag.
B
B
It
was
a
way
to
introduce
sort
of
these
concepts
like
gulp
and
github
and
NPM,
and
so
forth,
to
traditional
SharePoint
developers
who
done
cool
trucks,
co-development
or
add
in
development
and
who
might
have
even
done
a
lot
of
client-side
development
but
typically
in,
like
a
script.
Editor
web
part.
So
some
of
these,
what
folks
are
calling
modern
web
development
concepts,
and
so
that
was
a
way
to
sort
of
start
the
learning
process
and
start
that
roadmap
for
folks
before
the
SharePoint
framework
announcement.
B
So
that's
kind
of
the
history
of
why
we
got
started
that
idea
of
a
helper
library
similar
to
the
sison
library
complimenting
folks.
You
know
development
tasks
and
then
as
well,
introducing
sort
of
our
learning
roadmap
prior
to
the
release
of
the
SharePoint
framework
or
any
kind
of
mention
of
that
publicly
yeah.
A
That
was
kind
of
hard
time
at
the
time,
because
we
couldn't
be
able
to
explain.
Why
are
you
doing
all
of
this
gallop
nonsense
in
quotes
or
birthdays
nonsense,
but
it
said
none
and
I
know
this
is
where
we're
heading.
This
is
the
future
web
snacks
development
story,
which
is
kind
of
awkward
for
a
few
months
until
the
default
for
fourth
of
May
announcement,
and
then
it
all
make.
Let
us
finish:
yeah.
B
We
did
after
that,
get
a
lot
of
folks
come
back
and
say:
oh
I
get
it
now.
You
know
which
was
good
to
hear
because
I
mean
I
think
it
was
tough
when
you
can't
ever
say
and
will
trust
us,
but
you
can't
really
tell
people
why
so
I
think
it
was
good.
I
think
we
did
a
pretty
good
job
of
getting
the
message
out
in
a
secretive
way
and
I
think
we
only
hinted
about
what
was
coming
two
or
three
times
and
then
something.
B
B
We
do
monthly
releases
now
and
those
releases
are
driven
very
much
by
community
feedback,
so
people
reporting
issues
and
folks
also
reporting
not
necessarily
issues
that
are
wrong,
but
features
they'd
like
to
see
capabilities
that
don't
exist
or
that
they'd
like
to
see
enhance,
so
that
feedback
is
a
really
important
piece
of
driving
those
monthly
releases
and
those
releases
are
aligned
now
to
the
larger
master
releases
and
the
patterns
and
practices
programs.
So
we've
gotten
everything
aligned
there,
which
I
think
is
going
to
be
helpful
and
we're
constantly
improving
our
Docs
and
guides.
B
It
will
work
within
SharePoint
framework
and
as
well.
You
can
use
it
just
in
a
script.
Editor
web
part
on
a
page
so
or
it
included
like
if
you
have
a
JS
file
and
style
library-
and
you
include
it
in
the
library-
will
work
in
classic
SharePoint
as
well.
We've
to
date
were
used
in
419
tenants
to
make
eight
point
six
million
requests,
and
that
was
for
the
month
of
February
February
2017,
if
you're
looking
at
this
way
in
the
future.
But
so
that's
phenomenal
growth.
B
So
we're
growing
we're
almost
doubling
the
number
of
requests
each
month
and
we're
going
up
fifty
to
seventy-five
tenants
a
month
at
this
point,
which
is
really
exciting
to
see
that
growth
and
really
exciting,
to
see
the
folks
that
start
using
it,
the
usage,
doesn't
drop
off
so
I
think
some
clear
benefits
to
folks
using
this
library,
which
brings
us
to
our
next
slide.
So
why
would
I
use
this?
Why
would
I
care?
Why
wouldn't
I
just
use
jQuery
and
construct
my
requests?
B
You
absolutely
can
still
do
that,
of
course,
but
what
we're
hoping
is
that
this
is
helpful
and
going
to
take
off
some
of
the
sort
of
tedious,
repetitive
work
in
all
your
projects.
So,
for
example,
we're
handling
the
request,
digest
and
all
the
header
settings
for
you
when
you
make
requests
we're
ensuring
the
correct
JSON
format
and
the
type
values
like,
for
example,
when
you
create
a
list
item,
you've
got
to
have
the
ID
list
item
type
in
JSON
body
similar.
B
If
you're
creating
a
list,
you've
got
to
have
the
SP
dot
list
type
in
there.
We
kind
of
take
away
the
need
to
worry
about
that
and
you
can
focus
just
on
creating
your
list
in
your
items
as
needed,
easily
batching
things
if
you've
ever
tried
to
do
the
rest
request,
batching
and
write
the
parsing
for
that
yourself.
It
can
be
a
little
tedious,
there's
a
lot
of
code
to
write
there
to
construct
those
batches.
So
we've
made
that
easy
to
do
in
line
with
the
fluent
API
and
mentioning
that
fluent
API.
B
B
Get
the
intellisense
and
that'll
really
sort
of
guide
you
as
to
what's
available,
for
example,
lists
have
items,
lists,
have
fields
etc
and
you'll
kind
of
see
that
right
there
in
the
intellisense
as
you're,
going
through
and
you'll
get
that
type
checking
as
well
out
of
typescript
and
then
easily
install.
So
you
can
add
this
to
your
projects
with
NPM
install
SPP
and
PJs,
so
works
across
I
believe
pretty
much
every
project
type.
At
this
point
so
SharePoint
framework,
your
own
custom
projects
react
angular,
all
those
sorts
of
things.
B
Of
course,
if
you
have
trouble,
let
us
know,
but
we
think
at
this
point
that
install
nice
and
simple
works
across
all
things
and
then
another
key
I
mentioned
this
earlier
and
it's
important
to
mention
it
again.
It
works
with
classic
SharePoint,
SharePoint
framework
and
add-ins.
So
what
this
means
is,
if
you
were
to
take
our
library
and
then
start
to
build
off
of
it,
start
to
enhance
it.
That
was
something
that's
going
to
be
portable
for
you.
B
So
if
right
now,
you
might,
in
your
company,
be
working
on
premises,
SharePoint,
2013
or
2016
you're
using
our
library.
You
can't
use
SharePoint
framework
yet,
but
then
your
company
is
planning
to
move
to
the
cloud.
All
of
that
work
will
be
perhaps
with
a
few
modifications,
but,
generally
speaking,
all
of
that
work
will
be
transferable,
to
share
file
framework
and,
as
well
transferable
from
say,
a
script
editor
web
part
to
add-ins
sharepoint
add-in
development.
B
If
you,
you
know
with
again
possibly
a
few
small
changes,
but
overall,
the
bulk
of
that
work
will
be
able
to
transfer
between
any
of
those
three
kind
of
environments
for
lack
of
a
better
term
there
or
development
paths.
And
then
the
library
is
fully
extensible.
We
are
working
to
tell
that
extensibility
story
better.
So
there's
some
good
articles
out
there
in
the
wiki
and
that
developer
god
I
mentioned
earlier,
so
do
encourage
you
to
check
those
out
and
we're
working
on
making
the
library
more
extensible
in
the
future.
B
So
that'll
be
a
big
part
of
upcoming
releases
as
well,
and
so
the
ability
to
control
the
request
pipeline.
Some
other
things
like
that.
But
right
now
we've
got
the
ability
you
can
build
your
custom.
Business
Objects
bind
those
directly
to
your
templates
and
there's
a
good
example
of
that.
There's
a
knockout
j/s
example.
We
went
over
and
one
of
the
bi-weekly
calls
to
two
weeks
ago
on
that
so
definitely
check
those
things
out.
B
So
if
you
haven't
used
typescript
before
but
say
you're
coming
from
a
c-sharp
world,
this
would
very
much
be
like
a
using
statement
from
c-sharp,
but
so
we're
importing,
P
and
P,
which
is
the
default
object,
default
thing
out
of
the
SP,
P
and
PJs
library
and
we're
also
importing
selectively.
The
item
update
result
object.
We
can
import
selectively
other
things
such
as
web
or
list
things
like
that.
B
We'll
see
that
in
some
of
the
examples,
but
it's
important
to
note
with
typescript,
you
can
do
this
selected
import
and
we
our
export
from
our
library
many
of
our
core
objects.
So
you
can
pull
those
out
and
extend
them
in
your
applications
as
you
need,
but
looking
at
the
first
example
here
that
is
get
all
the
items
in
my
list,
so
you
can
see
we're
starting
with
our
root
object,
PNP
SP
for
SharePoint,
should
we
ever
branch
out
to
other
types
of
things
such
as
graph?
B
But
promises
give
you
this
idea
of
then
so
get
that
returns
a
promise
and
we're
saying
then,
once
that
promise
resolves
we're
going
to
get
an
array
of
items
back
and
we're
just
going
to
log
that
to
the
console,
and
so
that
would
be
all
those
items
from
that
list,
and
so,
if
you're
familiar
with
the
REST
API
and
the
underlying
SharePoint
REST
API,
you
can
sort
of
in
your
head.
Imagine
how
that
query
is
getting
built
out,
so
it
ends
up
being
Webb's.
Slash
lists,
slash
get
by
title.
B
Slash
items
would
be
the
actual
request.
That's
going
out,
so
that's
another
way
that
fluent
API
is
there
to
try
and
help.
Is
that
it
very
much
is
mimicking
the
query
you're
trying
to
build.
So
if
you're,
looking
at
an
example
that
doesn't
use
our
library
of
which
there
are
very
many
out
in
the
world,
you
can
sort
of
follow
through
in
our
library
by
building
that
same
query.
If
you
wanted
to
or
translate
that
into
using
this
library,
the
section.
A
A
B
B
B
You
can
just
do
it
in
line
and
you're
fluent
query
and
say,
give
me
the
top
five
items
ordered
by
created
and
get
those
and
we'll
get
five
items
back
from
my
list
in
order
by
created,
and
so
we
support
all
of
the
Oh
data
operators
that
are
supported
by
SharePoint
so,
for
example,
skip
filter
things
like
that
are
also
supported
and
again
easily
inline.
You
can
do
those
things
without
having
to
build
up
your
query.
You
know
from
scratch
and
then
the
other
thing
I
think
is
really
important
or
key
to
show.
B
Is
you
can
update
an
item
here?
We're
getting
item
I'm,
saying
there's
one
that
I
happen
to
know,
has
an
ID
of
five
but
we're
getting
item
ID
five
and
we're
updating
it
and
you'll
notice.
If
you've
ever
tried
to
build
a
rest
query,
you
have
to
create
kind
of
a
multi-level
JSON
structure
that
has
the
item
type
and
some
other
information
in
it,
and
then
your
fields
and
send
that
along
well
using
the
library
we
take
care
of
that
for
you.
B
One
of
the
nice
things
about
typescript
is
our
results,
are
typed
and
so
we're
getting
back
an
item
update
result
which
is
a
custom
piece
of
the
SPP
and
tjs
library
and
we're
just
logging
that,
but
one
thing
that
is
important
to
point
out
and
we'll
talk
about
that
a
little
bit
in
some
of
the
live
demos
is
that
item
update
result
has
a
dot
item
property,
which
is
actually
an
item.
Queryable
object
from
the
SVP
and
pjs
library,
meaning
you
could
then
immediately
start
chaining
off
of
that
updated
item.
B
A
One
thing
to
notice
on
the
update
is
that
you
don't
have
to
worry
about
the
deform,
digest
or
anything
like
that
or
what's
the
JSON
format
or
the
post
definitions
and
stem
headers,
and
everything
like
that.
So
it's
super
super
simple,
so
you
might
say
that
it
increases
productivity
of
the
developers
because
you
don't
actually
need
to
worry
about
all
of
that
and
in
quotes
nonsense,
which
you
need
to
always
do
when
it
when
you
operate
against
SharePoint
yeah.
B
We've
got
us
then,
and
we're
logging
that
web
data
that
comes
back
we're
doing
the
same
thing
to
get
all
the
lists
and
we're
doing
the
same
thing
to
get
all
the
items
from
my
list
again.
All
of
those
three
promises
will
resolve,
as
you
would
expect,
and
the
batch
has
a
promise
when
you
execute
it,
it
will
also
resolve
once
the
other
three
promises
have
all
resolved.
So
this
is
a
way
again
to
sort
of
do
an
update,
so
updates
are
supported.
All
requests
should
be
supported
in
batching,
so
you
can
do
your
updates.
B
B
Instead
of
just
doing
that,
you
could
update
your
UI
once
all
your
batch
activities
had
completed,
you
know
or
trigger
some
other
thing
that
needs
to
happen
once
that
batch
is
updated,
but
so
we've
been
able
to
eject
batching
into
our
fluent
queries
by
simply
adding
the
in
batch
operator
with
no
other
effort,
no
other
work
and
all
our
promises
and
everything
responds
in
the
way
we
would
expect
them
to
respond.
So
we'll
get
those
three
console.
B
Log
statements
will
fire
and
then
the
fourth
batches
all
done
statement
will
fire
so
again
really
covering
up
and
wrapping
up
a
lot
of
that
complexity
and
processing
the
batches
and
allowing
you
to
just
focus
on
I
want
to
use
batching
I've
added
batching
to
my
fluent
API
chain.
Batching
will
work
now.
So
that's
really.
B
B
A
B
Good,
so
what
I'm
showing
here
so
this
is
actually
if
you
were
to
go
fork,
the
SPT
and
tjs
library,
which
I
would
of
course
encourage
folks
to
do
you'll
have
this,
which
is
the
project
folder
structure,
and
what
I'm
just
going
to
show
today,
I'm
not
going
to
go
through
a
lot
of
the
code
in
the
library.
I.
B
Don't
think
that's
the
point
of
this
particular
webcast,
but
what
I
did
want
to
show
you
is
this
debug,
folder
and
I
have
some
different
demo
files,
but
you'll
have
debug
and
you'll
have
example
will
be
in
there
for
you,
but
you
can
add
these
additional
files.
So
if
I
look
at
the
debug,
you
can
see
I'm
setting
up
the
node
fetch
client,
so
one
of
the
other
nice
things
about
STP
and
pjs,
it
will
actually
work
from
node.js.
So
if
you're
doing
node
development,
you
can
run
this
on
your
site.
B
You'll
have
to
register
it
as
a
provider
hosted
add-in,
go
through
that
process
or
there's
opportunities
to
use
other
third-party
libraries
to
do
your
authentication.
So
you
can
certainly
do
that
as
well,
and
I've
got
a
blog
post
on
that
out
there
you
can
check
out
to
use
a
third-party
authentication
and
then
you
can
actually
use
user
accounts
or
a
couple.
Other
techniques
so
notice
that
client
we're
setting
up
a
client
ID
a
secret
in
the
URL.
B
This
is
all
done
for
you,
but
it
was
kind
of
showing
you
how
this
works
so
we're
subscribing
a
longer.
So
we've
got
a
kind
of
a
very
lightweight
logging
framework
in
the
library
and
then
we're
included
an
example,
but
I'll
change
this
to
be
demo
one.
So
if
you're
not
familiar
typescript
I'm,
saying
import
example,
which
happens
to
be
a
method
from
the
demo
one
module
and
then
we're
just
going
to
execute
that
method.
B
So
if
we
look
at
the
demo,
one
module
here
is
that
function,
so
we're
importing
the
PMP
here
I'm
using
a
relative
path
because
we're
actually
inside
the
project
I
haven't
installed
it,
but
you
would
do
SPP
and
pjs
in
your
projects.
This
is
just
simply
inside
the
library.
Looking
at
this
example
function
we're
setting
our
active
log
level
on
the
logger.
We're
ensuring
we've
got
a
list,
and
this
list
dot
insure
method
is
one
we've
added
to
the
library
and
what
it
does
is
first
check
to
see.
B
B
So
our
result,
dot
list
is
going
to
be
that
list
and
that
list
has
either
been
created
or
it's
the
one
that
already
existed
and
then
we're
using
a
method
called
get
list
item
entity
type,
full
name,
which
is
a
mouthful
that
gives
you
back
the
value
you
need
to
do,
updates
or
adds
to
a
list,
and
so
we're
passing
that
in
to
our
batch
as
the
second
parameter.
This
actually
helps
with
performance
so
again
we're
showing
batching
and
again
we're
chaining
directly
off
our
result.
B
List
items
in
batch
add
and
we're
adding
a
new
item
with
this
title,
title
title
title
and
then
we're
executing
our
batch
and
all
the
items
were
added,
and
so,
if
you
fork
this
repository
and
you
download
it,
you
actually
be
able
to
hit
f5
and
run
these
debug
examples
and
debug
examples.
You
write
on
your
own
as
well
so
hit
f5.
It's
going
to
take
a
little
bit
here
to
spin
up
it's
the
first
time
today
so
well,.
A
B
Well,
moving
on
sorry,
you
can't
expect
me
to
spell
okay,
so
one
of
the
things
I'll
show
you
here
is:
we've
got
this
debug
console
right
here
and
I'm
using
Visual
Studio
code
you're,
going
to
see
we've
added
a
lot
of
logging,
so
you
can
actually
see
the
request
pipeline
running
so
we're
getting
a
get
request,
sending
the
request
and
we've
gotten
an
error
here,
and
this
is
not
found
well.
What
what
does
this
mean?
Should
I
worry
about
it?
Well,
this
is
the
insure
method
working.
B
So
it's
saying
the
list
demo
list
does
not
exist
at
the
site.
That's
actually
an
expected
error
in
this
case,
but
we're
still
reporting
it
because
it
was
an
error
from
the
server,
but
we
then
are
actually
handling
it
and
you
can
see
we're
beginning
a
post
request
to
the
lists,
we're
sending
that
request,
we're
completing
it
we're
doing
a
get
request.
B
A
B
So
you
could
set
it
up
to
warning
or
to
error,
and
all
of
this
would
be
hidden,
except
of
course,
for
these
errors,
and
so
all
this
is
at
the
info
level
and
if
you
actually
switch
over
to
verbose
you're
going
to
get
everything,
that's
happening
so
you're
going
to
get
all
the
data.
That's
returned
from
these
requests
and
all
the
data
that's
getting
sent
for
these
requests.
B
So
if
you're
really
stuck
and
really
trying
to
debug
something,
for
example
in
like
production,
you
could
set
up
the
console
listener
and
dump
everything
that's
happening
in
the
library
to
the
console.
It's
a
lot
of
information
to
kind
of
wade
through,
but
it
can
really
help
if
you're,
in
a
situation
where
you're
just
stuck
on
something,
you
need
to
really
dig
through
it.
So
that
was
an
enhancement
we
made
a
couple
releases
ago
based
on
sort
of
experience
and
us
needing.
You
know
myself
needing
better
ways
to
debug.
B
So
so
we've
run
all
our
things
have
completed,
and
we
can
look
sorry
close
that
stop
that.
So
that's
our
example
running
here
in
node,
so
showing
that
you
can
work
in
node
and
I
wanted
to
show
you
sort
of,
as
the
last
part
of
the
demo,
for
this
I
wanted
to
show
you
making
something
like
this
work
in
your
browser.
B
B
Has
a
gulp
serve
command
does
essentially
the
same
thing
but
you're
going
to
see
this
is
going
to
run
web
pack
and
get
everything
going
and
there
we
go
we're
serving
the
file
from
that
URL,
so
we're
ready
there
and
the
last
thing
or
the
bottom
of
this
file,
not
the
last
thing
I'm
going
to
talk
about
with
this
is
I'm
using
a
polyfill
service.
So
we
get
a
lot
of
questions
around
something's,
not
working
in
i8n
something's,
not
working
in
IE
11.
How
do
I
deploy
this
across
my
you
know,
organization.
B
B
B
So
if
your
browser
doesn't
have
those
that
polyfill
will
come
back
and
then
it's
called
back,
I
just
use
the
name
stuff
as
loaded
to
make
it
kind
of
clear
what
is
happening,
but
that
callback
will
be
called
and
you
can
see
once
the
poly
so
loads
here.
We're
setting
our
div
with
the
word
hello.
So
this
polyfill
is
a
great
way
if
you're,
if
you're,
trying
to
deploy
across
your
organization-
and
you
don't
want
to
have
six
or
eight
different
polyfill
files
and
and
all
that
sort
of
thing
and
you're.
B
Ok
with
loading
this
from
a
CDN,
and
that
fits
your.
What
you're
trying
to
do
I
think
it's
a
great
service.
So
what
I
want
to
do
is
I'm
just
going
to
grab
this
code
right
out
of
this
function
and
that
code
would
run
a
node,
but
instead
I'm
going
to
paste
it
here
into
what
we're
doing
here
in
the
script
editor
and
the
only
change
I
need
to
make
is
putting
a
dollar
sign
in
front
of
the
PNP,
because
the
global
PNP
variable
has
a
dollar
sign
in
front
of
it.
B
So
we'll
get
our
result
back
and
then
we're
going
to
chain
off
of
that
result
using
caching
and
then
using
the
logger,
we're
going
to
log
it
to
the
console,
and
so
we're
getting
an
error
here
that
we
can't
edit
or
can't
use
a
script.
And
so
one
thing-
and
this
comes
up
a
lot
and
so
I
wanted
to
go
over
here-
is
because
this
is
getting
served
from
localhost.
Things
are
going
to
complain
about
it
and
the
way
to
kind
of
get
around.
That
is
a
interesting
I.
B
Know
that
I
hit
a
key,
but
there
I
did
so
you're.
Getting
this
warning,
so
I'm
going
to
say,
proceed
to
localhost.
Now
you
see
our
file
and
we'll
refresh
our
page.
Actually
let
me
save
this
again,
and
the
script
editor
is
on
the
page
and
if
we
hit
f12,
which
you
can
see
here,
is
all
our
data.
So
it's
gotten
I've
got
a
lot
of
items
in
that
list.
B
That's
my
large
list
testing
and
if
we
look
at
the
network,
you'll
see
no
requests
went
out
and
what's
interesting
is
because
we
kind
of
got
a
little
bit
out
of
out
of
the
border.
Is
that
if
we
look
at
our
local
storage,
you
can
see
our
list
data
is
stored
in
here.
This
is
one
of
these
guys.
Is
it
so
we've
got
our
list
data
so
we're
actually
going
to
clear
those,
and
if
we
refresh
our
page
again
the
problem
with
caching
examples
you
kind
of
got
to
catch
it
at
the
right
time.
B
If
we
look
on
network
you'll
see
here
is
our
select
that's
going
out,
so
you
can
look
through,
and
this
is
something
you
can
do
when
you're
debugging
as
well
you'll
be
able
to
see
here's
it's
getting
to
set
off
cookies
and
setting
the
cookies.
Here's
all
your
request,
headers
that
have
been
sent
that
we've
taken
care
of
here's
our
query
string
parameters,
so
you
can
see
it's
doing
the
Select
title
and
you
can
see
the
response
we're
getting
back
and
we
look
back
at
the
network
tab
you'll
see
we
did
not
do
that.
B
A
B
Absolutely
we
actually
have
the
libraries
published
on
CD
nsj
publicly
as
well,
so
you
can
use
it
from
there,
your
own
environment.
However,
you
need
one
thing:
I
guess
we
should
mention.
This
is
set
up
to
watch
your
files.
So
if
you
were
to
come
in
here,
make
a
change
to
the
library
this
would
recompile.
B
You
could
refresh
your
page
right
away
and
debug
and
see
any
problems
and
then
as
well,
if
I
go
back
on
the
f12
and
if
you
look
at
sources
you're
going
to
be
able
to
look
at
your
actual
source
files
and
set
breakpoints
and
debug
these
things
as
the
library
is
running
so
because
we've
got
the
source
maps
published
as
well
from
the
localhost.
It's
a
very
better
development
experience
than
we
had
come
when
we
first
started.
B
We
put
a
lot
of
work
into
this
and
we've
made
it
a
lot
nicer
for
developing
in
the
browser
testing
things
out,
debugging
things
and
really
getting
down
to
figure
out.
What's
going
on,
you
can
actually
look
at
the
CDN
polyfill
file.
What's
coming
back,
so
you
can
check
that
stuff
out,
not
much
I'm
in
chrome.
B
So
we
really
don't
need
you
know
much
at
all
from
the
polyfill
file,
if
anything,
but
so
really
neat
the
ability,
then
to
just
do
these
things
and
transfer
that
code
again
around
to
a
script
editor
web
part
to
node
to
type
script.
You
know
in
SharePoint
framework
or
even
to
add
in
development
or
your
own
project,
so
you
can
pull
this
into
an
angular
project
or
a
react
project
that
has
nothing
to
do
a
SharePoint
framework
and
take
advantage
of
some
of
these
capabilities.
B
Ok,
so
getting
back
to
the
slides,
then
that's
a
real,
quick
demo.
We've
got
other
demos
out
there
and
we'll
be
doing
more
in
the
future,
but
hopefully
that
was
a
good
kind
of
showing
you
some
of
the
capabilities
and
why
you
might
be
interested
in
using
the
library.
So
we
want
to
talk
about
now.
Please
move
on
a
little
bit
to
what
is
the
relationship
with
SharePoint
framework.
This
is
a
question
we
get
a
lot
from
folks
out
in
the
community.
B
Is
there
a
relationship?
Do
you
guys
seem
pop
to
each
other
etc,
but
to
be
very
clear?
First,
off
I
wanted
to
say
and
I
think
we
all
want
to
say.
Sharepoint
framework
is
the
future
of
SharePoint
client-side
development,
that
is,
the
product
group,
delivered
method
for
doing
client-side
development
in
the
future,
and
we
are
here
to
complement
that
we
aren't
trying
to
do
our
own
thing
or
Forge.
Our
own
paths,
the
SPP
and
PJs
library,
is
absolutely
here.
B
It's
a
complement,
SharePoint
framework
and
we've
worked
hard
to
make
sure
it
works
easily
inside
of
the
SharePoint
framework.
But
it's
not
there
place
it
or
to
sort
of
take
folks
down
a
different
road
at
all.
So
I
wanted
to
spell
that
right
away.
There's,
certainly
no
competition
between
the
two
SharePoint
scanners.
A
B
Absolutely
I
just
kind
of
wanted
to
say
that
out
loud
because
we
kind
of
get
that
question
and
people.
You
know
worried
or
wondering
so
we're
absolutely
here
to
complement
and
we're
here,
like
we
said
before,
to
make
those
repetitive
tasks
easier
to
make
it
so
you
don't
have
to
know
how
to
build
all
those
JSON
bodies
or
even
if
you
do
know
you
don't
have
to
worry
about
it
every
time
you
just
want
to
add
an
item.
Something
like
that.
B
B
Do
you
have
to
use
the
core
patterns
and
practices
component?
No,
of
course
not.
You
can
write
all
the
codes
you
need
to
do,
but
I
think
everybody
that's
ever
used.
It
has
found
it
very
helpful.
There's
a
ton
of
extension
methods
in
there
that
really
bottle
up
a
lot
of
code,
and
even
the
basic
stuff
is
having
to
execute
query
retry
method
available.
It
has
a
tremendous
amount
of
value,
and
it's
something
you
don't
have
to
I
know.
We've
all
spent
that
part
of
our
lives
copy
and
pasting.
B
My
answer,
that
is
please,
let
us
know,
we'd
love
to
have
a
look
and
we'd
love
to
get
aligned,
I'm,
not
aware
of
any
conflicts
and
like
I
said.
Our
goal
is
certainly
not
to
try
and
create
a
different
or
new
way
to
do
things.
That's
not
the
same
as
SharePoint
framework.
So
if
there
are
difficulties
or
conflicts
or
something
could
work
better,
that's
the
kind
of
feedback
we're
looking
for
so
again.
B
Sharepoint
framework
is
leading
the
way
we're
here
to
help
and
complement
that
effort
and
to
really
our
goal
is
helping
developers
be
more
efficient
and
really
take
a
lot
of
the
kind
of
the
repetitive
work
off
your
plate
and
put
it
in
a
reusable
format
that
you
can
just
load
in
your
project
and
get
to
be
productive
and
get
to
writing.
You
know
the
business
code
that
you
need
to
write
to
solve
your
customers
problems.
One.
A
Thing
there
may
be
two
ads
on
this
one,
even
though
it's
extreme
in
its
more
time
is
the
discussion.
Okay.
So
why
didn't
actually
ship
on
the
engineering
ship,
this
kind
of
a
thing
or
like
the
mpj
score?
Why
aren't
they
shipping
that
kind
of
a
simplicity
or
simplistic
abstraction
layer
on
top
of
the
rest
api?
A
And
the
answer
is
right
now
at
least
it's
more
convenient
to
do
that
with
an
open
source
community
driven
initiative,
maybe
at
some
point
in
the
future
it
might
be
part
of
the
SP
SharePoint
framework
or
maybe
SharePoint
frameworks,
and
since
it
turns
into
completely
open
source,
because
actually
that's
much
more
efficient
way
of
doing
stuff
together
with
community
making
sure
that
everybody
is
happy
about
and
rather
than
engineering
being
hidden,
somewhere
and
and
Bill
ship
releasing
stuff
without
having
that
constant
discussion
with
community
and
what's
needed.
So
this
advantages
and
disadvantages
in
both
options.
A
B
Yep
and
I
guess
two
things:
I'll
follow
up
on
that
from
the
very
beginning.
It's
funny
to
talk
about
the
SharePoint
framework
team
because
basis
sits
on
that
team,
but
from
the
very
beginning
of
SharePoint
framework
with
starting
with
those
developer
kitchens
and
then
once
it
became
sort
of
public
in
the
pre
releases
or
the
release
candidates
has
is
all
about
feedback.
Everything
is
very
feedback
driven,
and
so,
if
you
want
to
get
involved,
folks
are
listening
both
for
the
JavaScript
core
component
library,
but
also
for
SharePoint
framework
as
a
whole.
B
B
Know
so
really
Drive
that
feedback,
and
then
the
last
point
I'll
say
is:
if
there
ever
becomes
a
time
in
the
future,
where
there
isn't
a
place
for
the
PNP
jazz
core
library,
we'll
look
at
discontinuing
it
I
mean
that's.
You
know
a
simple
conversation
to
have
that
if
all
this
functionality
becomes
for
our
SharePoint
framework,
no
need
to
maintain
both
things
or,
if
there's
some
other,
better
utility
out
there
right
things
are
constantly
evolving
and
getting
better.
So
we
evolve
with
them.
B
Options
this
slide
is
a
nice
comparison
of
the
different
ways
to
access
data
in
SharePoint
from
SharePoint
framework
and
so
sort
of
going
left
to
right.
The
first
one
is
the
JSON
model,
so
the
classic
sort
of
execute
execute
query
async,
you
know
stuff,
you've
done
it,
mimics
the
client-side
model
or
the
managed
pardon
me.
The
managed
code
client-side
model
very
much
works
with
delegates
that
you
pass
in
it
does
not
support
promises,
which
is
a
I
think,
makes
for
a
little
bit.
B
Sloppier
code
looks
a
little
bit
sloppier,
I
guess
I
should
say,
and
it's
not
being
invested
anymore.
I.
Think
that's!
A
key
point
is
that's
not
going
to
the
enhanced,
so
you
can
certainly
import
those
libraries
use
them
inside
SharePoint
framework,
but
there's
going
to
be
a
day
where
that's
less
than
optimal,
the
averages
is
fair.
B
Good
I
would
say
of
what
you
can
do,
but
the
ease
of
use
again
is
hard.
You've
got
to
pull
in
some
stuff
that
by
default
isn't
part
of
SharePoint
framework.
You've
got
to
set
up
kind
of
that
structure
of
saying
objects,
loads
and
then
execute
query,
a
sync
and
then
handling
all
those
results
and
delegates
and
so
forth.
So
a
little
bit
harder
to
use
yep.
A
B
The
next
is
raw
rest,
so
benefits
about
that.
It's
the
same
across
anywhere.
Rest
is
rest.
So
if
you
know
how
to
write
a
rest
query
against
some
other
system,
you
can
write
a
rest
query
against
SharePoint.
It's
super
easy
for
the
get
request,
because
you
just
put
the
URL
in
and
say:
go
it's
complex
for
the
non
ones
non
get
request
because
you
have
to
construct
those
JSON
bodies,
but
it's
evergreen,
so
it's
you're
constructing
all
the
requests.
B
So
as
soon
as
an
API
is
available
in
SharePoint,
it's
available
to
you
to
call
you
just
would
have
to
build
the
request
yourself,
which
means
the
coverage
is
always
excellent.
It's
always
100%
because
you
can
construct
any
query.
You
want
and
send
it
through.
So
a
lot
of
power,
but
no
help
for
you,
the
developer.
It's
all
on
your
shoulders,
not.
B
So
you'd
have
to
deal
with
that.
You've
got
to
deal
with
making
sure
the
headers
are
all
set.
You've
got
to
deal
with
processing
the
results
to
come
back
because
you
can
get
different
JSON
formats
back
from
SharePoint,
depending
on
what
environment
you're
in
things
like
that.
So
it's
a
lot
more
work
in
my
opinion,
but
will
always
work.
I,
think
it's
important
to
say
and
the
coverage
is
always
100
percent
across
the
SharePoint
API.
B
B
It's
a
little
bit
easier
to
use
because
you
don't
have
to
worry
about
the
request
digest,
but
you
still
do
have
to
build
up
your
entire
request.
Bodies
which
forget
requests
again
is
dirt
simple
for
other
requests
can
be
more
complicated,
so
something
to
keep
in
mind.
So
it's
sort
of
like
raw
rest
with
a
little
bit
of
help
around
the
request,
digest
and
then
finally,
the
PM
pjs
core
it
has
the
fluent
API
we
looked
at
earlier.
B
It
works
natively
with
promises,
as
does
I
should
say,
the
SPSP
HTTP
client
works
with
promises
as
well,
which
makes
for
a
little
bit
neater
code.
I
think
a
little
bit
easier
to
follow
than
having
lots
of
Delegates
you
sort
of
chain.
Your
then
statements
together
and
then
it's
open
source
and
community
driven.
B
Nice
types
sets
of
results
and
that's
extensible
using
your
own
custom
business
objects
as
well,
so
you
can
easily
have
objects
with
your
own
properties
and
methods
and
get
those
loaded
from
SharePoint
and
then
operate
on
those
objects
or
bind
them
directly
to
a
template.
So
the
fact
we
don't
have
a
hundred-percent
API
coverage
I
think
is
balanced
by
the
ease
of
use.
But
if
there's
a
new
API
introduced,
there's
always
going
to
be
a
lag
before
it'll
be
introduced
into
the
J's
core.
B
B
So
future
goals.
Where
are
we
trying
to
take
the
library?
What
are
our
thoughts
about
the
future?
And
this
will
change
right?
Everything
changes
over
time.
Both
the
SharePoint
framework
and
the
Jazz
core
will
continue
to
evolve.
That
evolution
will
be
a
little
bit
in
parallel,
like
I,
say
we're
always
talking
with
the
SharePoint
framework,
folks
we're
being
responsive
to
the
work
they're
doing
they're,
of
course,
leading
the
way,
but
we're
being
responsive
and
making
sure
we
continue
to
work
smoothly.
B
Our
goal
is
to
continue
to
simplify
the
development
experience
so
working
on
an
extensible
pipeline,
growing
the
developer
guide
and
the
wiki
in
general
we're
working
always
on
more
samples,
and
we
continue
to
expand
that
you
know
SharePoint
REST
API
coverage
and
that
is
all
driven
by
community
feedback.
So
your
feedback
and
participation
is
key
to
this
library
growing
in
the
way
that
is
most
helpful.
So
if
you
again
see
functionality
that,
isn't
there
see
functionalities,
it's
broken,
let
us
know
that's.
You
know,
we'll
help
us
construct.
B
Our
roadmap
help
us
guide
the
development
effort,
of
course,
absolutely
encourage
you
to
submit
pull
requests,
build
some
functionality,
let
us
get
it
merged
in,
and
that
goes
for
all
those
things
we're
open
and
welcoming
for
help
on
the
developer,
guide
and
wiki,
creating
samples
to
hold
everything
right.
So
it's
an
open
source
community
project.
So
your
feedback
is
key,
but
that's
kind
of
our
sort
of
general
thoughts
right
now
and
if
you
have
thoughts,
please
share
them
with
us.
We
don't
be
hear
from
you
absolutely.
A
What
are
the
things
maybe
dimension
on
this?
One
is
the
the
provisioning?
That's
a
classic
discussion
point:
let's
not
spend
too
much
time
on
it,
but
we
used
to
have
a
provisioning
JavaScript
based
provisioning
in
the
PMP
chess
core,
but
as
Deb
has
been
now
relocated,
so
it
has
it,
it
will
be,
maybe
purchased
as
its
own
library
and
someone.
Yes,.
B
So
actually
interesting,
you
brought
that
up.
We've
had
a
a
person
has
submitted
about
12
pull
requests
that
so
somebody
has
picked
that
up
and
started
working
on
that,
and
your
help
is
welcome
there,
of
course,
too.
So
there's
a
provisioning
of
JavaScript
core
library
there
as
well.
So
would,
if
you're
interested
in
provisioning
from
node
check
that
out,
it
might
be
something
you
find
helpful
and
something
you
find
interesting
to
work
on
or
contribute
to
so
true,
good
good
thing
to
keep
in
mind.
B
First,
one
use
the
core
library
use,
SPP
and
pjs
in
your
projects
check
it
out,
use
it
see
if
it's
easier
for
you
I
believe
it
will
be
and
I
believe
you'll
find
it
really
helps
with
your
productivity.
It
helps
you
get
started
with
the
rest
development
a
little
bit
quicker,
and
so,
when
our
bi-weekly
call
so
we
have
a
bi-weekly
call.
So
our
next
one
is
march
30th
2017.
So,
if
you're
listening
to
this,
whenever
you're
listening
to
this
in
the
future,
March
30
is
2017,
is
the
next
call
from
when
we're
recording
this.
B
But
what
we
talked
about
in
there.
It's
a
it's
focused
on
SharePoint
framework
focus
on
SharePoint
client-side
development
in
general
and
focus
on
the
core
library,
so
those
are
kind
of
our
three
JavaScript
core
libraries,
they're
kind
of
our
three
topic
areas,
and
we
talk
about
those
things
we
do
updates
from
the
SharePoint
rainwork
what's
new
and
we
also
welcome
encourage
community
demos.
We've
had
some
really
great
demos
from
folks
in
the
community,
around
SharePoint
framework
or
around
the
JavaScript
core
library,
or
just
around
SharePoint
client-side
development.
B
You
know
in
general,
so
it
might
be
an
add
in
we
had
a
neat
demo
on
script
link
functionality
for
classic
SharePoint
a
couple
weeks
ago,
so
really
good
stuff.
If
you
have
a
cool
demo,
we'd
love
to
see
it,
we'd
love
for
you
to
join
the
call,
be
part
of
the
community
and
then
finally
provide
feedback
so
that
feedback
can
come
on
that
bi-weekly
call
the
issues
list.
Let
us
know
if
you
find
bugs
or
have
questions
we
have
a
Gitter
channel
tied
to
the
JavaScript
core
library
repo.
B
So
you
can,
you
can
ask
questions
and
get
some
feedback
there
and
then,
as
well
as
the
MS
Microsoft
Tech
community
is
another
great
place
for
your
feedback
and
ideas.
So
that's
my
call
to
action.
Do
you
guys
use
the
library
join
the
call,
join
the
community
and
provide
feedback
and
then
I'll
kind
of
add
a
fourth
hidden
bullet
point
of
you
know:
submit
pull
requests
really
looking
for
folks
to
jump
in
and
contribute
as
well.
So
don't
feel
like
you're
limited
to
just
submitting
issues.
We
are
open
and
welcome
to
pull
requests
absolutely.
B
With
that
I
think
we're
all
done.
I
hope.
Our
webcast
here
has
answered
the
question:
what
is
the
JavaScript
core
library
from
patterns
and
practices?
How
should
I
use
it
when
should
I
use
it
and
how
does
it
relate
to
SharePoint
framework
and
what
might
we
be
doing
with
it
in
the
future?
So
hopefully
those
questions
have
been
answered.
If
you
have
more,
please
let
us
know
and
like
I
said,
we've
done
a
couple
of
these
and
likely
will
do
another
in
the
future.
So
let
us
know.
A
Yeah
I
don't
have
anything
outside
either,
except
that
the
year
on
the
slide
is
wrong,
so
that
should
be
us
for
2017
nevermind,
but
everybody
but
Thank
You,
Patrick
autumn
effrontery
on
the
VM
PHAs
core
when
what's
happening
and
what's
what's
actually
going
on,
and
what
I
was
planning
to
do
in
the
future,
and
we
like
metrics,
that
we
absolutely
encourage
people
to
try
out,
give
us
feedback
if
it
works.
It's.
Why
and
more.
If
you
don't
like
it
tell
us
why.
Quite
often
people
tend
to
say
that
hey,
but
this
is
getting.
A
This
is
kind
of
hiding
all
of
my
HTTP
respiration
and
headers
and
everything
else,
and
that
can
be
considered
a
good
thing.
But
if
you
would
like
to
build
your
own
stuff,
for
this
is
a
risk
cause.
Yet
you
can
still
do
them.
Don't
use
to
library.
I
would
say
that
all
of
that
information
is
in
the
background.
You
can
still
access
that
and
you
can
control
stuffs.
A
You
can
still
do
weather
all
of
the
classic
things,
but
the
PNP
KS
core
makes
the
development
easier
and
that's
no
doubt
domain
of
charting
objective,
but
Thank
You,
Patrick
I,
think
that's
it.
Thank
you,
everybody
for
watching
and
listening
and
we'll
come
up
with
a
new
webcast
sooner
or
later.
Thank
you.