►
From YouTube: PnP Webcast - Programmatically creating and updating modern pages in SharePoint Online
Description
More details on the covered content in this webcast from http://dev.office.com/blogs
A
B
B
A
lot
of
the
SharePoint
topics
actually
apply
also
for
on-premises,
where
the
capabilities,
whatever
the
capabilities,
if
it's
available
in
on-premises
a
kms
SharePoint
PNP,
is
to
one
address
to
remember
for
accessing
all
of
the
SharePoint
BMP
assets,
but
let's
actually
move
on
and
on
today's
actual
topic
and
birch
is
going
to
take
the
lead
and
I'm
going
to
jump
in
and
ask
questions
as
needed.
All.
A
A
Essentially
modern
page
is
a
page
in
a
SharePoint
can
be
two
things:
it's
a
page
in
a
SharePoint
modern
site,
so
the
group
site
which
by
default
makes
you
create
modern
pages
now
the
same
modern
page
can
also
be
created
in
in
what
we
call
classic
theme
sites
the
old-school,
the
insights.
They
can
also
have
modern
pages,
so
you
can
have
them
in
all
of
your
SharePoint
sites.
Nowadays
you
to
create
a
modern
page
dramatically.
You
have
to
follow
a
particular
pattern
and
this
kind
of
explained
on
the
slide.
A
So,
first
of
all,
it
is
adding
an
empty
file
section
on
tip
page
to
your
pages
library,
oops,
one
bank,
sorry,
so
the
pages
library
is
the
side
pages.
I
prefer
your
site.
You
get
the
root
folder
and
in
there
use
the
CSO
method.
Add
template
file
creating
a
template
file
of
the
type
client
side
page.
So
this
gets
you
a
page,
but
it's
not
yet
a
modern
page
is
not
fully
functional
to
make
it
fully
functional.
You
have
to
connect
the
modern
page
content
type
to
it.
A
So
every
setting
the
page
content
type
to
be
the
modern
edge
content
type.
We
give
it
a
title.
So
typically,
you
take
actual
page
name
like
my
pages,
a
specs
end
and
you
just
rip
off
the
HDX
extension
and
you
have
to
give
it
a
client
application.
Essentially,
this
is
pointing
to
the
SharePoint
feature
bringing
along
the
modern
page
functionality,
so
you
have
to
connect
them.
A
model
page
today
also
has
a
page
layout
type.
B
So
there
are
a
few
things
on
this
slide
because
we
move
forward.
So
first
of
all,
this
API
is
a
native
native
season
idea.
So
this
is
not
an
extension
or
BMPs
nation,
and
one
thing
may
be
to
call
out
that
the
we
mentioned
the
canvas
content.
One
is
essentially
the
content
of
the
page.
This
is
exactly
the
same
thing
as
wiki
field,
like
in
the
wiki
pages.
You.
B
A
Correct
I
think
the
difference
with
wiki
one
is
it
this
case.
The
structure
inside
the
HTML
structure,
inside
small
structures
and
easier
to
manipulate
so
I
think
is
an
improvement
compared
to
the
wiki,
but
it's
the
same
model.
Yes,
absolutely
cool,
excellent!
Okay!
Now,
let's
previous
ample
show
that
mph
in
just
emptied,
if
statement,
which
is
also
at
the
left
side
over
here.
So
this
is
an
empty
page,
nothing
more
than
an
empty.
This
really
really
simple.
A
Now,
obviously
you
want
to
do
more
for
a
moment
page
than
just
adding
an
empty
page
typically
want
to
put
some
client-side
web
maps
on
them,
some
controls.
So
how
do
you
do
that?
What's
the
structure
that
you
need
to
create
in
order
to
have
like
a
client-side
web
part
on
a
modern
page,
and
this
slide
is
giving
you
the
build
up?
So
we
have
the
empty
empty
page
is
left.
Then
all
web
parts
on
a
page
are
wrapped
into
a
control
placeholder.
A
So
this
top
section
is
showing
you
a
diff
data,
SP
canvas
control,
which
is
indicating
the
control
placeholder
and
a
version,
so
everything
stays
version
1.0.
But
if
we
extend
this
schema,
we
might
see
a
version
once
you're
in
the
future,
offering
additional
capabilities
and
then
there's
the
data.
The
control
data,
which
essentially
is
data
describing
and
the
control
inside
the
placeholder.
A
Moving
on
to
the
bottom
and
there's
a
client's
agrippa,
this
is
an
example
of
an
image
web
part
set
out-of-the-box
client-side
image
web
part.
You
see
again
that
the
control
placeholder
on
top,
so
the
canvas
controlled.
If
but
inside
that
this,
we
now
have
like
it
a
disk
with
a
data
SP
web
part
attribute,
which
indicates
this
is
a
client
side.
Web
part
on
the
model
again
is
expressed
similar
to
the
control
model.
A
A
It
also
refers
to
a
component
ID,
which
is
the
idea
of
the
actual
client
side.
Control
and
additional
HTML
properties
can
be
generated
when
you
render
the
data
when
you
render
the
control
like
this
sounds
complex
and
you
might
wonder,
like
do,
I
really
need
to
start
dressing.
This
HTML
myself
and
kind
of
getting
all
the
JSON
in
there
all
the
IDS
properly
aligned.
That's
really
complex
thing
to
do
and
yeah.
A
So
let's
move
on
to
the
next
slide.
Why
didn't
B&B?
And
this
is
available?
As
of
the
March
release,
March
27,
the
release
of
SharePoint
B&B.
We
have
supposed
to
create
edges
losses
to
manipulate
modern
pages.
The
rating
means
adding
controls
on
a
page
and
is
removing
and
quotes
from
a
page
for
that.
We
added
two
extension
methods,
so
we
have
an
add
client-side,
H
extension
methods
on
the
web
object
which
allows
you
to
add
a
new
page
and
load
client-side
page
which
allows
you
to
load
an
existing
page.
A
Boston
distinction
here
is
that
we
have
this
extension
methods,
yes
and
the
March
release
of
the
site
score
their
support,
manipulating
modern
pages.
However,
the
provisioning
engine
does
not
yet
support
this,
so
that's
say
in
the
planning,
let's
say
so
today
you
can
already
program
primarily
do
it,
but
if
you
want
to
use
the
engine,
you
will
have
to
wait
until
we
support
that
in
the
engine
all
right
at
the
right
side,
you
see
some
of
the
the
classes
were
using
to
enable
the
support.
A
So
we
have
the
left
section
area
showing
an
abstract
class
canvas
control
and
then
there's
two
classes
inheriting
from
that.
One.
Implementing
that
canvas
control
is
the
text
control
anywhere
part,
so
since
they
are
slightly
different
text,
was
a
really
simple
control
classic
web
processes
additional
properties.
So
we
have
two
of
these
guys
today
in
plenty
from
the
base
control.
Essentially,
you
can
put
a
control
on
a
page
on
a
client-side
page,
which
is
the
closet
right
side
at
the
bottom
you
see,
a
Needham
is
showing
all
the
other
box
client-side
web
parts.
A
Yes,
absolutely
so
the
Eden,
while
the
idiom
is
only
there,
because
Microsoft
decided
to
give
the
class
web
browsers
are
really
into
it.
If
you
do
it
name,
which
is
fine,
because
it
makes
it
unique
and
then
but
it's
hard
to
do-
remember
good
sandy
Emma
just
there
to
replace
it
goo
it
with
a
more
easy
to
remember
name
so
but
yeah.
If
there's
a
new
apart
and
it
wouldn't
be
updated
you
just
like
adding
to
it
and
off
you
go
so
we
simple
all
right,
not
Theory.
Let's
show
this
in
a
demo.
A
So
that's
the
thing
that
I
did
and
everything
else
just
came
along
when
solving
the
the
marshal
is
a
PNP
so
inside
the
program
and
the
console
application
I'm
going
to
using
a
particular
site.
So
we
did
do
this
name
1300
to
3,
using
my
account
getting
my
passwords
I'm,
creating
a
client
context,
I'm,
usually
in
P
for
that.
A
But
you
can
use
the
regular
SharePoint
approach
as
well
and
then
I'm
going
to
go
into
demo
1,
which
is
adding
a
client
side
page
before
loading
the
demo
I'm
going
to
quickly
flip
over
to
my
site,
go
to
the
home
page.
So
this
is
the
site
that
I'm,
using
for
the
demo
you
see
is
the
regular
inside
with
some
custom
branding
and
some
presentations
like
it
looks
a
little
bit
different.
But
it's
a
team
site.
A
A
A
You
can
simply
add
a
page,
no
need
to
even
figure
out
who,
where
is
my
pages
libraries,
because
it
does
know
where
to
which
the
page,
essentially
so
you
say,
add
client-side
page
you
get
a
page
object
and,
and
the
third
parameter
second
parameter
sorry
is
also
saying,
like
you
immediately
want
to
persist
the
page,
so
you
can
decline,
citation
directly,
save
it
or
you
can
just
create
a
classic
page
in
memory
and
not
save
it.
So
at
that
point
you
would
put
this
value
to
false
or
leave.
B
A
B
A
A
A
Then
you
can
start
playing
with
the
model,
so
this
case
I'm
going
to
initiate
a
new
client
side
text
control
with
the
text.
Pnp
rocks
singing
f10,
so
the
text
control
has
been
created,
I'm
going
to
add
the
text
control
on
the
page,
with
all
the
minus
one.
So
essentially,
I
want
to
put
this
on
top
of
the
page,
let's
first
control
f10.
B
A
All
right
now
what
what,
if
I,
have
like
a
custom
client
software
part
that
I
developed
my
great
hello
world
report
I
want
to
put
it
on
the
page
as
well.
For
that
to
the
produce
slightly
different.
You
start,
first
with
getting
a
collection
of
what
of
available
client-side
components
that
you
can
put
on
a
page,
so
I'm,
pressing
it
and
I
will
get
a
list
of
components,
so
they
can
put
on
a
page
fairly
long
list
of
potential
components
that
can
be
put
on
a
beach
and
that's.
A
Right,
so,
if
you
yeah
all
of
the
box
and
customer
parts
which
are
installed
or
which
are
available
for
the
particular
site,
show
up
yeah.
Yes,
then,
as
a
matter
of
finding
the
right
one,
you
need
to
start
find
your
your
web
parts
from
that
list.
So
I
do
a
typically
based
on
name
and
you
closely,
based
on
the
ID,
whatever
that
you,
like
so
I,
have
found
now
I'm
going
to
kind
of
transform
the
data
that
I
got
from
SharePoint
into
a
client-side
web
hosting
instance.
A
The
easiest
way
to
do
so
is
actually
providing
data.
You
see
from
SharePoint
as
comes
into
the
constructor
of
the
client-side
web
part,
which
is
moving
over
here
and
I'm
with
Leon
I'm.
Also
setting
yours
then,
because
I
want
this
one
to
be
at
the
bottom
of
the
page,
so
I
client-side
web
back
to
control
final
step
is
adding
it
to
the
controls
collection
of
the
page,
so
ad
control,
I.
Think
of
then
we.
B
A
In
memory
three
controls,
so
let's
persist
that
so
do
notice
that
I
started
from
reading
template,
page
and
I'm.
Persisting
this
as
page
with
control,
so
I'm
saving
this
a
different
names,
kind
of
a
save
as
operation
essentially
summarizing
it.
Then
this
should
give
me
a
page
with
controls
here,
go
back
to
pages
page
with
controls,
and
we
should
see
on
top
if
it
already
solves
you
with
in
this
loading
interesting
clicking
again,
maybe
little
network.
A
You
have
a
carry
here.
We
go
okay,
I'm
going
to
put
a
patient
edit
mode,
so
it's
more
clearly
visible
where
the
controls
are
scrolling
to
the
top.
So
here
you
see
the
text
control,
so
it
could
be
rocks
as
a
text
on
this
page
and
just
for
information,
you
can
also
put
formatted
text
this
way.
I
just
put
a
basic
text
with
here.
You
can
put
some
HTML
in
there
as
well,
and
then
it
will
show
up
as
HTML.
A
Then
we
have
a
second
control,
our
original
image,
which
was
on
the
page
so
most
up-to-date,
so
that
state
and
scrolling
down
we
see
a
Stewart
control.
We
see
our
hello
world
custom,
client
side
web
part
on
the
page,
so
I.
Actually
this
pretty
cool
because
you
just
can
put
any
control
on
a
page
and
you
get
like
a
nice.
You
can
prepare
your
pages
for
your
customers
and
with
all
the
content
and
the
controls
that
you
want
them
to
be
able
to
vet.
You
can
and.
B
A
Absolutely
yeah
yeah
it
better
I
didn't
think
about
yet.
But
that's
sounds
really
interesting.
Yes,
good
point,
easkey!
Okay,
with
let's
move
on,
we
talked
about
text
control
talked
about
custom
client
server.
Part
now,
there's
also
a
great
set
of
the
Box
client-side
web
apps
available.
How
can
you
work
with
those
of
the
Box
webparts
and
that's
what
this
then
was
about
so
I'm
going
to
start
creating
a
new
page,
page
5,
which
is
just
in
memory
now,
I
didn't
even
save
it.
A
So
it's
just
a
number
II
page
empty
page,
no
controls
on
it
and
I'm
going
to
on
this
page.
I
want
to
add
an
out-of-the-box
web
part
for
that.
The
easiest
way
is
to
use
the
associate
default
web
part
methods
and
provide
the
actual
web
part
iam
at
web
part
that
you
want
based
on
the
enum.
So
let's
show
this
enum.
A
So
these
are
the
web
parts
which
of
the
day
listed
in
them.
If
more
edit
will
change
this,
but
that
makes
it
easy
for
you
to
pick
the
right
web
process,
essentially
so
I'm
going
to
pick
the
image
of
a
part
now
immature
part
is
loaded.
So
we
what
happens,
is
we
go
to
SharePoint?
You
get
all
our
also
web
parts
pick
the
image
web
part
and
put
it
in
the
in
the
control
kind
of
associated
now.
Every
web
part
typically
has
some
settings
and
ex-boxer
paths
or
several
so
settings.
A
So
if
you
miss
your
part,
you
need
to
point
it
to
the
right
image
and
the
data
is
stored
in
a
JSON
blob.
So
I
think
this
comment.
Commanded
line
still
shows
the
original
JSON
blob.
So
this
is
one
way
to
set.
The
properties
is
for
you
to
create
a
JSON
blob
and
then
assign
it
with
this
way
easier.
I
think
just
to
assign
actual
properties
so
and.
B
On
that,
one
actually
have
to
clarify
that
if
people
are
watching
are
familiar
with
client-side
development,
so
when
you're,
when
you
are
out
SharePoint
framework,
client-side
web
part
development.
So
when
you
are
creating
your
client-side
web
part,
you
are
actually
defining
those
web
part
properties
within
your
solution,
which
are
always
unique.
So
they
are
essentially
based
on
a
type
of
a
web
part.
There's
no
standardization,
because
within
those
properties,
because
the
properties
are
dependent
on
what
the
web
model
actually
does.
B
B
A
Gives
your
navigation
of
Kay?
How
is
our
the
properties
for
what
action
I
did
in
UI?
I
will
set
mapped
to
properties
being
set,
and
then
you
can
kind
of
replay
that
so
there
is
a
little
bit
of
research
needed
for
the
other
box
web
parts
today,
things
will
improve
in
the
future,
but
it
is
something
that
shouldn't
be
a
blocking
point.
I
think
it's
definitely
doable.
A
Let's
quickly
run
over
setting
the
properties,
then
again
always
the
same
thing:
controllers
ready
at
the
control
to
the
page
and
safety
page.
This
is
a
page
called
page
with
image
going
back
to
my
pages.
We
have
page
with
image
loading
it
and
it
should
show
page
with
an
image
here.
There
is
here's
our
image
good,
that
works.
A
Okay,
final.
Two
demos
are
more
about
deleting
content.
You
can
use
this
for
free
have
to
delete
a
complete
page.
So
what
you
do
is
you
load
a
page
I'm
going
to
take
a
patient?
Also,
we
created
previously
I
loaded
and
then
I
just
called
delete
and
page
become
pages,
the
page
which
controls
is
gum
from
the
list
getting
a
page,
maybe
not
super
interesting.
What's
more
compelling
I
think
is
getting
controls
from
a
page,
because
you
want
to
replace
one
control
with
another
control,
for
example.
A
So
that
point
you
load
the
page
again,
since
you
have
a
controls
collection,
you
can
pick
the
right
control
that
you
want
from
the
collection
sketch
only
one
controls,
but
you
might
have
like
five
controls.
You
pick
the
third
control
and
you
call
bleeped
on
the
control
and
you
save
the
page
back
as
simple
as
that.
So
in
this
case
I'm
going
to
take
off
base
with
image
where
we
just
put
that
the
image
control.
B
A
A
B
A
Future
we
plan
to
support
this
is
well
in
the
provisioning
engine,
so
you
can
get
a
bridging
template
which
allows
you
to
create
modern
pages
and
put
bypass
for
modern
pages
publishing
process.
Today,
if
you
would
do
one
through
this,
you
you
with
the
engine.
You
would
have
writing
systems.
30
providers
like
this
after
the
actual
bridging.
B
B
And
with
the
provisioning
engines
have
to
clarify
that
one
again,
because
they
might
be
new
what
shows
as
well
with
the
provisioning
engine,
we
are
always
referring
that
the
B&B
remote
provisioning
engine,
so
which
is
which
you
can
use
for
templating
sites
and
provisioning
standardized
site
super
easily.
But
that
supports
this
support,
for
that.
One
is
coming
later
on
good.
A
All
right,
let's
wrap
up
resources.
There
is
an
image,
an
article
and
the
ppm
is
en
section
mobile
experience,
customizations
that
really
gives
details
as
well
around
the
page
structure
and
how
to
manipulate
great
pages
and
recently
also
Chris
O'brien
created
a
great
blog
post
and
he
showing
how
to
use
the
PHP
support
to
manipulate
what
on
pages
as
well.
So
thanks
was
great
post,
Chris,
I.
Think.
B
B
Not
really
just
to
kind
of
re-enter
right
what
we
are
showing
so
using
the
season
core
component
from
BnB.
You
can
use
manage
code
from
manage
code,
essentially
meaning
booklet
code
from
console
application,
whereas
your
web
jobs,
whatever
you're,
able
to
easily
manipulate
modern
pages
in
a
classic
size
or
in
the
modern
size
as
well.
So
this
exactly
the
same
process
works
with
the
modern
group
site
or
modern
SharePoint
site
as
well,
and
it's
great
to
see
this
simplistic
extensions
to
be
available
to
take
advantage.