►
Description
Join members from the Blazor team to hear about what's on the way in .NET 5! Lots of new demos and fun new features! 🥳
Community links for this week: https://www.theurlist.com/aspnet-standup-2020-08-11
#Blazor #ASPNET
A
A
A
A
A
Wow
and
hello
welcome
to
the
asp.net
community
stand
up.
Let
me
add
stephen
the
whole
blazer
team's
here,
damien
edwards
is
here
it's
a
big
one,
hi
friends,
so
I
talked
dan
into
doing
the.
This
is
dot
net.
This
is
what's
new
in
dot
net
5
for
blazer,
and
I
talked
dan
into
like
this-
is
the
world
premiere?
A
A
D
D
A
A
It's
funny
with
the
timing,
because
we
found
this
platform
and
then
we
did
some
tests
with
it.
We
did
some
we're
also
doing
these
virtual
user
groups,
and
so
user
groups
are
have
through
net
foundation.
We
have
access
this
too,
and
then
we
showed
it
showed
it
around.
We're
like
this.
Is
it
we're
all
in
and
then
scott
was
like?
That's
not
h
or
that's
it's
like
720p
or
something
it
wasn't
1080p
and
then
we're
like.
F
D
A
G
A
I
don't
know
if
you
see
yeah,
you
don't
see
it
now,
but
I
am
using
the
side
tabs,
which
is
kind
of
wacky.
It's
yeah.
Have
you
folks
seen
this?
The
there's.
A
A
H
A
This
is
this:
is
a
mini
tabs,
going
crazy
thing
and
you
can
share
them
all
in
here.
So,
let's
see
I
will
pin
this.
As
always,
we
have
the
I
shared
these
out
at
the
end,
so
people
always
ask-
and
yes,
this
url
list
gets
shared
in
the
links
and
all
that.
So,
first
of
all,
I
want
to
mention
this.
So
scott
addy
called
this
out.
We've
been
doing
a
lot
of
like
cloud
native
stuff.
A
Lately
on
community
stand
up
or
or
just.net
in
general
right
we
had
net
conf
and
then
we
we
also
had
last
week
community
stand
up
with
project
high
stuff.
So
this
is
neat
to
see.
This
is
from
this
is
in
the
learn
stuff
and
it's
a
course
going
through
and
it's
it's
looking
at
resiliency
in
cloud
native
applications.
A
A
All
right,
rick,
strahl,
amazing,
blog
post,
is
always
from
rick.
So
here
he
is
talking
about
cr
shipping,
something
using
a
dotnet
global
tool,
and
what
he's
done
is
he's
got
this.
This
live
reload
server
that
he
built,
and
so
now
it's
time
to
share
it
out
to
the
world,
and
he
just
was
like
hey,
there's
global
tools,
people
kind
of
forget
about
global
tools
and
or
don't
know
the
best
practices
and
stuff.
So
he
kind
of
you
know
he
talks
about
how
to
how
to
use
some.
A
He
does
point
out
that
you
do
need
the
core
sdk
to
install
and
then
you
know
talks
about
just
you
know
the
general
things
here's
the
walkthrough
of
how
to
do
it.
You
know
how
to
ship
a
global
tool
and
stuff.
A
So
anyhow,
this
is
cool
and
then
he
kind
of
wraps
up
towards
the
end
with
talking
about
some
that
makes
sense
for
asp.net
developers,
specifically
so
there's
there's,
of
course,
oh
and-
and
this
is
neat
too-
you
know
like
running
on
another
platform
like
linux,
with
wsl
and
stuff,
so
the
the
ones
he
talks
about
is
is
his
re
live
reload
server
he's
also
got
a
snippet
converter
thing
that
he
uses
and
his
shared
is
global
tool.
A
A
All
right
somebody
got
really
quiet
and
then
loud
again,
I'm
not
sure
somebody
has
some
some
background
noise
happening.
So
this
is
cool.
This
is
from
michael
washington
and
he's
got
a
blog
post
on
the
way,
but
I
just
had
to
share
it
along
with
the
the
blazer
team
we've
got
here.
So
this
is
blockly
yeah
look
at
this,
so
it
is.
A
A
Yeah
and
this
whole
blockly
programming
model
is
just
really
cool,
so
yeah-
and
you
know,
michael
I
I
just
you
know
like
I
like
to
call
people
out
that
are
doing
awesome
stuff
for
years
and
years
michael's
been,
you
know,
just
his
blazer
help
website
is
cool.
He's
been
cranking
out.
A
Just
great
content
here,
he's
got
another
thing
in
here:
that's
he
has
blazer
projects
on
github
and
he
wants
them
to
show
at
c
sharp
and
not
as
like
other,
you
know,
html
or
whatever,
and
so
he
points
this
out
so
yeah
cool,
stuff,
alrighty.
A
Two
things
on
integration,
testing,
first
of
all,
steve
gordon,
has
a
a
new
course
out
on
pluralsight
on
integration
testing
with
asp.net
core.
So
this
is
best
practices
and
just
you
know,
explaining
differences
with
unit
testing,
all
the
all
the
stuff,
including
testing,
apis
and
things,
and
then
also
a
specific
blog
post
here,
barat
talking
about
integration,
testing
using
snapshots
and
so
walking
through
explaining
again
the
the
differences.
A
A
neat
thing
I
think
in
his
posts
is
he
talks
about
using
a
docker-based
approach
as
compared
to
a
memory,
and
you
know
specifically
how
you
can
get
a
really
good
integration
test
using
that.
So
it's
you
know,
reproducible
and
you
know
a
full
thing
using
things
like
you
know,
postgres
and
et
cetera.
It's
your
full
kind
of
dependency
management,
stuff,
so
cool
all
right.
A
A
So
you
know
a
form
element
here:
he's
just
got
disabled
equals
is
submitting
and
just
setting
that
so
on
submit
he
just
you
know,
can
escape
out
and
otherwise
setting.
This
is
submitting
and
that'll
disable.
The
form
element
so
said,
setting
a
little
boolean
flag.
That's
all
yeah.
A
B
A
Yeah,
so
all
righty-
this
is
a
series
I've
mentioned
before,
and
I
just
want
to.
You
know
repeat
it
because,
because
david
keeps
kicking
these
out,
this
is
a
series
on
blazer
game
development
and
so
for
people,
especially
that
learn,
visually
or
and
and
also
this
is
he's
doing
a
lot
of
stuff
with
js
interop
he's
using
canvas
for
this.
So
you
know
here's
his
here's
his
thing
and
you
know,
we've
got
a
lot
of
running
sprites
in
in
this
week's
community.
Stand
up
so
here's
gotta
show
that
off.
A
So
you
know
just
talking
about
handling
button
states
and
then
changing
the
changing
the
sprite.
These
are
all
he's
up
to
number
eight
now
and
they're,
all
pretty
quick,
just
a
few
minute
read
so
very
kind
of
slowly
building
up
through
these,
so
nice
stuff
all
right.
A
So
this
is
interesting,
mikhail
he's
writing
about
this
plug-in
framework
and
it
works
on
a
lot
of
different
platforms.
So
it's
across
the
dot
net
ecosystem,
it's
built
on
top
of
the
di
system
in
net,
and
it
has
this
plug-in
scanning
system
that
works
across
all
kinds
of
different
stuff.
So
it's
it's
assemblies,
but
it's
also,
you
know
nuget
packages,
scripts
etc.
A
So
I
you
know
I
looked
in
here
at
his
blazer
one.
Let
me
see
how
quickly
I
can
hop
over.
Oh
there,
it's
right
there,
so
he
goes
through
and
in
this
one
he's
got
just
a
simple:
let's
see
if
we
go
to
blazer,
so
he's
got
a
widget
in
his
index
and
just
binding
into
that
widget.
A
So
he's
got
this
injected
widget
and
then
in
his
so
he's
just
calling
you
know
using
that
to
show
data
and
in
the
startup
he
just
does
a
register,
and
so
yeah
it
looks
interesting.
I
think
also
a
neat
thing
here
is
that
it
works
with
the
ideas
that
you
can
write,
widgets
that
will
work
across
a
lot
of
different.net
stuff,
so
working
across
you
know
like
forms,
apps
and
stuff
yep
all
right
and
my
last
link
to
share
this
is
a
pretty
neat
one.
A
I
thought,
and
I
was
interested
in
your
folks
opinions.
This
is
from
john
hilton
and
just
kind
of
compare
and
contrast,
blazer
and
angular
a
nice.
A
nice
thing
in
here
is,
if
you're,
an
angular
dev
and
want
to
understand
blazer,
it's
kind
of
like
a
rosetta
stone
approach,
so
he
he'll
go
through
for
the
different
things
and
he'll
say
like
here
is
a
for
instance:
here's
how
you
create
a
new
angular,
app,
here's,
how
you
create
a
new
blazer
app
and
then
stepping
through
looking
at
components.
A
Looking
at
you
know
all
the
different
things
passing
data
around
and
stuff,
so
just
kind
of
here's
some
code
and
then
writing
the
same
code
in
blazer
at
the
end
of
it.
He
does
a
thing
where
he
talks
about.
You
know
pros
and
cons
of
both-
and
I
I
felt
like
this.
A
A
thing
he
called
out
here
is
something
I've
always
felt.
Is
the
shared
data
models
being
able
to
share
your.net
code
across
front
end
and
back
end?
Is
a
really
nice
thing,
and
so
he
does
call
that
out.
I
was
happy
to
see
that
in
general
for
angular
pros
it's
it's
more
around
the
lines
of
you
know
it's
it's
well
established
you
know,
and
so
it's
it's
kind
of
been
around
for
a
while
does
definitely
from
from
what
I
felt
dan.
A
Yeah,
I
felt
like
all
this
stuff
kind
of
like
feels
very
real
to
me,
like
there
was
just
kind
of
a
it
was
a
bit
of
a.
I
had
to
shift
my
mind
back
and
forth
right
and
it's
like,
oh,
how
are
we
doing
routing
now?
How
are
we
doing?
You
know
like?
Oh
here's,
this
type
script
thing,
I'm
not
super
familiar
with
right,
and
so
that
is
a
lot
of
what
he
calls
out
in
here
is
just
kind
of
built.
You
know
c
sharp,
built-in
navigation
routing,
all
that
kind
of
stuff,
yeah.
B
It's
trying
to
avoid
that
overhead
of
having
to
think
and
work
in
two
different
languages
like
two
different
frameworks,
two
different
tool
sets
just
let
you
do
one
I
mean
you
can
do
that
with
angular
2,
but
to
do
that
with
angular
you'd
be
doing
it
in
javascript,
like
if
you,
if
you're
happy,
writing,
javascript
full
stack,
then
you
can
avoid
the
the
overhead
of
the
second
language
as
well,
but
if
you
like.net
and
net
is
sort
of
your
native
tongue,
if
you
will
then
blazer
is
great
like
blazer
lets,
you
just
use
the
language
that
you
know
use
the
skills
that
you
know.
A
Yeah
yep
so,
and
really,
I
think,
a
lot
of
this
that
he
calls
out.
His
cons
is
kind
of
fair
and
it
all
really
comes
down
to
new.
You
know
it's
new
right
so,
like
you
know
new
framework
and
then
like
sizable
initial
download,
although
that's
getting
better
over
time
and
stuff
right
so
yeah,
I
thought
I
thought
this
was
kind
of
nice
and
and
again
the
whole
kind
of
here's.
How
you
do
data
in
blazer.
Here's
how
you
do
it
in
angular.
A
F
D
D
On
look,
I
I
really
should
start
wearing
my
watches
again
just
so.
I've
got
something
else
on
this
wrist
and
there's
something
nice
to
look
at.
When
I
look
down
at
my
hands
when
I
can't
find
the
key
I
want.
No,
I
really
should
it's
been
I'm
working
at
home.
I
just
don't
have
any
need
to
to
dress
up
a
little
there.
You
go
yeah.
I.
A
A
I
Yes,
so
I
wanted
to
share
an
update
about
blazers
development
sprints.
We
did
the
first
of
these
sprints
last
month
on
july
16th,
if
you're
unfamiliar
with
what
a
sprint
is,
it's
basically
a
24
hour
virtual
event
where
members
of
the
community
can
contribute
to
blazer
and
blazer
team
is
going
to
be
available
to
help
review
prs
talk
through
design
help
you
with
your
setup.
I
All
of
the
things
that
you
like
need
hands-on
help
with
sometimes
when
you're
contributing
to
open
source
and
the
goal
is
really
to
get
the
community
more
involved
with
the
project
and
get
folks
contributing
and
feeling
like
they
can
make
blazer
what
it
is.
So
we
held
the
last
one.
On
july
we
had
about
72
people
who
said
they
were
interested
in
participating.
I
We
had
19
pr
submitted
and
we
had
12
prs
that
were
merged
and
are
actually
going
to
be
shipping
in
dot
net
5.,
in
particular,
they're
going
to
be
coming
out
in
rc1.
So
it's
super
cool
to
see
people.
You
know
submitting
pr's
that
actually
get
shipped
and
if
you
are
envious
of
that
or
just
want
to
participate,
we're
going
to
be
doing
these
regularly.
A
F
B
I
was
just
saying
that
it
was
like
we
had
one
of
these
and
the
the
the
contributions
from
the
community
were
great,
like,
like
people
were
doing
all
sorts
of
stuff,
and
that
was
it
was
super
fun
to
see
what
happens
when
we
work
together
with
the
community.
It
was
really
great.
I
hope
we
it's
it's.
It's
fun
to
see
that
we're
going
to
continue
doing
this
as
an
ongoing
engagement.
A
And
we
shared
this
out
on
the
community
stand
up
and
it
was
fun
to
see,
like
you
said,
all
the
pull
requests,
all
the
excitement
and
and
stuff.
So
this
is
for
people
in
the
community.
People
watching
on
the
chat
and
stuff
now
definitely
a
great
way
to
get
involved
and
and
work
directly
with
the
team.
How
cool
is
that
so
wow.
E
B
Net
five:
now,
why
don't
you
can
you,
I,
I
think
I'm
sharing
my
screen.
What
can
you
flip
over
to
my
screen?
John
great
all,.
C
B
So
today,
what
we
wanted
to
to
share
with
everyone
was
give
a
sneak
preview
of
some
of
the
things
that
we're
working
on
in
blazer
for
for
net.
Five,
where
you
know
dot
f5
for
the
blazer
team,
is,
is
kind
of
a
compressed
schedule
for
us,
because
we
were
working
really
hard
on
laser
server
and
we
shipped
that
in
in
dot
net
core
30
and
then
again
with
dot
net
core
3
1
at
the
end
of
last
year.
B
It
was
about
that
time
that
dot
net
5
was
really
starting
to
ramp
up,
but
then
we
spent
time
through
through
may
working
on
blazer
web
assembly
on
that
ship
that
build
just
a
couple
months
ago.
So
that's
now
available,
and
so
we
only
really
transitioned
the
blazer
teams
to
dot
net
five
within
the
last.
You
know
a
couple
months
or
so,
and
fives
course
is
scheduled
to
ship
by
the
end
of
this
year,
but
even
with
that
compressed
schedule,
we
have
a
lot
of
good
stuff.
B
We
think
that
that
we're
working
on
that
we
want
to
share
with
you
we'll
be
talking
about
those
things.
Today
we
have
a
bunch
of
folks
from
the
blazer
team,
of
course,
on
the
call
that
will
be
demoing
their
their
craftsmanship.
B
Here's
a
an
overview
of
what's
coming
in
the
next
preview
of
dot
net
five,
so
dot
five
right
now
is
at
preview.
Seven,
if
you
haven't
been
following
along
with
dot
net,
five
and
blazer
is
in
dot
net
five,
both
blazer
server
and
blazer
webassembly
blazer
web
assembly
got
inserted
into
dot
net
5
for
preview
6
and
then
updated
again
in
preview
7..
So
both
hosting
models
are
there.
We've
been
doing
a
large
amount
of
work
on
blazer
web
assembly
to
switch
out
the
core
framework
libraries
that
blazer
web
assembly
uses.
B
We
we
were
using
the
implementations
from
the
mono
code
base
because
blazer
was
was
based
off
of
the
the
mono
runtime
blazer
web
assembly
in
dot
net
5
we've
been
trying
to
kick
off
this
big
unification
effort
that
was
announced
on
the.net
blog,
where
we're
trying
to
make
dotnet
be
one.net.
B
Instead
of
having
all
these
different
runtime
implementations
and
framework
library
implementations
we
wanted
to
unify
on
one
so,
we've
been
started:
kicking
that
off
with
blazer
by
replacing
the
mono
libraries
with
the.net
framework,
dot
net
5,
core
libraries,
and
that
gives
us
a
couple
of
things
that
allows
us
to
target
dotnet
five
as
our
target
framework.
B
So
you
get
an
expanded
api
surface
area
in
the
dot
net
five
time
frame,
and
we
just
get
all
the
goodness
of
having
that
single
implementation,
so
that
work
was
pretty
much
done
with
free
view.
Seven
and
it's
been
a
little
bit
ongoing
into
preview.
Eight
and
future
milestones
as
we
work
on
our
linker
technology
to
make
the
the
app
as
small
as
possible,
even
though
we're
expanding
the
amount
of
functionality
trying
to
shrink
it
back
down
again,
so
that
it
remains
reasonable
to
download.
B
With
your
application,
there's
been
a
lot
of
work
on
improving
runtime
and
rendering
performance
in
five.
I
know
there's
some
comments
in
the
chat
about
blazer
web
assembly
that
you
know.
Sometimes
it
can
be
a
little
slow
compared
to
running
like
a
native.net
runtime
like
a.net
core,
where
you
have
the
full
jit
capabilities
of
that
runtime
blazer
web
assembly
today
runs
on
an
il
interpreter.
There's
no
jit.
So
it's
it's!
B
It's
not
going
to
win
any
performance
competitions,
let's
say
the
these
days,
but
we've
been
working
really
hard,
though
I'm
making
that
better
in
five
and
we've
been
doing
optimizations
at
all
layers
of
the
stack.
So
the
il
interpreter
itself.
The
runtime
layer
has
gotten
a
lot
of
perf
improvements
in
this.
In
this
release
and
you'll
start
to
see
those
in
preview,
eight
and
and
in
future
milestones
that
are
coming
in
five
and
then
we've
been
doing
a
lot
of
work.
B
Also
at
the
framework
library
layer,
like
you,
know,
json
handling
and
parsing,
and
also
at
the
rendering
layer
and
we're
gonna
steve's
gonna
share
all
the
details
about
that,
and
then
we
have
a
whole
slew
of
features
that
we're
gonna
be
showing
you.
Many
of
these.
Today,
we've
been
working
on
css
isolation
that
should
be
coming
in
preview,
eight
making
it
so
you
don't
have
to
write
as
much
javascript
in
a
blazer.
B
App
is
a
big
theme
for
dot
net
five,
so
we're
adding
apis
like
making
it
really
easy
for
you
to
set
the
ui
focus,
giving
you
ways
to
influence
the
html
head
of
your
page,
like
setting
the
title,
the
metadata
meta
tags,
the
link
tags
all
through
blazers
component
models.
So
you
don't
have
to
draw
the
drop
to
javascript
for
those
things,
we're
giving
you
a
built-in
input,
radio
component,
so
that
you
have
that
out
of
the
box,
we're
doing
a
forms
based
development,
we're
also
shipping
the
protected
browser
storage
library.
B
That
steve
had
put
out
as
an
initial
experiment
we're
putting
that
effectively
in
the
box
for
net
five
other
things
that
we're
doing
lazy
loading,
we're
adding
some
basic
infrastructure
to
make
it
possible
for
you
to
delay
loading
parts
of
your
app
for
the
initial
load
like
if
you
have
a
large
app
and
you
want
to
sort
of
segment
it
into
different
areas
that
get
lazy
loading,
we're
adding
the
low-level
infrastructure
to
make
that
possible.
B
So
you
don't
have
to
load
all
the
assemblies
all
at
once
and
we
are
doing
some
work
also
on
the
dev
experience
like
that
interactive
flow,
where
you
want
to
edit
your
code
and
see
the
changes
in
the
browser
as
quickly
as
possible,
we're
making
some
improvements
to
dotnet
watch
and
adding
some
auto
refresh
functionality
in
preview
8
and
we'll
be
showing
that
as
well.
But,
of
course,
it's
much
more
fun
to
actually
see
the
demo.
F
F
Yeah
all
right,
okay
right
then,
so
this
is
the
issue
where
people
asked
for
css
isolation
and,
as
you
can
see
from
this
huge
slew
of
upvotes,
that
this
was
a
very
commonly
requested
feature.
So
not
surprisingly,
we
want
to
give
the
community
what
is
being
asked
for.
So
so
that's
what
we've
been
working
on
now,
I'm
just
going
to
turn
off
my
camera,
just
because
my
laptop's
about
five
times
faster
when
that's
not
running,
and
I'm
going
to
show
you
a
little
bit
of
the
demo
of
that
now.
F
Okay,
so
I've
got
a
blazer
application
here.
I've
got
both
server
and
webassembly
variants
of
blazer
in
this
solution,
but
the
feature
I'm
showing
you
now
works
identically
across
server
and
webassembly.
So
that's
doesn't
really
matter
which
one
of
the
two
we're
using
okay.
So
this
is
the
default
project
template
I'm
sure,
you've
all
seen
this
many
times
before,
and
it's
really
boring
seeing
these
same
purple
and
blue
styles
over
and
over
again.
So
how
about?
We
add
some
novel
styling
into
this
webpage?
Well
I'll
start
by
doing
it
without
css
isolation.
F
F
Well,
I
only
want
to
style
this
one
table,
not
all
the
tables,
so
I
better
give
it
a
unique
class
and
I'll
call
it
weather
table
just
so
that
we've
got
a
unique
class
for
it
and
then
I'll
go
to
my
global
site.css
file
and
I
will
just
start
typing
out
some
css
that
goes
in
there,
and
I've
prepared
a
little
bit
already.
So,
let's
just
dump
that
straight
in
there.
F
So
we've
now
got
this
weather
table
rule
here
with
various
borders
and
background
colors
and
stuff
same
for
the
heading
and
for
the
alternate
table
rows
all
right.
So
that's
the
traditional
way
of
styling,
your
blazer
application
and
it's
a
little
bit
frustrating
to
have
to
do
it.
That
way,
because
we're
just
combining
all
these
many
different
concepts
all
into
a
single
site.css
file,
which
is
a
little
bit
annoying.
F
F
All
right:
well,
anyway,
it
did
it,
and
now
I
can
go
back
to
my
browser
and
I
can
reload
and
you'll
see.
We've
now
got
this
alternate
styling
for
that
table.
Okay,
so
it
works.
But,
like
I
said,
I
don't
really
like
the
fact
that
I'm
having
to
dump
everything
in
one
big
css
file,
so
let's
get
rid
of
that
for
a
minute,
we'll
take
it
back
out
of
there
and
I'll
reload
and
we'll
just
check
that
that
style
goes
away.
F
Now,
let's
have
a
look
at
the
new
way
of
doing
this
with
css
isolation,
I'm
going
to
add
a
new
style
file
that
is
specific
to
this
fetch
data
page,
because
the
fetch
data
page
is
the
one
that
contains
the
grid
this
one
here
that
contains
the
grid,
and
I
want
to
add
some
styles
that
apply
just
to
that
individual
razer
component.
F
Fetchdata.Razer.Css,
so
it's
a
special
naming
convention.
That
means
that
we
will
apply
these
styles
only
to
that
component
and
I'll
start
just
by
dumping
in
exactly
the
same
styles
that
I
had
before
all
right.
So,
let's
see
if
that
works,
shall
we
now
notice
that
I
didn't
actually
manually
reference
this
css
file
in
my
page
anywhere?
I've
just
got
the
file
in
my
project
and
the
intention
is
by
following
this
naming
convention.
F
F
There
we
go
okay,
so
you
can
see
that
the
styling
has
come
back
and
that's
the
one
of
the
first
benefits
that
we
get
with
css
isolation
is
that
we
don't
have
to
dump
all
of
the
styles
into
one
big
file.
We
can
split
it
up
into
as
many
files
as
we
want
and
they
all
will
get
combined
together
without
us
even
having
to
reference
them.
F
Okay
and
another
thing
that
we
can
do
is
we
don't
have
to
necessarily
make
up
all
these
custom
class
names
anymore,
because
the
styles
in
that
css
file
will
only
be
applied
to
this
component
anyway.
So
I
could
get
rid
of
this
weather
table
class
from
my
sources
there,
and
I
could
go
back
here
and
I
could
say
all
right.
I
don't
need
to
qualify
that
with
weather
table
anymore.
I
don't
need
to
qualify
this
with
weather
table
and
I
don't
need
that
either,
but
I
do
need
some
name
for
it.
F
D
Yeah,
I
think
we
should
all
start
the
fun
to
get
steve
a
second
machine
for
streaming
or
something
I'm.
F
B
B
Know
the
builds
are
faster,
but
I
I
have
seen
the
same
thing
on
my
machine
when
I
was
trying
to
do
build
and
rebuilding
it's
it's
it's
slower
with
when
stream
yard
is
running.
E
A
F
Way:
yeah,
absolutely
okay,
so
my
table
came
back
up
and
you'll
see
that
it
still
worked,
which
is
not
surprising,
because
now
you
can
see
that
I'm
matching
all
the
tables
right
now.
Maybe
if
you
didn't
realize
that
this
was
isolated,
you
would
look
at
this
and
say
hey.
This
is
a
terrible
thing
that
you've
just
done
here,
because
you've
now
just
interfered
with
the
styling
for
every
single
table
in
the
entire
application.
F
F
Similarly,
in
the
counter
page,
we've
got
an
h1
element
and
the
same
in
the
home
page
as
well,
so
I
want
to
have
some
styling
for
each
ones,
but
only
in
the
fetch
data
case,
so
I'm
going
to
drop
in
a
little
bit
of
extra
styling
now
and
I'll
get
that
building
before.
I
explain
it
all
right.
So
I'm
going
to
make
this
look
way,
classier,
as
you
can
see,
I've
picked
one
of
my
favorite
fonts
and
I've
applied
a
little
bit
of
an
animation
to
that
and
we
will
see.
F
F
Wobble
is
smooth
here,
but
at
my
end
this
is
extremely
classy.
You
might
not
be
able
to
see
beautiful
looks,
but
it
does
look
great.
But
if
I
go
over
to
a
different
page,
you'll
see
that
the
the
styles
are
not
applied
because
it's
isolated
to
the
individual
component.
F
F
A
F
Yeah,
that's
right,
so
we've
actually
basically
ripped
off
this
mechanism
from
view
because
it's
proved
very
successful
in
view
and
we've
got
pretty
much
identical
feature
set
when
it
comes
to
scoping
css
and.
A
F
Know
that
it's
going
to
be
sufficient
for
people's
needs?
Okay,
so
I'm
not
going
to
show
it,
but
you
can
trust
me
that
this
works
great
with
razer
class
libraries
as
well.
So
if
you've
got
a
component
in
a
razer
class
library
that
contains
its
own
scope,
css,
then,
whenever
people
use
that
component,
its
styles
will
come
with
it
and
the
person
consuming
that
class
library
doesn't
have
to
go
and
add
any
extra
css
files
to
their
page
or
anything
like
that.
Oh
oh,
nice,
yeah
yeah,
so
that's
scoped,
css
and
yeah.
D
If
we
have
a
few
questions
in
the
chat
about
this
featured,
would
we
could
we
answer
them,
while
they're
hot.
F
D
So
someone
is
asking
obviously
we're
just
clarifying
this
is
in
dot
net
five,
and
is
this
going
to
be
the
next
preview?
Yes,
it's
in
previewing
preview
wait
great,
someone's
asking
about
support
and
integration
with
other
pre-processors.
F
F
Right
and
I'm
going
to
drop
in
some
sas
stuff
there
now
out
of
the
box,
we
do
not
have
any
sas
support.
So
if
I
build
and
run
this
now,
this
style
will
not
apply
so,
as
you
can
probably
guess,
even
if
you
haven't
used
sas
before
this
is
defining
this
variable,
which
is
red,
and
it's
going
to
set
the
h1
to
red.
D
Very
cool
clarifying
question
on
that
so
yeah
is
that
relying
is
is
that
working
so
seamlessly
because
they're,
both
in
ms
build
or
if
I
was
to
use
webpack
for
the
pre-processing
and
then
just
rely
on
blazers
inherent
whatever
it's
doing
for
its
component
level
isolation.
D
F
Let's
just
see
if
that
works,
shall
we
we'll
reload
here
and
then
we'll
see
if
the
title
of
counter
goes
green
and
it
does
so.
We've
we've
just
integrated
sas
with
our
scoped
css
and
you'll,
see,
of
course,
that
this
other
title
doesn't
go
green
because
it's
still
scoped,
even
though
it's
sas
cool
there,
you
go.
D
F
Yeah,
so
that's
another
issue,
that's
on
our
backlog.
We
really
want
to
get
that
in
in
time4.net
5..
Our
superintend
mckinnon
is
taking
the
lead
on
that
and
we
are
very
hopeful
that
we
will
have
a
feature
that
is
like
that.
It's
not
going
to
be
quite
the
same.
We're
not
going
to
it's
not
going
to
be
based
on
this
naming
convention
and
that's
something
that
we
might
add
in
the
future.
F
But
it's
a
whole
other
discussion
that
maybe
we
won't
get
into
right
now,
but
there
will
hopefully
in.net
5
be
a
way
of
loading,
isolated,
javascript
modules.
So
if
you
wanted
to,
you
could
have
one
per
component.
F
F
All
right,
okay,
right,
so
the
other
area
that
I've
been
focusing
on
quite
a
bit
lately.
Let
me
turn
on
my
camera
now
all
right
cool
right,
so
the
other
area
that
I've
been
focusing
on
lately
and
various
other
people
have
been
focusing
on
is
webassembly
performance.
We
know
that
is
one
of
the
biggest
limiting
factors
with
blazer
web
assembly
in
3-2.
F
Certainly,
people
have
been
very
successful,
deploying
production
apps
with
blazer
web
assembly
in
3-2,
but
there
are
certain
kinds
of
ui
that
you
can
build
where,
if
you
don't
really
know
what
you're
doing
you'll
you'll
quickly
run
into
struggles
with
that,
so
we've
been
working
hard
to
try
and
expand
the
capabilities
of
the
system
a
little
bit.
So
to
give
you
an
overview
of
where
we
are
with
this
the
amount
of
performance
gains
you
can
expect
between
3x
and
5.0,
depending
on
what
kind
of
code
you're
writing.
F
If
you're
writing
completely
arbitrary
code,
that's
got
nothing
to
do
with
blazer
or
json
processing,
then
on
average
we're
seeing
about
30
gains,
and
that
is
not
well
it's
mostly
to
do
with
the
change
that
dan
mentioned
earlier.
How
we've
moved
from
the
the
system?
F
Libraries
coming
from
the
mono
implementation
to
the
corefx
implementation,
so
that's
shared
with
net
core
in
general,
and
so
things
like
dictionaries
and
string
comparisons
and
such
are
a
lot
faster
also
because
of
some
runtime
changes
and
on
average
this
tends
to
average
out
at
about
30
percent
gains.
We
see
in
in
the
kind
of
things
we've
been
measuring
when
it
comes
to
json,
serialization
and
deserialization
we're
getting
some
bigger
wins
than
that,
and
that
is
because
we've
really
been
profiling.
F
This
scenario
and
putting
some
specific
optimizations
in
in
the
interpreter
that
that
we're
running
on
webassembly
there
so
generally
we're
seeing
about
two
times
faster
compared
with
3x
and
then,
when
it
comes
to
blazer
component,
rendering
we're
getting
bigger
gains
still
between
about
two
and
four
times
faster,
depending
on
what
type
of
components
you're
rendering
and
that's
because
we've
got
all
the
same
benefits
of
moving
to
the
new
corefx
space
class
library,
as
well
as
some
interpretoptery
optimizations,
as
well
as
some
optimizations
we've
done
inside
blazers
renderer
as
well.
F
Now
the
the
primary
scenarios
that
we've
been
looking
at
optimizing
for
component
rendering
are
to
do
with
grids
we
regard
grids
as
being
quite
representative
of
the
sort
of
really
intense
thing
that
people
do
in
the
real
world
because
you
just
end
up
with
a
lot
of
stuff
on
the
screen
at
once.
If
you've
got
a
really
large
grid.
So
the
benchmarks
that
we've
been
focusing
on
optimizing
for
are
a
set
of
different
20
by
200
grids
and
we've
got
these
three
scenarios.
F
We've
got
one
scenario
called
fast
grid,
which
is
a
really
optimized
grade.
We've
got
plane
table,
which
is
a
kind
of
average
case
that
we
think
represents
pretty
real
world
code,
that
most
people
would
write,
and
then
we've
got
this
complex
table,
one
which
is
just
sort
of
outrageously
unoptimized,
where
we've
just
thrown
all
kinds
of
unnecessary
features
in
just
to
slow
things
down,
even
though
you
would
not
do
that
normally
and,
as
you
can
see,
the
the
gains
that
we've
had
when
we
went
up
to
preview,
eight
were
pretty
substantial.
F
We've
got
some
more
gains
that
we
expect
to
make
in
the
release
candidate
one
release,
and
this
is
you-
can
see
the
the
numbers
there
between
like
two
and
three
x
ish.
There
are
some
scenarios
where
it
can,
where
it
can
get
higher
still,
which
is
why
I
said
up
to
four
times
now:
I'm
just
going
to
get
show
you
how
we
actually
compute
these
numbers,
because
I
want
to
be
fairly
precise
about
this,
so
people
get
the
right
expectations
of
things
to
actually
measure
the
performance
of
those
grids.
F
We
have
this
performance
benchmarking
tool
built
into
the
asp.net
core
reaper,
and
you
can
go
and
build
that
and
run
it
yourself.
If
you
want
to-
and
you
can
see
it
measures
the
timings
for
all
these
different
scenarios
and
we've
got
those
three
different
grid
scenarios
that
I
mentioned
just
there
and
I
can
start
running
them,
but
you
know
what
my
laptop's
doing
right
now
and
the
numbers
will
come
out
horrifically,
so
I'm
not
actually
even
going
to
run
them.
F
But
if
I
go
into
this
view
benchmark
app,
then
you
can
see
these
are
these
actual
grids
here.
So
this
is
the
the
fastgrid
one
here,
which
is
a
20
by
200
grid,
and
you
can
see
that
the
amount
of
time
that
it
takes
to
switch
pages
is
pretty
pretty
bad
when
I'm
doing
the
streaming.
But
it's
on
the
order
of
about
50
milliseconds
when
I'm
not,
and
to
to
give
you
even
more
clarity
about
that.
F
I'm
actually
going
to
show
you
another
grid
scenario,
the
sort
of
thing
that
you
might
well
write
yourself
and
then
we'll
look
at
what
sort
of
speeds
we're
getting
out
of
that
and
how
we
can
make
it
substantially
faster.
Still,
if
you
make
some
small
changes
to
your
code.
F
So
this
is
a
web
assembly
app
that
I'm
running
right
now,
and
this
has
got
some
grids
in
it
and
the
grid
that
I'm
showing
you
here
is
a
grid
of
people
and
it's
got
10
000
people
in
an
in-memory
collection
here
and
you
can
see
here's
my
grid
and
it's
a
bit
of
an
interactive
grid,
because
I've
got
various
things
in
here
that
I
can
do
so.
I
can
click
on
some
rows
to
select
and
highlight
them,
and
I
can
edit
people's
date
of
birth.
F
So
this
person,
who
was
86
years
old
before
I'm,
going
to
change
their
date
of
birth
to
today,
and
you
can
see
their
age
changes
to
zero
and
so
on,
and
then
I
can
move
around
between
pages
and
it's
all
very
instant,
because
I'm
only
showing
20
rows
at
once.
So
you'd
expect
it
to
be
instant,
but
you
know
all
the
interactivity
is
is
still
there.
You
know
when
I
come
back
to
this
first
page.
My
selections
are
all
sort
of
there
and
so
on.
F
Now,
if
you
were
in
on
blazer
3-2,
you
probably
wouldn't
want
to
have
too
many
rows
in
in
each
page,
because
you
may
start
to
see
some
performance
degradation
when
you
get
you
know
above
you
know,
sort
of
like
50
or
so
rows,
but
because
of
many
of
the
improvements
that
we've
done
in
the
500
release,
I
can
come
into
my
source
code
here
and
I
can
change
the
number
of
rows
per
page
to
a
much
higher
number.
F
So
I'm
going
to
change
this
to
a
hundred
and
you
can
see
the
actual
implementation
of
my
grid
is
very
straightforward.
It's
just
literally
an
html
table
that
I'm
looping
over.
You
could
do
much
more
sophisticated
things,
but
I
have
got
things
like
binding
and
such
inline
inside
my
grid
there.
So
let's
rebuild
that
with
the
100
rows
per
page
and
we'll
just
check
what
kind
of
performance
we
get
to
experience
from
that
now,
so
I'll
reload.
F
I'll
try
and
reload
all
right
so
by
the
time
my
browser
actually
wakes
up,
then
we
should
see
that
it's
all
reasonably
interactive.
If
I
click
on
this
grid
here.
Well,
you
know
it
is
about
maybe
10
times
slower
than
normal
because
of
the
streaming,
but
under
normal
circumstances
you
would
not
perceive
any
delay
whatsoever
when
clicking
through
from
one
page
to
another,
although
at
the
moment
I
do
see
about
300
milliseconds,
but
normally
yeah,
we
would
see
probably
on
the
order
of
about
30
or
so
milliseconds
for
those
actions.
F
Now
what
happens?
If
I
try
to
go
onto
this
all
page
well,
what
it's
going
to
try
to
do
is
render
the
same
10
000
people,
but
without
splitting
it
up
into
pages
it's
going
to
just
try
and
dump
all
of
them
onto
the
screen
at
once,
which
is
going
to
be
pretty
catastrophic,
but
for
for
performance,
so
I've
clicked
on
the
all
link
there
and
I'm
waiting
and
I'm
still
waiting
waiting
waiting
waiting.
F
Normally,
I'd
expect
this
to
take
maybe
about
one
second,
maybe
two
seconds
at
the
outside
on
my
laptop,
but
you
know
because
of
conditions
on
my
laptop
we're
getting
a
very
serious
issue,
but
the
good
news
is
there
is
an
almost
magic
solution
for
this,
by
which
we
can
make
it
pretty
much
instant,
even
when
we're
showing
a
10
000
person
grid,
which
is
very
exciting
and
cool,
and
I'm
going
to
show
it
to
you
in
a
little
bit,
but
I'm
not
going
to
show
it
to
you
right
now.
F
Let
mckinnon
do
some
of
his
demos,
where
he's
going
to
introduce
the
feature
that
makes
this
possible
and
then
I'm
going
to
come
back
and
show
you
how
fast
my
ten
thousand
person
grid
is
after
we
use
this
feature
the
same
grid
that
would
not
even
render
before
using
that
feature.
So
I'm
going
to
move
over
now.
C
Okay,
so
the
feature
that
steve
was
talking
about
is
something
that
I've
been
working
on
as
part
of
my
internship,
and
that
is
virtualization
support
and
blazer.
So
what
that
means
for
those
of
you
who
aren't
familiar
is
if
we
wanted
to
render
10
000
elements
instead
of
actually
displaying
all
10
000
in
the
dom,
we
can
only
render
the
visible
ones.
C
So
maybe
I
don't
know
20,
depending
on
how
many
the
visible
range
can
hold
so
the
way
I've
done
that
is
through
this
virtualization
component
or
this
virtualized
component,
and
there
are
a
few
different
ways
to
use
it.
One
way
is
to
provide
a
list
of
items
that
are
already
in
memory,
so
in
this
case
I'm
kind
of
building
off
of
the
weather
forecast
example.
C
When
you
first
create
a
new
blazer
template,
I
know
ten
thousand
forecast
doesn't
really
make
sense
because
we
don't
know
the
forecast
five
days
in
the
future,
but
for
the
sake
of
demo.
So
so
you
can
provide
an
item
source
in
this
case.
It's
that
forecast
array
and
then
in
the
body
or
in
the
child
content.
You
just
specify
what
each
item
in
the
list
should
look
like.
C
So
the
way
that
looks
is
it's
this
table
on
the
left
here
and,
and
I
can
scroll
through
it
and
it
is
actually
lagging
a
little
bit
because
of
the
stream.
But
the
elements
in
the
list
update
pretty
quickly
and
there's.
C
I
can
scroll
like
instantly
through
the
list
and
there's
no
really
kind
of
a
sluggish
experience
that
comes
with
it.
So
so
that's
one
way
to
use
virtualization
another
way
is,
let's
say:
you're
fetching
your
sources
from
some
sort
of
remote
source
like
a
database
or
something
you
probably
don't
want
to
fetch
them
all
at
once.
C
If
you
have
something
like
10
000
elements,
because
that's
just
a
lot
to
load
so
so
maybe
you
want
to
load
them
in
chunks
and
to
do
that,
you
use
an
items
provider
which
is
this
parameter
right
here
and
it's
essentially
just
a
function
that
defines
how
to
load
items
asynchronously.
C
And
then
you
just
return
the
forecast
that
you
fetched
as
well
as
what
you
know
to
be.
The
total
item
count
so
that
the
visible
range
looks
or
sorry,
so
the
scroll
range
looks
close
to
what
it
actually
would
be.
If
all
the
items
were
there.
C
Another
thing
you
get
if
you
use
the
items
provider,
is
this
placeholder
template
which
defines
how
items
look
if
they
have
not
yet
loaded?
So
that's
this
middle
table
here.
So
if
I
scroll
down,
you
can
see
there's
a
little
loading
template
that
refreshes
when,
when
the
loading
completes
all
right,
so
one
thing
to
note
is
that
by
default
only
the
visible
items
are
contained
in
memory,
which
is
which
is
great
for
for
for
memory.
C
I
guess
for
like
perform
for
performance,
but
if
I
were
to
scroll
back
up,
I
would
have
to
load
those
items
again.
This
behavior
is
customizable
if
you
just
change
your
items
provider
to
cache
already
loaded
items
itself.
So
that's
what
the
table
on
the
right
here
does.
So,
if
I
scroll
down
you
can
see
it's
loading,
the
items
as
it
was
before,
but
if
I
scroll
back
up
it
doesn't
have
to
reload
them.
So
the
behavior
of
of
how
scrolling
works
is
very
customizable
based
off
what
your
needs
are.
C
So
that's
that's
pretty
much
it
for
virtualization.
I
think
steve
had
some
more
things
to
say
about
how
the
impacts
performance
so
I'll
hand
it
back
off
to
him.
B
F
F
Look
how
slow
git
hub
for
windows
is
see.
It's
not
just
blazer!
It's
everything
on
my
machine
right
here
we
go.
So
this
is
the
change
that
I've
made.
While
mckinnon
was
talking,
it's
not
a
big
change.
I've
replaced
this
for
each
loop
here
with
the
use
of
the
virtualize
component.
That's
literally
it
because
the
virtualize
is
like
a
special
for
each.
That
only
includes
the
items
that
are
visible
on
the
screen
and
that.
F
F
F
In
this
case,
we've
got
a
delay
of
about
done
a
few
hundred
milliseconds
or
so,
but
it's
there
and
I
can
literally
scroll
through
all
ten
thousand
items,
absolutely
trivially,
and
I
can
because
it's
independent
of
the
number
of
items
in
the
underlying
set.
I
could
change
that
to
be
you
know
a
100
000
or
a
million
items
in
the
set,
and
it
would
have
absolutely
no
impact
on
the
performance
at
all
because
we're
only
paying
to
get
the
sort
of
20
or
so
items
that
are
on
the
screen
at
the
time.
A
B
C
I
do
yeah
if
you
want
to
switch
back
to
my
screen.
Okay,
so
another
feature.
Well,
it
was
more
kind
of
taking
what
steve
had
done
with
protected
browser
storage
and
moving
into
asp.net
core
or
in
sorry
into
blazer.
But
another
thing
I've
been
kind
of
polishing
up
is:
is
a
state
management
feature
for
blazer
server,
and
that
is,
as
I
just
mentioned,
protected
browser
storage.
C
So
this
allows
you
to
access
and
mutate
locals
local
storage
and
session
storage
and
your
browser
when
using
blazer
server,
and
it
goes
through
asp.net's
data
protection
api.
Basically,
basically,
so
this
is
kind
of
building
off
of
the
kind
of
simple
increment
count
sample
when
you
create
a
blazer
application,
but
it
just
saves
in
local
storage
and
session
storage
and
there's
really
not
much
to
show
here.
C
I
guess,
except
to
prove
that
it
actually
is
using
a
local
in
session
storage
to
open
a
new
tab
and,
as
you
can
see,
the
local
account
has
persisted,
because
that
stays
until
you
tell
it
to
go
away
and
session
count
has
been
reset
because
we
opened
a
new
tab.
So
the
way
you
use
it
is
pretty
simple:
you
can
just
inject
the
protected
local
storage
and
protected
session
storage
as
services
and
and
you
can
call
async
and
delete
async
to
mutate,
those
stores
or
access
them.
C
You
can
also
provide
a
a
purpose
string,
so
you
can
scope
a
data
to
a
specific
user,
for
example.
So
that's
another
kind
of
nice
little
feature
that
has.
C
Yeah,
so
I
guess,
if
I
understand
your
question
right,
what
I
have
here
is
just
after
the
first
render,
I'm
I'm
just
calling
this
function,
or
these
two
functions
to
to
update
the
account
to
what
it
was
previously
and
then,
after
that,
when
you
update
you
can
just
well
here's
here's
the
update
functions
right
here,
so
just
just
cause
get
async
on
on
these
two
keys
updates
the
the
the
local
state.
C
I
guess,
and
then,
when
you
make
changes,
then
it
just
does
set
async
and
then
afterwards,
just
to
show
that
it's
actually
working
I'm
doing
updates.
After
so
it
uses
the
correct
counts.
I
guess
it's
a
yeah.
A
Yeah
it
does,
I
mean
here,
you're,
just
saving
it
in
locally
right,
so
I
guess
I'm
thinking
more
towards
if
you
were
actually
persisting
like
the
amount
of
data
like
that
was
in
that
grid
right
or
a
huge
chunk
of
jason
or
something,
and
probably
in
that
case
I'd
just
blow
it
out
and
overwrite.
It
definitely
yeah
cool.
C
Yeah
thanks
yeah,
so
we
have
some
other
features
as
well,
or
I
have
some
of
the
features
that
I'm
working
on
working
on.
One
is
the
input
file
component
and
this
is
something
that's
still
a
work
in
progress,
so
it's
not
totally
done
yet,
but
it
essentially
wraps
the
the
html
input
element.
C
When
you
have
this,
when
you
have
the
type
set
to
file
and
the
way
that
works,
is
you
just
create
an
input
file
specify
this
on
change
handler,
and
that
gives
you
a
list
of
files
that
you've
uploaded
in
this
case
I've
disabled
having
multiple
file
uploads?
So
it's
just
one
file
and
then
how
this
works?
Is
you
get
the
file
as
a
net
stream?
So
it's
it's
basically
a
really
easy
way
to
access
like
file
information
from
users,
from
user's
browser
and
in
the
form
of
that
stream.
C
So
in
this
case
I'm
just
accessing
image
file.data
and
then
copying
it
to
a
memory
stream,
converting
it
to
a
base64
string.
So
I
can
render
it
as
an
image
in
the
page
there's
also
a
nice
helper
function
that
allows
you
to
convert
between
image
formats
and
specify
like
a
maximum
resolution.
C
So
the
way
this
looks
is
I'll,
just
upload
a
file
in
this
case
I
do
happen
to
have
an
8k
background
image
so
upload
that
and
there
it
is
there's
also
this
callback
on.
A
Yeah
it
exploded.
He
took,
he
broke
the
internet,
yeah
well
yeah,
that
is
super
cool.
I
love
these
input,
file,
components
or
just
input
components
in
general.
That
was
something
I
was
slow
to
pick
up
on.
You
know,
but
in
developing
applications.
It's
great
that
I
can
use
my
html
primitives
and
stuff,
but,
like
you
know,
using
the
full
all
these
input
components
is
really
helpful.
Mckinnon
looks
like
you're
back.
B
C
That
we
didn't
hear
all
right,
so
I
was.
I
was
basically
just
talking
about
the
there's,
also
this
callback
on
data
red
and
it
gets
called
every
time
you
upload
like
a
new
chunk
of
data,
so
you
can
have
things
like
a
a
percentage
like
progress
for
how
how
far
the
image
upload
is
or
the
file
upload
is.
So
that's
that
feature.
C
C
Right,
yeah,
cool
cool,
so
another
feature:
I've
added
is
influencing
the
html
head
from
blazer.
So
previously.
In
order
to
do
this,
you
would
have
had
to
do
javascript
interrupt.
But
now
you
can
just
basically
write
these
like
pseudo
elements
in
your
code.
So
for
an
example,
let's
say
I
had
a
website
where
I
wanted
it
so
that
if
there's
an
unread
notification,
the
title
changes
and
the
icon
changes
in
your
website.
So
previously
I
would
have
had
to
again
do
javascript
interrupt
to
make
that
work.
C
Now
I
can
just
render
a
title
and
link
component
as
I
would
if
I
was
just
putting
them
directly
into
the
head,
so
I
can
just
set
the
title
with
updated
title
and
change
the
link
to
link
a
new
icon.
C
Yeah
and
this
feature
isn't
only
nice
because
it
reduces
the
amount
of
javascript
you
have
to
write,
but
it's
also
nice
because
it
works
with
pre-rendering.
So,
like
let's
say
you
had
metadata
that
you
wanted
to
maybe
change
depending
on
how
components
were
rendered.
That
will
now
work
if
an
seo
engine
tries
to
fetch
that.
So
that's
that's
another
really
nice
feature.
A
D
So
manipulation
of
the
head
is
also
super
important
from
my
investigation
previously
to
work
with
web
analytics
frameworks
like
application,
insights
and
other
things,
because
a
lot
of
them
will
use
the
page
title
for
spa
based
frameworks
in
order
to
differentiate
differentiate
between
different
pages.
When
they're
counting
page
views,
like
typically,
it
would
use
the
url
as
part
of
detecting
the
http
requests
going
on
in
the
browser
or
the
full
navigations,
but
when
using
push
state,
I've
noticed,
like
certainly
app
insights
and
some
of
the
others.
D
They
rely
on
the
page
title
to
differentiate
when
it
comes
to
reporting,
and
so,
if
you're,
not
changing
the
page
title
as
part
of
your
page
navigation,
then
that
becomes
a
little
hard
to
tell
which
page
was
viewed.
We
don't
automatically,
though,
to
have
any
type
of
automatic
page
titling
based
on
routing
correct,
like
you
still
have
to
set
the
title
yourself
on
every
page,
right,
yeah,
okay,
so
that
might
be
interesting
for
someone
to
come
up
with
I've.
Seen
some
efforts
on
that
in
the
past.
D
C
A
C
It
should
work
yeah.
We
do
require
that
okay,
so
so
the
way
this
works.
This
is
getting
a
little
bit
into
implementation,
but
there's
actually
a
little
bit
of
javascript,
that's
included
in
the
response
that
has
to
get
run
in
order
for
the
changes
to
apply.
So
as
long
as
that,
javascript
is
run
which,
like
most
seo
engines
for
instance,
do
that
so
it
it
should
work
so
any
any.
C
As
long
as
that
javascript
is
run,
then
the
changes
should
be
applied,
so
wow
yeah
yeah.
So
that's
that
feature
the
next
one
wait.
B
C
C
Radio,
all
right,
so
I'm
actually
on
this
focusing
without
jas.
This
is
a
pretty
small
feature,
but
if
you
have
an
element
reference,
you
can
now
call
focus
async
to
bring
focus
to
that
feature.
Sorry
focus
to
the
element,
and
so
in
this
case
I
just
have
an
element
reference
to
this
input
and
I'm
calling
input.focus
async
when
the
button
next
to
it
is
clicked.
C
So
I
can
just
click
that
and
it
brings
focus
to
it.
It's
pretty
simple,
but
this
feature
does
leave
the
groundwork
for
other
features
kind
of
like
it.
So
if
you
have
a
suggestion
for
a
feature
that
that's
similar
to
focus
async,
that
would
currently
require
javascript
interrupt,
but
you
don't
want
it
to
then
you
could
feel
free
to
submit
an
issue
for
that
and
then
we
could
potentially
add
that
in
so
so
that's
that
nice
and
then
finally,
the
input
radio
component.
C
A
C
Yeah,
so
if
I
like,
for
instance,
go
ahead
and
submit
an
empty
form,
you
can
see
the
validation.
Styling
is
similar
on
the
input
radio
for
how
it
would
be
with
existing
components
like
the
input
text
component,
so
I'll
go
ahead
and
fill
this
out
and
then
pick
an
option
and
then,
since
the
first
two
options
clearly
aren't
correct.
Only
the
third
one
yields
a
valid
result.
You
can
submit
so
yep,
that's
pretty
much
what
I've
done
so
far.
I'm
halfway
through
my
internship,
I
hope
to
get
more
done.
B
Yeah
he's
not
even
done
yet
yeah,
that's
great
wow
mckinnon.
That
is
a
fantastic
set
of
features.
Thank
you
for
showing
those
off
yeah.
A
There
there's
one
person
in
the
chat
that
is
like
I'm
building
an
app
like
as
you
as
you're,
showing
each
of
these
features
they're
like
oh
I'm
working
on
file
upload
now
and
I'm
working
on
this
right
now
and
wow,
oh
great,
like
so,
they
said
it's
it's,
he
said,
oh
man,
is
it
my
birthday?
All
these
are
awesome
presents
that's.
D
So
funny
I
that
that
reaction
rings
so
true
to
me,
I
remember
back
when
asp.net
2.
This
is
how
old
I
am
back
when
aspirin
at
2
was
being
doing
the
rounds
of
previews,
and
I
went
to
some
in-person
preview
in
australia
and
I
was
working
on
an
asp.net
1.1
site
and
they
demoed,
like
all
the
login
controls
and
the.
D
B
A
I
All
right,
let's
do
that
cool
so
for
this
demo,
I'm
gonna
switch
into
an
alternate
personality.
I'm
a
developer
for
this
company
called
frankie's
fruit
stance
and
we
produce
a
mobile
application
for
sales
associates
who
sit
by
the
side
of
the
road
in
fruit
vendors
and
sell
produce,
and
so
what
these
souls
associates
do.
Is
they
log
in
at
the
beginning
of
the
day
they
pop
open
this
app.
They
go
to
the
sales
register.
I
We've
got
different
kinds
of
produce
that
we
have,
they
can
sell
it
throughout
the
day
and
then,
at
the
end
of
the
day,
we
have
a
sales
dashboard
where
they
can
take
a
look
at
their
sales
throughout
the
day
and
then
send
a
sales
report
off
to
the
sales
manager.
As
you
can
see,
fantastic
ui
ux
here,
I
should
have
taken
way
more
advantage
of
steve's
css
isolation
feature.
I
So
I'm
starting
to
get
reports
from
these
sales
associates
that,
at
the
beginning
of
the
day,
it
takes
the
app
an
awful
long
time
to
load
and
they're,
not
sure
why
so
I've
started
to
investigate
this.
So
I'm
going
to
pop
open
my
trusty
dev
tools.
I
I
H
H
B
I
Yeah,
so
that's
a
good
thing
to
point
out
about
lazy
loading
is
this
is
a
feature
you
can
use
in
conjunction
with
compression
with
linking
and
a
lot
of,
the
other
features
that
we
have
to
help
you
build
performance
and
small
blazer
web
assembly
applications,
so
it
doesn't
stand
on
its
own.
It's
like
standing
on
the
shoulders
of
giants,
so
cool.
If
I
start
by
assembly
size,
I'm
going
to
see
here
that
there's
two
big
culprits,
one
of
them
is
itech
sharp
and
the
other
is
bouncy
castle
crypto.
As
a
developer.
I
Our
sales
associates
really
only
fire
off
these
sales
reports
at
the
end
of
the
day,
so
I
don't
need
to
load
it
if
they're,
just
on
the
sales
register
with
customers
or,
if
they're
filling
out
their
timesheets.
I
So,
let's
close
this
out
and
let's
see
if
we
can
hop
over
to
my
blazer
webassembly
application
and
fix
that
cool.
So
now
I'm
in
my
vs
code
session,
I've
got
my
blazer
web
assembly
application
open.
I'm
going
to
go
ahead
and
open
my
project.
I
Oh
this
is
this
is
totally
a
symptom
of
the
fact
that
it's
actually
sunny
in
washington
state
for
the
first.
I
Of
sun
in
my
apartment
and
I'm
having
to
use
light
themes
for
once,
instead
of
dark
things,
so
I
start
by
going
into
my
project
file
and
I'm
going
to
add
a
new
item
group
that
contains
all
of
the
assemblies
that
I
want
to
be
lazy
loaded,
and
here
it's
the
two
that
I've
identified
as
my
culprits.
I
After
doing
my
investigation
in
browser,
dev
tools,
cool,
let's
stop
my
running
server
here,
I'm
gonna
hop
over
to
my
applications,
router,
which
is
an
app.razer,
and
I
see
here
that
I've
got
my
router
component
and
I've
got
an
and
now
on
navigate
async
callback
that
I've
already
written
up
here
now.
What
I
can
do
is
I
can
go
ahead
and
invoke
this
all
navigate
async
callback
in
my
router.
I
I
Yep
cool,
so
I'm
gonna
pop
up
in
my
editor
here.
I've
opened
the
application.
The
first
thing,
you're
gonna
see
here,
is
remember
again
we're
running
in
development
mode
without
linking,
but
we've
loaded,
9.9
megabytes
of
resources,
as
opposed
to
the
13
we've
had
before.
So
we
were
able
to
shave
off
about
four
megabytes
in
development
mode
without
linking
for
this
scenario,
and
that's
because
we
haven't
visited
the
sales
dashboard
yet
so
our
sales
associates
can
go
to
the
register.
They
can
ring
up.
I
Clients
do
all
of
that
fun
stuff
and
then,
at
the
end
of
the
day,
they
can
go
to
the
sales
dashboard
and
we'll
notice
here
that
the
assemblies
will
be
loaded
dynamically
or
deferred
when
they
visit
that
route
and
the
page
will
still
be
able
to
function
as
normal,
so
they
can
look
at
the
visualization
zoom
out
if
need
be,
and
all
of
that
gets
done.
So
that's
the
laser
web
assembly
lazy
loading
feature,
as
mentioned
before.
I
We
provide
all
of
the
low
level
infrastructure
you
need,
so
you
can
build
on
top
of
this
feature
in
your
application
or
in
your
framework.
Libraries,
if
you
want
to
extend
on
top
of
it
and
it'll,
be
documented
fully
as
part
of
preview
8.
So
take
a
look
at
the
docs.
We've
got
lots
of
information
written
up
on
how
to
use
it
different
scenarios
and
things
like
that.
B
Yeah,
so
this
is,
this
is
kind
of,
I
think,
if
it
is
a
little
bit
lower
level,
abstractions
right
like.
B
B
Yet
like
I'm
gonna,
I
I
don't
need
them
initially
and
then
in
the
router
you
can
say:
okay,
but
if
you
navigate
here
now
go
ahead,
we
give
you
a
service
that
lets
you,
then
dynamically
load,
those
assemblies
into
the
into
the
runtime,
so
that
you
can
then
use
that
functionality.
I
Yeah-
and
you
can
actually
use
this
as
mentioned,
if
you're
wanting
to
defer
lazy
loading,
if
you
know
a
particular
set
of
large
components,
is
going
to
be
loaded,
it's
super
customizable
for
you
to
build
on
top
of.
A
I
B
A
Okay-
and
there
was
one
other
question-
I've
just
rushed
through
this
because
I
know
we
have
other
stuff
to
show,
but
why
you
need
to
specify
dll
suffix
and
on
navigate
async.
But
you
don't
need
to
in
the
ms
build
properties.
I
So
we
passed
the
list
of
assembly
names
directly
to
the
lazy
loading
service
wow.
That
was
on
the
other
tab
and
it
was
totally
lagging
so
we
handle
concatenating
the
dll
name
onto
the
include
that
you
provide
in
the
project
file,
but
not
in
the
invocation.
I
I
Funny
so
yeah.
This
is
a
great
way,
great
time
to
point
out
that
this
feature
will
be
released
in
preview.
Eight,
take
a
look,
give
it
a
spin,
try
it
out,
and
please
do
share
your
feedback
on
everything
from
the
api
to
things
that
you
would
like
to
see
improved.
B
One
more
thing:
can
you
switch
it
over
to
my
machine
if
you
would
be
so
kind
all
right
cool?
So
the
last
thing
I
wanted
to
show
was
just
a
little
development
experience,
improvement
that
we've
been
working
on
damien's
been
working
pretty
hard
on
this
in
conjunction
with
the
blazer
team.
So
I've
got
a
blazer
application
open
here
in
visual
studio
code.
This
is
just
the
normal
blazer.
B
In
this
case
it's
a
blazer
server,
app
blazer
server,
template
and
I've
got
the
terminal
open
at
the
at
the
location
of
this
project
and
I'm
just
going
to
go
ahead
and
run
it
and
to
run
it.
I'm
going
to
use
dotnet
watch,
which
is
a
built-in
tool
to
the.net
sdk
for
watching
the
files
and
rebuilding
the
app
as
you
make
code
changes
to
your
application,
so
I'm
going
to
do
netwatch
run
and
go
ahead
and
just
hit
enter
and
get
that
going
and
hopefully
now
this
is
going
to
be.
B
B
Thank
you
damian.
I
didn't
pop
up
the
browser,
like
it
popped
up
the
browser
for
me.
So
that's
a
nice
little
improvement,
that's
actually
in
preview
7.!
Then.
If
you
use
dotnetwatch,
we
will
go
ahead
and
launch
the
browser
for
you
at
the
right
url
so
that
you
don't
have
to
okay.
So
that's
kind
of
nice.
B
Now
I'm
going
to
go
ahead
into
my
application,
I'm
just
going
to
add
a
little
bit
more
excitement
to
my
hello
world
and
visual
studio
code
will
automatically
save
the
file
so
dotnetwatch
detects
that
kicks
off
another
build
blazer
server
detects
that
the
server's
gone
down.
It's
displaying
a
little
ui
to
say,
hey
hold
on
I'm
waiting
to
reconnect
to
the
server
after
it's
rebuilt
and
restart
it
again
now,
normally
without
streaming.
This
all
takes
about
like
two
seconds
or
so
with
streaming
takes
a
little
longer,
but
oh
the
browser
just
refreshed
for
me.
B
I
didn't
actually
have
to
do
anything,
so
this
is
a
new
feature
that
I
I
like
to
call
auto
refresh
when
you're
using
watch,
we
will
watch
for
those
changes
and
we
will
insert
a
little
bit
of
javascript
into
the
page
to
handle
the
auto
refresh
of
the
page.
If
we
go
looking
in
here
into
the
sources
of
this
page,
this
is
the
html
page
that
got
downloaded
the
generated
html
for
the
the
application
and
down
here
at
the
bottom.
B
You
can
see
there's
a
little
bit
of
script.
That's
handling
the
the
refreshing
of
the
page
for
you,
so
that's
kind
of
nice.
So,
if
I,
if
I
go
back
to
my
application,
let's
say
add
a
you
know,
add
a
counter
component
to
the
home
page
again.
Let
that
sit
down
and
watch
is
kicking
off
the
build.
This
normally
would
take
about
two
seconds,
but
because
of
the
streaming
it's
it's
taking
a
little
longer.
B
One
of
the
things
we're
actually
working
on
really
hard
right
now
is
improving
the
build
times
of
laser
webassembly
app,
so
that
this
inner
loop
is
more
agile
and
more
more
iterative
in
in
nature.
So
I
can
click
on
the
counter.
Now
I've
got
a
counter.
We
can.
Even
you
know,
change
the
increment
amount.
Let's
change
it
to
10.
Let
the
change
happen
again.
I'm
not
refreshing
the
browser
again.
This
is
just
me
editing
code,
letting
the
browser
do
its
thing.
It'll,
auto
refresh
for
me,
and
I
see
the
changes
now.
B
D
D
Horrifically
slow
because
it
disregards
anything
you've
done
before
this
is
an
incremental
build
from
ms
bill's
point
of
view
and
further
to
that
dot.
Net
watch
now
can
go
even
sort
of
more
fine
grain,
so,
rather
than
just
calling
dot
net
run
again
every
single
time,
it
sees
a
change
if
it
determines
that
the
file
changed,
wasn't
something
that
would
impact
for,
say,
nougat.
D
It
will
suppress
the
implicit
nuget
restore
which
will
save
you
an
extra
second
or
so,
depending
on
how
fast
you've
been
about
an
extra
minute
right
now,
given
how
fast
your
machine
is
going,
which
obviously
helps
and
those
are
type
of
incremental
improvements
that
we
can
make
in
things
like
dot
net
watch
when
they
can
determine.
Oh,
the
the
effect
of
this
change
can
be
suppressed
because
we
we
know,
there's
not
going
to
be
any
change
there.
D
The
other
thing
I
have
to
call
out
is
that
we
were
massively
inspired
by
a
community
member
who
built
this
solution.
Originally
rick
strahl
has
the
asp.net
call
live
reload
middleware,
and
it
did
a
very
similar
thing
to
what
you're
seeing
here,
but
it
required
editing
your
application.
You
had
to
add
a
package
you
had
to
go
and
then
like
edit
your
startup
file
and
then
you
would
get
this
type
of
experience.
D
We
were
so
inspired
by
that
that
I
reached
out
to
rick,
and
I
had
a
quick
chat
with
him
and
they
said
what,
if
we
just
built
this
in
into
dot-net
watch-
and
you
didn't
have
to
edit
your
app
at
all,
because
we
can
inject
this
stuff
into
the
app
when
dot-net
watch
launches
it.
So
we
actually
took
some
of
rick's
code
appropriately
attributed.
D
Of
course
you
can
go
and
look
at
the
copyright
headers
in
github
and
then
we
we
rolled
that
into
the
dot
netwatch
feature
so
that
you
now
just
get
this
all
part
of
dot
net
watch.
So
it's
a
huge
shout
out
to
rick
for
the
original
sort
of
heavy
lifting
there,
and
then
I
didn't
do
any
coding
at
all.
Pranav
was
the
devil
actually
rolled
it
all
into
dotnet
watch
I
just
kept
poking
him
saying:
is
it
done
yet?
Is
it
done
here?
Can
you
make
it
faster.
B
It
is
pretty
fun
it.
It
does
make
development
have
that
sort
of
iterative
feel
where
you're
just
editing
and
saving
and
seeing
the
changes.
The
distinction
I
was
I
was
leaning
towards
there
was
this.
I
know
some
people
talk
about
hot
reload
just
be
clear.
This
is
not
hot
reload
in
the
sense
that
we're
not
taking
newly
built
code
and
trying
to
somehow
inject
it
into
the
already
executing
application.
B
This
is.
This
is
more
of
an
auto
rebuild,
with
lots
of
clever
optimizations
in
how
we
do
the
rebuild
and
then
auto
refreshing.
The
browser
for
you
having
a
hot
reload
semantic
is
something
that
we're
looking
at
in
the
dot
net
six
time
frame
to
see.
If
we
can
make
this
that
that
loop
even
faster
but
yeah,
so
that's
something
that
you'll
be
able
to
try
out
in
preview,
eight
of
dot
net.
Five
that's
coming
up
really
soon.
I
saw
some
questions
about.
Is
is.net
watch
like
specific
to
blazer
server?
B
No
netwatch
is
a
generic
tool
that
just
watches
the
files
and
then
does
some
command
whenever
the
files
change.
In
this
case,
I
asked
it
to
run
the
the
application
you
can
use.
Dotnet
watch
run
with
mvc
apps
razer
pages
apps
blazer
webassembly
blazer
server.
It
works
for
all
of
the
all
of
those
applications,
so
this
same
demo
works
just
as
well
with
like
a
razer
pages
base
app
or
a
blazer
webassembly
app.
So
you
can
use
that
for
any
of
those
application
models
all
right.
So
that's
that.
D
Let's
be
completely
honest,
this
is
the
crudest
form
of
automation
effectively
that
saves
you
from
hitting
whatever
keystroke
you
do
to
build
your
application
when
you've
made
a
change
and
then
having
to
alt
tab
over
to
the
browser
and
hit
f5
to
refresh
the
page,
we
are
automating
that
for
you
by
default
when
using.net
watch
and
this
injection,
which
refreshes
the
browser,
the
other
end
of
the
spectrum,
is
full
hot
reload,
where
we
literally
live
patch
changes
into
your
running
application
and
maintain
as
much
data
as
possible
based
on
the
mechanism
for
doing
so.
D
But
there
are
notches
there.
Are
click
stops
in
between
what
we're
doing
here
and
full
live
reload
that
we
also
intend
to
investigate
and
hopefully
add,
support
for
so
that
you
can
avoid
some
of
the
other
overhead,
even
in
scenarios
where
we
know
hey,
we
can't
do
a
super
hot
reload
in
the
future
for
this
type
of
change,
but
we
can
just
replace
this
part.
Maybe
we
keep
the
wasm
runtime
booted,
but
we
just
reload
the
app
assembly,
for
example,
and
that
would
save
you,
the
browser
refresh
and
a
bunch
of
other
stuff.
D
B
B
To
summarize
the
things
that
are
still
to
come,
like
the
the
the
many
of
the
features
that
we
saw
today,
are
going
to
be
in
the
preview
8
release
which
should
be
out
in
about
two
weeks
or
so
for
you
all
to
play
with
we're
giving
you
this
sneak
preview
in
this
community
stand
up
today,
things
that
are
coming
after
preview,
eight,
like
in
the
september
time
frame
or
beyond,
are
the
ones
on
this
list
that
we're
showing.
So
we
are
working
on
additional
runtime
and
rendering
performance
improvements.
B
Steve
talked
about
those
that
there
are
additional
perf
improvements
that
will
come
in
the
first
release:
candidate
preview
that
should
come
in
september
time
frame.
The
virtualization
support
that
you
mckinnon
did
that's
not
actually
in
preview.
Eight,
so
you'll
only
see
that
in
the
rc1
build,
but
as
you
can
see,
it's
it's
looking
good
and
you'll
be
able
to
try
that
out
in
the
in
the
fall
in
the
in
september.
File
upload
is
also
in
that
same
bucket.
B
We
are
hoping
to
do
javascript
isolation,
that's
also
post
preview,
eight,
but
it
is
something
we're
hoping
to
tackle,
go
mckinnon
and
then.
Lastly,
there
are
a
bunch
of
debugging
improvements
that
we
have
been
working
on
like
improving
the
the
launch
time
so
that,
when
you're
doing
blazer,
webassembly
debugging
is
what
this
one's
about
the
the
attach
time
and
the
launch
of
that
experience
is
much
faster,
we're
looking
at
adding
support
for
a
break
on
exceptions.
B
We
are
also
adding
out
of
process
support
for
the
debug
proxy.
Like
today,
the
debug
proxy
typically
either
runs
in
the
blazer
dev
server,
or
it
runs
in
your
your
app
like
in
your
asp.net
core
application
as
like
a
a
piece
of
middleware
we're
looking
at
taking
that
out
of
process
so
that
we
can
support
debugging
into
remote
environments
like
code
spaces,
docker
or
wsl
type
type
environment.
So
that's
something
we're
we're
laying
the
groundwork
for
for
in
dot
net
5
as
well.
B
Lastly,
I
got
to
give
a
shout
out
to
vs
for
mac
in
8.8.
They
are
also
adding
support
for
blazer
webassembly
debugging
that
should
be
coming
in
their
preview
2
release.
I
think
is
the
preview
that
that
the
number
correct
number
that
should
be
out
by
the
end
of
this
month
as
well.
So,
if
you're,
a
mac
user
you're
doing
blazer
webassembly
development
you'll
be
able
to
use
vs4
mac
to
debug
your
code.
B
B
Just
not
the
f5
debugging
yeah
like
breakpoints
and
stepping
through
that's
that's
something
that
they
have
been
working
on
and
we'll
have
available
in
preview
form
shortly
very
cool
wow.
That
is
a
lot
of
stuff.
That's
what
we
had
for
you
today,
wow!
Thank
you,
everyone
who
stuck
it
out
with
us.
I
know
that
went
a
little
longer
than
normal,
but
I
hope
you're
as
excited
as
we
are
of
all
the
about
all
the
goodies
that
are
coming
in.net
five.
We
did
not
lose
anybody.
A
Wow,
okay,
so
for
people
that
want
to
keep
up,
there's,
there's
the
asp.net
twitter
handle.
There's
all
your
handles.
There's
they
can
watch
for
announcements,
the
blog
posts
anything
else.
You
want
to
call
out
important
places
just
to
keep
involved
and
then.
B
Also,
this
sprints
yeah
look
to
do
the
monthly
sprints
we'd
love
to
get
more
help
to
add
even
more
goodies
to
the
to
the
release.
There
is
still
still
time
just
to
set
people's
expectations
that
those
monthly
sprints
as
we
get
to
certain
parts
of
the
release
cycle.
Obviously
we
have
to
kind
of
lock
things
down
like
we
can't
be
adding
big
riskier
features
later
in
the
release.
So
some
some
of
those
sprints
may
be
more
bug
fixes
and
then,
as
we
look
into
dot
net
six,
we
can
start.
B
You
know
looking
at
adding
chunkier
things
again,
but
yeah
look
for
the
blazer
sprints
follow
the
ace
minute
blog
and
the.net
blog.
That's
where
all
the
release
announcements
go
out
and,
of
course,
join
us
on
github.
Keep
filing
issues,
keep
letting
us
know
the
things
that
we
should
be
prioritizing.
We
do
our
best
to
to
do
what
the
is
most
useful
to
the
blazer
community
wow.
A
B
Thank
you
I
mean
to
be.
This
is
just
a
sampling
of
the
team.
We
also,
we
have
other
folks
on
the
blazer
team
and
a
whole
set
of
runtime
folks
that
supports
the
you
know
the
blazer
webassembly
runtime
in
the
core
framework
libraries,
but
it's
it's
great.
What
is
coming
together,
for.net5
very
cool.