►
From YouTube: PnP Monthly Community Call June, 2017
Description
SharePoint PnP Community call recording from 13th of June, 2017. Summary of the activities happened in the past month and 3 specific community demos around SharePoint development topics.
A
Welcome
everybody
dishes,
SharePoint
Pedrosa
practices,
community
called
children,
2017
edition
I,
think
we're
hitting
two
and
a
half
years
doing
commune
monthly
community
calls
for
SharePoint
BMP,
and
actually
the
community
community
has
been
growing
significantly
within
this
past
two
and
a
half
years,
which
is
pretty
awesome.
So
let's
actually
start
immediately
going
on
through
on
quickly
on
today's
agenda,
so
typical
agenda
for
monthly
community
call.
A
We
have
a
pretty
tight
schedule
now,
so
we
have
a
lot
of
stuff
to
actually
go
through
or
I'll
go
through
quickly
and
the
monthly
highlights,
and
after
that,
we'll
have
three
different
demos,
one
from
Alex,
one
from
run
and
one
from
a
Frank
corner.
So
I'll
try
to
be
fast
I'm
going
through
the
summary
and
after
that
we
can
actually
concentrate
on
the
demos
what
the
guys
are
doing,
like
typically
monthly
community
calls,
so
mainly
us
presenting
and
having
those
community
calls.
A
So
this
is
not
really
the
main
location
to
have
Q&A
time
or
have
questions
with
audio
and
I
window.
We
can
absolutely
have
a
discussion
in
the
window,
but
if
you
have
specific
questions
around
whatever
topics,
we
would
recommend
join
on
the
special
interest
group
calls
which
are
happening
a
weekly
basis
as
well,
where
we
always
have
that
time
for
additional
questions
and
answers
good.
A
So
let's
actually
get
on
going
on
the
monthly
summary,
so
PNP
Wes
Callison
videos.
So
this
month
or
the
May,
we
had
quite
a
few
videos
again
on
the
weekly
webcasts
and
I'll
just
pinpoint
some
of
these.
So
one
of
my
favorites
is
from
8th
of
May,
which
is
no
doubt.
I
mentioned
this
quite
a
few
times,
but
it's
one
of
those
holy
crao
scenarios
within
the
SharePoint
Online.
A
So
how
can
use
to
clearly
call
a
security
API
using
javascript
and
then,
for
example,
get
access
on
on-premises
data
and
there's
a
great
new
guidance
article
around
that
one
as
well
available
in
the
depth
of
staff?
Come
slash,
SharePoint
so
showing
how
to
actually
make
that
happen.
Written
by
wall
deck
master
cards.
We
did
a
SharePoint
modern
user
interface
scanner,
so
you
can
actually
analyze
which
of
your
UI
is
available
for
the
modern
experiences
which
of
them
are
not
doing
that.
A
We
did
a
introduction
to
visitors
to
the
extensions
for
SharePoint
framework,
with
the
crate
extensions
community,
driven
extension
coordinated
by
Eric
jobs
involved,
chef
Alain,
which
is
enabling
the
SPF
X
solution.
Creation
in
Visual,
Studio,
2015
and
2017
common
misconceptions
about
SharePoint
framework
together
is
called
a
mastercards
that
was
more
around
kind
of
let's
say:
classic
statements
around
SharePoint
framework,
which
are
not
quite
true.
So
we
were
kind
of
in
pointing
I.
A
Think
three
specific
topics
and
I
had
a
discussion
on
them:
transforming
customization
the
SharePoint
Online
classic,
update
story
with
urban
man
who
Ninh
we
have
a
lot
of
transformation
guidance
in
the
PNP,
because
the
BMP
or
originates
actually
from
the
transformation
efforts.
But
then
we
wanted
to
do
a
quick
kind
of
a
refresh
on
that
content
as
well,
and
then
this
Monday
will
release
yesterday.
Today's
Tuesday
release
the
introduction
to
SharePoint
framework
extensions,
so
that
was
more
on
showing
how
to
share
one
framework.
A
So
our
unique
tenants
which
are
using
PMP
publisher,
OPM
pas
encore,
went
up
17%
to
five
thousand
seven
hundred
and
fifty
two
there
was
2.9
billion
and
it
is
actually
billion,
not
million
HTTP
requests
going
through
the
DMPA
components
and
that's
an
increase
of
41%.
So
it's
actually.
What
it
means
is
that
those
tenants
and
customers
who've
been
using
PMP
in
the
past
are
using
more
and
more
PMP
as
well.
A
In
a
github,
we
had
a
twenty
three
thousand
six
hundred
unique
visitors
within
the
past
on
average
on
the
last
weeks,
and
then
we
had
123123
thousand
views
in
github
as
well,
most
years
capability.
Once
again,
it's
always
the
story
if
the
provisioning
engine,
which
was
used
won
top
by
1516
tenon,
so
quite
a
significant
growth
on
on
the
numbers
as
well
and
during
the
springtime,
the
numbers
have
been
crowing
quite
significantly
in
every
single
month,
except
I,
think
it
was
April
when
we
slightly
dropped,
but
that
was
cross.
A
Everything
in
in
the
cloud,
probably
because
of
spring
breaks
and
all
vacations,
and
all
that
top
five
countries
based
on
tennis
numbers
Australia,
has
no
top
team
in
a
top
five.
So
whoever
in
Australia
both
the
numbers
are
pretty
high
on
the
usage
anyway,
but
Australia
is
now
catching
up
on
the
on
the
AMIA
and
us
on
the
usage
and
then
on.
The
top.
Five
countries
based
on
requests
Norway
suddenly
jumped
as
a
number
three
on
the
on
the
list
in
May
2017
and
seems
to
be
actually
the
case
even
in
tune.
A
So
Norway
do
reasons
or
another.
They
are
increasing
the
usage
quite
significantly
good
and
I
do
not
have
statistics
on
Paul's
question
around
who
actually
left
up
five.
If
I
remember
correctly,
it
was
Sweden
from
the
both
lists,
which
was
actually
dropped
from
from
them,
but
most
the
examples
top
15-
and
this
is
kind
of
an
interesting
data
for
us
in
the
sharepoint
engineering,
to
understand
what
kind
of
samples
people
are
actually
using
and
accessing
on
the
key
top
which
are
available
and
the
responsive,
UI
package
is
still
number
one.
A
It's
been
number
one
for
a
year,
so
people
are
essentially
looking
into
that
enabling
the
classic
SharePoint
UI
is
to
be
responsive
and
just
a
bit
of
a
warning
for
those
who
are
not
super
familiar
with
this
one.
It's
not
a
100%
match.
It
doesn't
magically,
do
everything
for
you,
but
it's
working
pretty
decently
and
know
that
a
lot
of
tenants
are
using
that
as
well.
A
But
there
is
a
clear
kind
of
visual
visibility
on
the
modern
capabilities
being
accessed
and
viewed
more,
which
indicates
that
people
are
adapting
on
the
modern
customization
story.
Total
sample
views
sample
view
in
Qatar
boasts
roughly
51
thousand
views,
which
is
pretty
decent
number
as
well.
It
is
actually
pretty
amazing
number
to
be
honest
and
in
general
kind
of
a
classic
slide.
What
we
do
always
in
a
monthly
community
calls
for
those
who
may
be
joining
on
this
call
first
time.
A
So
in
the
SharePoint
PMP,
we
have
quite
a
lot
of
actions
and
quite
a
lot
of
things
happening,
and
so
we
do
have
a
monthly
community
calls
with
this.
Essentially
disco
where
we
are.
We
do
have
to
buy
weekly
special
interest
group
calls
wonderful,
SharePoint
framework
and
wonderful
PNP,
core
and
PowerShell,
and
these
are
working
in
a
in
a
bi-weekly
basis
in
a
way
that
and
I
didn't
update
the
dates.
Sorry
for
not
in
a
way
that
it's
this
week,
it's
the
BNP
core,
powershell
special
interest
group
in
the
next
week.
A
It
will
be
the
SharePoint
framework
special
interest
group.
The
whole
whole
point
of
this
special
interest
group
course
is
that
we
will
always
have
time
for
TNA,
there's
always
discussion
time
and
they're
more.
Let's
say
open
front
presentation
perspective
and
there's
always
community
demos
there
as
well,
and
then,
if
you
have
any
random
questions
and
discussion
points,
you
can
always
fall
back
on
the
attack
community
and
share
one
developer
tech
community
group
and
have
a
discussion
there
and
there's
a
lot
of
active
people
helping
on
the
questions
on
there
as
well.
A
Now
before
we
go
to
the
actual
things.
What
has
happened
in
a
months-
and
this
kind
of
relates
on
that
one
I
put
it
in
the
release.
Notes
which
went
live
today.
Do
my
timing
issues
I
wasn't
able
to
get
it
out
yesterday
and
but
we're
gradually
starting
to
scale
the
PMP
Initiative
more
and
more
and
and
one
of
the
first
things
which
will
happen.
Is
that
we'll
start
taking
the
one?
Five
people
one
drive
engineering
in
the
PMP
as
well,
so
we
kind
of
expand
on
that
side
as
well.
A
So,
if
you're
contributing
on
the
one
tur
outside,
you
will
get
acknowledged
and
listed
in
the
in
the
PMP
communications
as
well,
and
then
we're
looking
into
in
increasing
the
reusable
components.
Community
efforts,
so
essentially
there
will
be
reusable
components
and
controls
mainly
for
the
chiffon
framework
side
in
the
future
and
also
the
tooling
automation.
Work
will
start
during
the
summer
and
all
the
time
we
actually
have
a
repo
for
that
one
already,
but
for
crackle
starting
moving
on
that
one
and
the
key
point
here.
A
The
kind
of
see
and
understand
is
that
we
are
gradually
increasing
and
scaling
how
we
actually
work
together
within
the
BMP
add
together
with
community
and
engineering
as
well.
Already
during
this
month,
we
kind
of
have
four
new
MVPs,
closely
involved
in
the
BMP
initiative.
So
we
do
have
the
classic
MVPs
in
the
BMP,
a
core
team
who
are
everyone,
lunin,
palapa,
Laura's,
a
ruddy?
A
Well,
they
can
Elio
and
who've
been
around
for
a
long
long
time,
Irving
by
the
way
being
the
first
one
of
the
BMV
base
well
back
when
he
started
contributing
on
the
BMP
PowerShell,
but
they
weren't
during
the
May
there's
four
new
persons
who
are
closely
involved,
who
have
specific
responsibilities
in
the
BMP
as
well.
So
Spencer
Harper
is
now
taking
over
the
responsibilities
of
coordinating
the
mincing
Burke
from
ship
and
engineering.
A
So
the
MEMS
Inc
for
synchronizing,
its
the
PowerShell
scripts
for
the
on-premises
shavon
2015
user
profile,
synchronization,
thingy
and
Spencer
is
coordinating
that
in
the
bmp-2
oswego
eric
jobs
and
paul
shuffling
are
coordinating
the
work
related
on
visual
studio
extension
for
SharePoint
framework.
It
has
its
own
repo
and
that's
the
one
which
we
did
a
webcast
with
Eric
and
and
Paul
as
well,
and
Michael
Ranson.
A
So
it
is
by
design
and
we
are
looking
into
expanding
the
team
further
in
the
future
as
well,
because
we
really
want
to
make
sure
that
people
who
want
to
contribute
people
who
want
to
be
involved
with
the
community
efforts
can
actually
be
doing
ducks.
And
this
is
the
only
way
we
can
actually
scale
and
because
to
be
honest,
that
personally,
I
don't
have
any
time
anymore.
A
The
scale
and
Bert
is
running
out
of
time
and
everybody
else
running
out
of
time
and
we
easiest
way
to
actually
be
more
successful
in
the
future-
is
to
get
more
people
involved
as
well
cute.
So
what
has
happened
in
tune?
So
we
have
quite
a
few
SharePoint
framework
samples,
a
few
on
the
web
part
site
and
then
more
on
the
SharePoint
framework.
A
Extensions,
so
framework
extensions
went
to
Def
preview
last
Tuesday
so
week
ago,
and
there's
already
quite
a
few
samples
available
in
the
in
the
kit
hub
for
those,
as
well
as
at
least
a
starting
point.
So
that's
a
great
way
of
actually
learning
how
the
SharePoint
extensions
can
be
used
and
how
they
actually
work
and
then
on
the
samples
and
guidance.
A
So
there's
a
news,
a
nice
new
sample,
which
one
is
going
to
show
today
around
portal
data
access
layer,
and
this
is
around
how
to
build
a
centralized
data
access
layer
for
client-side
development
if
you're
using,
even
though
you
would
be
using
this
in
on-premises.
So
this
is
not
really
shared.
One
framework,
specific,
it's
more
around
thinking
through
how
to
implement
JavaScript,
properly
PMP
portal
in
turn
static.
It
has
a
lot
of
new
stuff
as
well.
A
So
Frank
is
going
to
show
us
today,
a
nice
set
up
on
the
bot
framework,
so
that
will
be
a
nice
demo
as
well.
Quite
a
lot
of
new
guidance
on
the
one
framework
distinctions,
especially
and
then
there's
the
connect,
a
in
a
secured
API
with
Azure
Active
Directory
as
much
typo
on
that
one.
But
that's
a
nice
article
of
explaining.
A
This
additional
capabilities,
additional
methods
for
helping,
for
example,
adding
list
spec
cooks
or
supporting
for
client-side
pages
with
multiple
zones
and
sections
so
you're
able
to
create
modern,
Beatty's
easily
using
manage
code
and
then
associate
with
parts
and
sections
on
those
modern
pages
as
well
on
the
course
JavaScript
side,
the
release,
the
latest
release
will
be
coming
today
or
tomorrow.
So
our
font
unfortunate
that
we
do
not
have
a
specific
list
of
things.
A
This
one,
this
one
was
probably
the
biggest
monthly
release.
We've
been
having
from
a
participant
perspective
from
community
participant
perspectives,
I
really
needed
to
scroll
down
the
font
on
the
slide
and
maybe
in
the
future,
I
need
to
split
this
into
multiple
slides
as
well.
So
there's
quite
a
few
external
people
participating
on
this
work
and
this
monster
release
by
contributing
on
the
documentation,
samples,
bug
fixing
issues
whatever
related
on
SharePoint
development.
So
thank
you,
humongously.
Thank
you,
Alex
on
your
contributions
and
because
this
way
the
whole
SharePoint
community
can
benefit
between
each
other.
A
It
the
work
with
what
we
do
and
we
can
be
such
more
successful
together
on
the
Microsoft
side
before
we
go
there
on
the
company's
size,
we
also
had
a
quite
a
few
companies
and
from
which
we
have
a
permission
to
show
their
local,
who
are
essentially
providing
resources
by
their
people
to
work
on
some
of
the
BMP
assets
and
BMP
samples.
So
thank
you.
A
Thank
you
a
lot
on
this
one
as
well,
and
we
absolutely
are
looking
into
expanding
this
list
in
the
future
as
well.
The
thing
is
that
if,
if
your
name
is
listed
in
as
a
contributor
and
your
company
might
be
mentioned,
but
if
we
do
not
have
your
permission
to
use
the
company
local,
we
can't
actually
put
it
on
the
slide.
So
I
need
to
have
an
explicit
email
on
that
one.
That
was
our
legal
statement
or
legal
team
statement
on
this
one.
A
Then,
on
Microsoft
side,
we
had
a
pretty
typical
set
of
people
working
on
this
one
which
is
expanding
gradually
as
well.
So
a
lot
of
internal
people,
a
lot
of
SharePoint
engineering
people
who
are
helping
on
the
documentation
side,
helping
under
samples
helping
on
the
polishing
stuff,
what
we
have
out
there
and
before
we
go
to
the
actual
demos
and
I'm
already
again
one
minute
over
my
booking
time
and
I
do
apologize
and
dance.
We
will
have
a
traditional,
let's
say
p.m.
A
base
summer
break,
so
we
won't
have
a
specific
to
live
release
so
we'll
get
back
on
the
normal
time
frame
and
normal
schedules
from
early
August,
and
this
doesn't
mean
that
we
wouldn't
be
working
during
the
summer.
It
just
means
that
we'll
take
slightly
more
easily
during
summer
timeframe,
will
work
still
in
a
github
will
get
stuff
released,
and
but
we
won't
have
specific
monthly
calls
and
we
won't
have
specifics.
A
Other
calls,
except
the
SharePoint
framework
and
JavaScript
special
interest
group,
call
coordinated
and
hosted
by
Patrick
roses,
so
Patrick
doesn't
actually
want
to
have
any
vacation,
so
he's
running
that
call
all
through
the
summer
as
well,
but
maturity
of
our
calendar
invites
are
expiring
by
end
of
this
month.
So,
for
example,
the
monthly
call
invites
are
expiring
at
the
Disco,
so
we'll
update
those
ICS
invites
with
in
upcoming
weeks,
so
you
can
actually
get
that
get
them
to
your
schedule
for
the
next
next
autumn
and
next
spring
as
well.
A
The
reason
why
one
of
the
reasons
why
the
expert
expiration
always
happens
like
this
is
that
the
Microsoft
fiscal
year
is
between
July
and
June,
and
this
is
always
the
end
of
the
fiscal.
So
we
kind
of
a
schedule,
our
stuff
into
business
fiscal
cycles,
but,
like
mentioned,
we
want
to
have
a
truly
release
explicitly
if
we
need
to
do
any
any
releases.
If
we
will
do.
Let's
say
upgrades
on
the
core
component:
we
might
do
a
release,
but
there
won't
be
a
monthly
community
call
in
July.
A
A
So,
let's
start
with
Alex
Alex
has
two
different
demos,
which
was
which
chatted
in
in
Kate,
on
which
he
would
be
showing
one
is
around
the
SharePoint
framework
with
parts
a
react
slight
side
panel
and
one
is
around
the
extension,
so
a
field
customizer,
then
we'll
move
into
front
corner
than
doing
a
concrete
example
of
able
integration
with
internet
solution.
That's
pretty
interesting
demo
as
well,
and
it's
a
for
final
topic:
brontë.
A
B
So
good
morning
everybody
so
I'm,
Francona
I'm,
the
city,
development,
MVP
and
sanderoff
by
a
company
called
echoes
Bev
in
Montreal,
and
today
I
will
show
you
a
feature
and
in
the
new
PNP,
starting
to
an
obsession
with
the
bot
framework
integration.
So
I
will
go
through
the
end-user
experience
and
then
I
would
within
the
installation,
steps
in
details.
So
let's
take
a
look
of
the
the
user
experience.
B
B
So,
first
of
all,
why
it
great
bot
into
a
SharePoint
portal.
It's
all
about
the
content,
discovery
and
search
experience.
Let's
say
you
are
a
user
of
your
internet
and
you
want
to
search
to
look
for
to
search
for
for
some
content.
You
will
probably
use
on
some
keywords
like
that.
For
example,
if
I
want
to
search
for
news
in
the
human
resources
category,
I
will
I
will
type
something
like
that.
The
problem
is,
with
this
kind
of
keywords
with
SAP
and
doesn't
know
the
intent
behind
this.
This
keyword
so
to
get
relevant
Wizards.
B
You
will
ask
to
configure
your
search
engine,
for
instance,
by
using
query
rules,
to
promote
some
result
and
to
detect
some
indents
about
the
the
keywords
and
it
can
be
not
complicated,
but
it
be,
it
can
be
a
very
time-consuming.
So
this
is
a
fact
in
a
serpent
bottle.
It's
all
about
the
free
text,
search
for
instance,
you
will
never
see
a
user
type,
something
like
this,
for
example
the
body.
B
Nobody
does
that
because,
first
of
all,
they
don't
know
about
the
kql
syntax,
which
is
the
research
and
syntax
of
sharepoint,
and
they
don't
know
about
your
third
key
map
so
go
to
help
users
to
search
for
content.
We
can
benefit
of
artificial
intelligence
services
like
kini
maker
integrated
with
the
bottom
rock,
and
that
I
will
show
you
this
right
now,
so
to
complement
the
search
experience.
I
indicated
a
bot,
so
this
is
the
little
econ
ear
just
to
to
ask
question
about
the
bottom.
B
So
first
of
all,
I
will
just
need
my
word
to
integrate
with
two
to
communicate
with
a
point.
I
will
need
two
to
be
authenticated
so
for
now
in
the
bottom
work
SDK,
you
have
no
is
a
SSO
mechanism,
so
you
have
to
implement
the
OAuth
2
flow
manually.
So
that's
why
I
need
to
see
in
again
in
my
portal,
so
we
just
seen
in
and
you
will
see
this
is
an
obvious
application
implementing
the
OAuth
flow
manually,
so
I
will
go
through
this
step
later,
but
for
now
let's
go
back
to
the
bottle.
B
So
now,
I'm
not
only
carried
in
the
bottle
and
I
will
ask
some
question
to
to
the
bot.
So
let's
say
we
are
in
a
very
common
situation
in
an
infinite
I'm.
A
new
employee,
so
I
will
I
want
to
know
some
useful
information
about
the
company
and
so
on.
So
I
just
will
just
type
some
keyword
like
this
yeah.
The
thing
I
use
the
Q&A
maker,
so
the
Q&A
maker
is
just
a
service
to
to
build
a
questions,
to
build
a
question
and
answer
the
FAQ
very
quickly.
B
So
I
can
implement
some
answers,
some
question
and
as
the
static
answers,
but
I
can
also
implement
dynamic
answers.
So
so,
let's
say
I
want
to
know
the
latest
news
of
the
bottle.
So
if
I
type,
something
like
this
I
can
interact
with
the
search
engine
of
SharePoint
and
I
can
query
the
design
and
get
the
relevant
result
and
those
results
are
security
twin.
So
that's
why
we
need
the
order
to
flow
with
delegated
permission
to
get
this
kind
of
experience.
B
So,
as
you
can
see,
this
is
a
useful
way
to
come
to
complete
the
the
search
engine
of
some
point.
So
now,
I
will
get
there.
So
I
can
implement
this
kind
of
solution,
so
I
will
go
through
the
app
the
estimation.
So,
first
of
all,
like
I
said
you
will
need
to
go
to
build
a
Q&A
maker
knowledge
base.
So
to
do
this,
you
have
to
go
on
the
Q&A
maker
portal,
dedicated
URL
and
build
a
new
knowledge
base.
So
I
will
go
in
as
you
can
see,
this
is
pretty
straightforward.
B
B
You
can
benefit
out
the
text
recognition
of
the
Q&A
maker
service.
So
let's
say
we
have
some
common
question.
We
can
add
some
alternative
reading
to
detect
to
help
the
service
to
detect
the
intent
more
easily.
So
let's
say
I
want
to
to
add
on
some
key
words
you,
you
will
add
some
more
more
so
so
you
have
more
choices
to
improve
the
the
intent
detection.
B
B
So
in
this
application
you
can
you
can
take
the
existing
code.
I
I
popped
the
bot
code
for
this
solution
in
my
own
repository,
so
you
can
either
fork
this
repository.
I'll
use
discipline
this
repository
directly
as
a
deployment
option.
This
is
the
the
easiest
solution.
If
you
want
just
go
here
and
sync
with
this
guitar
be
positive.
This
is
a
public
repository,
so
you
can
do
this
next.
You
will
have
to
configure
some
application
settings
to
interact
with
your
bot
and
and
the
Q&A
maker
service
and
so
on.
B
B
I
need
to
get
the
reply
from
the
authorization
server
and
that's
why
I
need
a
dedicated
application
to
get
these
results,
so
I
can't
use
the
azure
buzzer
and
as
your
function,
so
next
I
will
have
to
create
a
new
Azure
at
the
application
under
the
at
the
surety
dilatory
behind
my
office,
365
tenant.
So
for
this
I
I
created
a
new
as
you
as
ID
application,
with
the
give
the
correct
permission
so
in
the
required
permission,
I
set
to
search
for
SAP
on
Titan.
B
You
only
have
to
to
set
this
option
ill,
but
it
still
is
the
same
behavior
for
any
other
API.
If
you
want
to
communicate
with
the
graph
or
some
other
endpoints
you,
this
is
the
email
behavior,
so
I
used
0.09
in
this
case,
but
you
can
use
the
graph
endpoint
as
well.
So
the
next
thing
is
to
configure
the
reply
very
well.
So
in
my
case
this
is
the
URL
of
my
energy
s,
application
to
get
the
callback
of
the
authorization
server
to
get
the
access
code
and
the
access
token
for
the
current
user.
B
So
the
next
thing
to
configure
is
to
register
a
new
blood
on
the
death,
the
death,
but
the
balsamic
bottle.
So
here
you
have
special
URL
to
register
your
blood,
so
they've
put
the
form
of
calm.
You
can
add
a
new
bot
here
and
set
up
your
different
channel,
so
the
bot,
the
bot
framework
works
with
a
different
channel.
So
this
is
the
same
code
with
different
channels.
You
have
to
adapt
your
code,
for
instance,
for
scheduled
business
or
skype
or
teams.
B
This
is
the
same
code
running
on
all
channels,
so
in
my
case,
I
used
the
direct
line
channel
the
difference
between
direct
line,
a
webshop.
If
you
go
with
the
web
chat,
you
can
integrate
with
your
bottle,
but
it
will
be
an
iframe
and
the
iPhone.
You
can't
apply
CSS
CSS
styles
on
it,
with
direct
line.
I
use
a
special
components
offered
by
the
community.
So
I
use
this
up.
B
You
have
some
configuration
to
do,
but
this
is
basically
the
component
I
used
to
drop
lines
to
apply
styles,
so
you
register
your
blood
in
the
settings
here.
You
will
have
to
enter
some
useful
information.
The
messaging
input
which
will
be
the
you-
are
not
energy
s,
application
to
route
the
messages.
B
B
And
I
will
set
up
my
bots,
so
all
you
have
to
do
is
to
fill
the
value,
so
the
bot
direct-line
secret,
the
butt
end
and
the
bot
ID.
You
can
find
this
information
directly
in
the
bot
profile,
so
the
body
handle
the
bot
ID
and
to
generate
the
direct
line
secret
key.
You
have
to
first
add
the
direction
channel,
but
then
edit
this
channel
and
get
the
secret
key.
A
Just
kind
of
classic
way
of
securing
the
traffic
between
the
solution
consuming
the
bot
and
between
the
bot
itself,
but
in
this
case
I
think
that
your
implementation
is
pretty
cool
on
the
right
side
and
how
its
behaving
and
working
and
all
that.
So
even
that
the
UI
exposure
of
that
one
is
pretty
cool.
A
I,
don't
unfortunately,
I
think
we
are
running
out
of
time.
Yes,
a
bit
that
time
for
Alex
and
run
as
well,
but
yeah
I.
Think
probably
the
key
point
is
essentially
this
code
is
available.
It
is
part
of
the
the
intranet
sample.
You
have
a
specific
version,
also
available
in
your
kit
hub-
and
this
was
a
nice
walk
through
on
the
on
the
experience
as
well,
and
it's
a
nice
demo
on
the
usefulness
of
the
bot
framework
as
well.
So
there
is
no
doubt
and
interesting
scenarios
with
that,
one
within
the
intranet
as
well
good.
A
C
My
name
is
Alex
Trent
if
I'm
a
lead
developer
in
the
company
SharePoint
list,
and
thank
you
for
giving
me
time
giving
this
community
call
sorry
that
I
need
to
recollect
but
yeah
today,
I'll
be
showing
two
samples,
one
is
for
client-side
reports
and
another
one
for
SharePoint
framework
extensions.
So,
let's
start
with
the
web
parts
sample
EP,
it's
a
really
simple
sample.
That
shows
you
how
to
display
a
side
panel
sidebar
from
the
web
part
like
that.
You
can
hide
it
from
here
or
you
can.
Click
on
laws
and
in
grant
in
web
properties.
C
C
The
code
of
web
part
itself
is
not
interesting.
We
are
just
rendering
the
main
content
and
the
panel
itself
and
changing
the
state
when,
when
it's
needed,
so
let's
see
what's
happening
in
the
panel
code.
First
of
all,
here
I'm
using
the
FEC
I
fabric
layer
component,
it's
a
container
for
for
my
panel,
and
this
component
allows
you
to
add
your
markup
to
the
page
body
instead
of
the
contract
container.
C
C
So
what
about
the
code?
The
props
object
is
really
easy.
We
have
is
open
flag
to
show
hide
the
panel
position,
property
and
handler
of
panel
closing.
The
panel
state
is
more
interesting
interface
because
it
has
to
see
more
flags,
is
open
and
is
visible
and
the
two
flags
are
needed
to
implement
sliding
animation
as
the
CSS
transition
and
correctly
remove
panel
HTML
when
closed.
If
we
look
at
the
s,
CSS
file
and
transitions,
like
the
default
state
of
the
panel
has
left
property
or
right
property
is
set
to
negative
value.
C
In
that
case,
the
panel
is
positioned
outside
the
screen
and
then,
when
the
visible
classes
added
the
properties
change
to
0
with
the
transition
animation.
In
that
case,
we
see
this
animation.
That
panel
is
sliding
outside
the
the
screen,
and
now
we
want
to
show
you
the
flow
to
explain
why
we
need
these
two
flex,
instead
of
one
so
for
open
flow.
C
Initial
state
of
the
panel
is,
is
open,
set
of
all
visible
set
to
false
and,
to
that
case,
panels
closed
and
no
stem
L
is
rendered
at
all,
and
then,
if
we
want
to
open
the
panel
in
the
first
step,
we
are
changing,
is
open.
Flag
to
true
in
that
case,
panel
is
still
closed,
but
penalty
ml
is
rendered
without
this
visible
class
just
in
default
state,
then,
after
some
time
out,
we
are
changing,
is
visible
flag
to
true
and
visible
CSS
classes
added
to
the
panel.
C
In
that
case,
the
transition
animation
is
initiated,
and
after
that
and
the
last
state,
the
panel
is
visible
on
the
page
and
for
close
for
it's
actually
the
same
first,
the
panel
is
opened.
Then
we
are
changing
visible
to
force,
to
remove
visible
CSS
class
and
to
initiate
again
condition
animation,
and
then,
when
we
change
is
open
to
false,
then
HTML
won't
be
rendered
will
be
removed
from
from
the
page.
C
C
State
is
set
to
true
immediately,
but
then
in
component
did
update.
We
are
setting
the
time
out
to
change
a
visible
flag
a
little
bit
later,
as
I
mentioned,
it
is
needed
to
initiate
the
transition
animation
and
the
same
for
for
the
close
flow.
When
we
are
dismissing
or
closing
the
our
panel,
we
are
changing
its
visible
to
false,
and
then
we
are
setting
the
time
out
with
the
like.
C
A
We
were
removing
there
actually
elect.
Let
me
reiterate
something
like
I
said
on
this
one
and
I'm
clarifying
why
I
asked
Alex
to
actually
show
this,
because
for
me
that
what
Alex
built
here?
Yes,
it's
super
simplistic
web
part
which
is
just
showing
a
panel,
but
it's
a
great
building
block
and
that's
essentially
what
we
want
to
have
related
on
the
PMPA
samples
as
well.
A
This
is
an
awesome
building
block
for
the
scenario
that
a
I
want
to
have
a
right
side
or
left
side
panel
and
I
want
to
have
a
some
sort
of
a
setting
plus
the
same
implementation
task
work,
also
using
the
application
customizer
just
as
well.
You
can
hook
in
this
kind
of
a
functionality
to
application
customizer,
which
is
then
embedded
on
the
baits
in
the
header
or
footer,
and
then
you
can
set
some
additional
settings
or
whatever
there
to
panelist,
actually
showing
so
great
building
blocks.
No
doubt
true,.
C
Yeah
first
I
want
to
say
that
it's
really
cool
that
the
community
has
been
heard
and
the
dev
team
released
these
extensions,
for
example,
per
our
company,
as
we
is
really
big
step
forward
to
using
SharePoint
framework
and
of
course
we
are
looking
forward
new
to
new
features
and
new
extensions
yeah.
So
in
this
example,
I
I
just
want
to
show
the
tool
customizer
and
it
illustrates
the
usage
of
official
fabric
slider
component
and
additional
cool
feature.
C
Here
is
the
permission
based
inline
editing
here
in
the
browser
I
am
logged
in
as
an
admin
and
I
can
change
values
in
line
like
that,
then,
if
I
refresh
the
page,
you
will
see
that
the
values
are
saved
which
school
and
Here
I
am
logged
in
as
other
user.
That
has
only
read
permissions
for
the
list
and,
as
you
can
see,
the
sliders
are
disabled
here.
C
So
pretty
pretty
is
the
example
as
well.
Let's
see
in
the
code,
the
code
of
the
component
itself
is
super
easy
here:
I'm
just
using
the
official
fabric
slider
with
some
predefined
value,
and
just
it's
like
a
connector
between
the
customizer
and
official
fabric
slider
and
the
customizer
itself.
There
are
like
two
main
methods
here:
first,
one
is
on
render
cell
like
an
entry
point
for
any
of
your
UI
custom
UI
and
the
customizations
here
I'm.
C
After
one
second,
when
user
sub
dragon
be
slider
and
the
request
itself
is
done
with
the
TMP
J's
library,
which
is
very
cool-
and
it's
really
simplifies
life
and
end
code,
so
yeah
and
that's
it
so
super
easy
sample,
as
you
can
see,
most
of
the
code
here
is
like
aggregation
of
different
libraries
and
features
provided
by
Microsoft,
so
it's
really
cool
that
we
can
just
combine
them
and
use
them
and
focus
more
on
business
values
in
our
code.
So
thank
you
for
listening
hope.
This
helps.
Thank
you.
Alright,
yeah.
A
That's
a
that's
a
really
cool
feature
because
you
have
an
inline
editing
in
the
readme
or
the
View
mode
of
the
list,
so
really
cool
cool
way
of
also
showing
the
the
power
of
the
field
customizers
but
run
you
can
flip
on
the
sharing
where
well
now
you
have
11
minutes
if
it
takes
slightly
longer
than
that.
That's
absolutely
fine,
but
let's
see
on
your
schedule
as
well
run
is
pasting.
Engineer
comments
yes
and
the
screen
sharing
works
as.
D
Hi
everybody,
my
name
is
Ron
Toki
I'm,
a
principal
consultant
with
Microsoft
services
and
I've,
been
working
on
JTP
program
in
PMP
for
the
past
couple
of
years,
I'm
here
to
demonstrate
the
client-side
data
access
layer
sample,
which
is
a
working
and
to
end
implementation
of
the
data
access
layer
framework
that
was
mentioned
in
the
article
series.
The
portal
performance
article
series
just
a
quick
overview
of
what
it
is.
It
basically
consists
of
a
series
of
JavaScript
based
display
components.
These
guys
respond
to
events
and
when
they
do
necessary,
they
decide
to
render
data.
D
In
order
to
do
so,
they
ask
the
business
data
object
manager
for
their
Associated
business
data
object
and
when
they
get
it
back,
they
bind
to
it
and
render
the
data
they
use
lazy
load.
You
know
the
standard
data
load,
optimization
practices
to
make
an
efficient
page
load
when
the
business
data
manager
gets
a
request
for
the
business
data
object.
It
first
looks
into
it
a
storage
manage
manager
to
see
if
there's
a
local
cached
copy
of
the
data
if
it
gets,
it
returns
it
back
to
the
caller.
D
Otherwise,
it
makes
a
back-end
call
to
the
excuse
me
to
the
appropriate
data
service
and
gets
the
data
when
it
gets
it
back
again.
It
stores
the
local
copy
and
then
returns
it
to
the
control
for
rendering
the
sample
itself
comes
with
a
console
application
that
makes
it
very
easy
to
install.
The
only
thing
you
need
to
do
ahead
of
time
is
pre
create
to
site
collections,
one
that
we
call
the
administration
site
collection.
D
Columns
lists
you
know,
pre
create
some
sample
data,
create
all
of
the
schema,
that's
necessary
to
support
the
application.
One
thing
to
note
is
that
you
can
re-execute
this
console
as
often
as
you
like.
It
will.
Never
overwrite
your
existing
content.
It
just
ensures
that
the
necessary
things
are
there.
So
once
you
run
this
thing,
what
do
you
get?
You
get
three
site
collections
again,
your
content,
delivery
network
site
collection.
We
basically
create
a
subfolder
in
there
and
we
upload
all
the
necessary
files.
The
JavaScript
files
are
probably
the
most
interesting.
D
These
contain
all
of
the
control
implementations,
along
with
some
supporting
libraries
like
jQuery
and
bootstrap.
You
also
get
an
administration
site
collection
and
the
two
primary
things
in
there
are
the
global
navigation
configuration
list
and
the
portal
configuration
list
which
is
basically
an
online
config
file.
You
can
think
of
it
that
way.
You
also
get
a
demo
site
collection
at
the
root
of
this
site
collection.
We
have
a
company
links
list.
D
Configuration
list
allows
you
to
do
to
manage
links
for
the
current
site,
collection,
you're,
also
getting
local
navigation
and
configuration
list
which
allows
you
to
do
unique
links
for
the
current
web.
You
also
get
a
sub
site
and
it's
simply
there
to
provide
you
know.
Web
scoped
configuration
they
both
both
webs
pretty
much.
Do
the
same
thing,
a
quick
look
at
the
configuration
list,
we'll
see
that
it's
basically,
you
know,
link
text,
link,
URL
and
a
display
order.
D
D
D
We've
got
a
wonderful-looking
footer
and
we
also
have
a
user
info
control.
That
is
actually
a
lazy
load
and
it
will
go
fetch
its
data
when
it's
clicked
so
I
have
fiddler
in
tow
here
just
to
prove
that
things
work
is
expected.
So
one
of
the
things
we
want
to
do
first
is
we
have
the
option
to
clear
our
local
storage.
D
And
what
we'll
see
primarily
is
that
there
are
four
search:
queries
that
go
out
one
for
each
of
the
controls:
the
company
links,
local
navigation,
the
global
navigation
and
the
footer
and
there's
also
a
call
to
a
stock
API
of
Yahoo.
So
this
data
has
been
the
page
has
been
loaded
and
all
of
the
calls
have
been
made.
If
I
come
back
and
Reax
acute
a
query
to
the
page,
we
should
see
no
calls
go
out.
So
no
outbound
calls
the
only
thing
we
did
was
request.
The
page.
Ok,
great
caching
works.
D
So
let's
talk
a
little
bit
about
the
functionality
right.
The
cache
itself
allows
you,
or
the
design
of
this
allows
you
to
specify
caching
configuration
for
each
of
the
controls
and
the
options
you
have
for
a
given
cache
entry
are
which
for
each
mode,
you
want
to
use
local
or
session,
and
this
basically
maps
to
web
storage,
session
stores
or
local
storage.
You
can
choose
an
expiration
timeout
and
then
you
can
speak
a
specified
policy
either
absolute
or
sliding,
and
with
that
you
can,
this
sample
varies
the
expiration
policy
on
to
the
controls.
D
To
avoid
you
know
the
usual
bit
storm
that
might
occur
when,
when
the
page
is
loaded,
we
want
each
of
these
controls
expiring
at
their
own
value,
which
is
kind
of
proportional
to
what
you
know.
The
volatility
of
the
the
data
itself,
so
one
other
thing
you
can
do
is
if
you
fire
up
the
local
tools,
you
can
see
the
representation
of
these
items
in
the
appropriate
stores,
basically
we're
using
a
JSON
representation.
It's
a
minimal
JSON
representation
that
is
independent
of
the
request
or
the
response
schema
right.
D
We
only
want
to
store
the
data
that
needs
to
be
rendered.
We
don't
care
about.
All
of
this
search
result
queue
or
the
stock
API
goo
that
comes
back.
That
might
be
supporting
the
the
response.
We've
got
stop.
There
is
a
bug.
I
that's
been
corrected,
but
currently
the
stock
information
is
being
put
in
the
wrong
cache,
but
that's
just
in
figuration
setting.
Actually
it's
left
in
as
a
exercise
for
the
reader.
You
can
figure
that
one
out
and
fix
it.
But,
oh
sorry,
what
I
wanted
to
show
is
the
console.
D
D
D
Does
that
for
each
of
the
items
in
the
cache
as
we
go
gate,
it
tells
you
when
it's
going
to
expire
and
when
it
does
expire,
actually,
I
can
force
an
expiration
again
by
clearing
the
storage
equals
one,
and
you
should
see
a
bunch
of
corresponding
logic
here.
The
other
thing
I.
We
do
the
clear
stories
we're
only
clearing
the
properties
that
are
used
by
this
application.
We're
not
point
you
know
clearing
out
all
of
the
365
cash
entries
or
anything
else.
D
D
Let's
see,
I
have
two
minutes.
I'll.
Do
us
some
highlights
on
the
code:
I
can
want
to
see,
make
sure
we're
not
running
I.
Don't
need
to
see
that
the
code
itself,
we
use
a
custom
master
page
right
now
in
the
demo
site
collection.
We
only
first
implicate
simplification,
I
didn't
want
to
mess
with
JavaScript,
embedding
right
now,
just
to
complicate
things,
but
in
general
we
declare
within
the
pay's
the
various
elements
as
divs
they're
empty.
When
the
page
loads.
D
We
call
the
constructors
on
the
various
controls
for
the
user
info
control
itself,
which
I
didn't
quite
demo.
We
we
have
an
onclick
handler.
You
may
have
noticed
there
that
we
had
a
progress
indicator
when
the
control
opened
up.
So
we
bind
the
unclick
handler
there
within
a
given
control
itself,
pretty
straightforward.
D
If
it's
a
control
that
renders,
when
the
page
loads,
its
constructor
will
call
a
common
method
called
get
contents.
That
method
is
pretty
straightforward.
We
have
some
default
HTML
that
we
want
to
present.
In
the
event
you
know
our
request
doesn't
succeed.
Before
we
do
the
request,
we
have
the
option
of
activating
a
progress
indicator.
D
This
control
does
not
do
that
once
we're
ready
to
go.
We
call
the
business
data
manager
asking
for
our
data
object
and
we
provide
our
storage
options
in
this
case,
we're
using
durable
storage,
because
it's
public
information
and
we
want
it
to
last
the
longer.
We
have
a
unique
timeout
value
for
this
control
of
five
minutes.
Once
we
get
a
response,
yeah
well
yeah,
we
have
our
response.
Alex
we're
either
going
to
get
a
success
or
a
failure.
D
If,
in
the
event
of
a
failure,
we're
going
to
use
the
fallback
HTML,
which
might
be
some
static,
hello,
world
text
or
it
might
be
blank
or
what?
If
we
get
a
success,
we
make
sure
that
the
object
we
got
back
is
valid.
We
might
have
gotten
an
era
in
which
case
we
want
to
come.
You
know
again
go
to
the
fallback
HTML.
If
we
get
valid
data,
we
simply
bind
to
the
JSON
object
and
render
the
content
pretty
straightforward.
D
Within
the
business
data
manager
itself.
The
logic
for
obtaining
a
data
for
a
given
control
is
rather
straightforward.
When
the
method
is
called.
We
first
have
to
figure
out
a
storage
key
in
the
event
of
a
singleton
like
the
global
navigation.
The
storage
key
is
fairly
static
in
the
event
of
like
a
objects.
Are
you
know,
personal?
You
know
personalized
information
or
web
specific
information.
We
have
to.
Basically,
you
know,
compute
unique
tags
for
that
element,
so
one
side
can
store
its
local
Google
Navigation
in
the
different
entry.
Then
you
know
the
parent
site.
D
So
anyway,
we
get
the
storage
key.
We
determine
if
we're
using
storage,
that
not
using
storage
is
certainly
an
option
in
the
event
that
we
do.
We
ask
the
Storage
Manager
for
the
object.
If
we,
if
its
present-
and
it
hasn't,
expired,
we
return
it.
Otherwise,
we
set
out
to
make
the
call.
So
this
the
business
data
manager,
abstracts
details
and
making
a
call,
in
this
case
we're
using
the
search
REST
API
against
a
given
list
in
the
event
of
a
failure
we're
going
to.
D
We
need
to
do
something,
so
we
can
either
return
a
null
object
which
says:
sorry
we
couldn't
do
anything
in
which
case
the
control
takes
the
makes
a
decision
on
what
to
display
or
if
we
were
lucky
enough
to
get
some
data.
You
notice
that
we
we
store
the
data
and
in
case
it's
false
or
it's
been
expired.
We
use
that
as
a
fallback
in
the
event
of
a
failure,
it's
better
to
show
sale
data
than
no
data.
The
thinking
there
again.
D
If
we
have
any
sort
of
failure
on
the
call,
we
make
sure
that
we,
if
we
have
stale
data,
will
attempt
to
use
that
will
actually
wreak
a.
We
don't
want
to
have
cascading
connection
failures.
If
this
is
something
that's
intermittent,
okay,
well,
just
caches
the
item
for
a
few
more
minutes
and
we'll
try
again
later.
You
can
certainly
enhance
this
logic
to
do
exponential
decay
and
all
of
that
good
stuff.
But
you
know
I'm
doing
this
for
free,
so
you're
welcome
to
help.
D
In
the
event
we
actually
get
a
valid
response
from
the
from
the
back
end
data
source.
We
simply
set
out
to
parse
that
response
and
create
the
minimal
JSON
representation
of
the
relevant
data
that
needs
to
be
rendered.
So
in
this
case
we're
simply,
you
know.
Looking
for
the
link
text
in
the
link
URL,
we
create
a
little.
You
know,
JSON
object
that
has
an
array
of
linked
nodes
in
it
and
once
we're
once
we've
computed
that
we
again,
if
we're
using
stories,
we
stick
it
into
this.
D
We
ask
the
storage
manager
to
store
it
in
the
appropriate
cache
and
we
return
it
to
the
user
and
all
as
well,
so
the
source
manager
itself
simply
interacts
with
the
web
storage
and
basically
it's
storing
and
retrieving
items
from
the
cache
and
does
some
of
the
additional
information
about
you
know
if
we're
using
a
sliding
exploration,
a
lot
of
data
accessed
on
if
the
items
expired.
You
know
we
returned
information
indicating
that
it's
expired,
but
we
also
return
the
item
so
in
case
they
want
to
present
a
stale
data.
Object
that
you
can.
D
D
A
Who
needed
to
stop
or
drop
away?
They
can
always
have
a
look
on
the
on
the
recording
right
now,
but
I
think.
The
key
point
here
is
that
I
say
a
crate
implementation
demo
and
reference
implementation,
how
the
bills
to
data
access
layer
and
JavaScript,
so
both
others
there's
multiple
ways
of
doing
this.
There's
multiple
patterns
and
all
of
that,
but
here's
something
which
people
can
actually
go
down
and
have
a
look
on
it.
It
works
in
a
classic.
A
One
in
August
I
will
update
this
the
timing,
the
ICS
order,
invites
during
the
summer
time
and
will
do
social
media
communications.
If
you
do
remember
akms,
SB,
P
and
B,
we
will
update
all
of
the
invites,
probably
there
within
a
few
weeks.
So
we'll
start
again.
The
BMV
calls
and
cycles
except
well
B&B
cousin
cycles
in
the
in
the
August
time
frame,
except
for
the
one
exception,
with
respect
that
3/4
is
running
the
special
interest
group
for
SharePoint
framework
and
the
mPHA
score
all
around
the
summer
as
well.
A
A
We
do
know
that
it
is
lasting
to
have
15
minutes,
15
20
minutes
to
do
a
quick
demo
on
something
which
is
relatively
complex,
but
I
think
we
built
up
to
idea
and
that's
what
this
is
essentially
for
getting
the
idea
getting
excited,
getting
the
interest
on
the
on
the
sample
getting
the
interest
on
technology,
and
then
they
can
investigate
that
more
and
we
can
then
provide
additional
corners
and
help
on
the
on
the
social
media
or
in
the
community
channels.
But
thank
you
everybody.
Thank
you
for
joining.