►
From YouTube: Project Interview: DotVVM with Tomáš Herceg
Description
Project Interview: DotVVM with Tomáš Herceg
B
B
A
B
B
Sure
I
have
because
I
think
that
most
of
the
people
are
familiar
with
the
blazing
Pete's.
Our
demo
of
blazer
trend.
I
have
rewrite
Riverton
the
demo
in
dot
V
VM.
So
you
can
download
both
versions
and
compare
the
differences
between
Blaser,
syntax
and
dot
vdf
syntax,
which
is
using
model
view.
Viewmodel
approach,
Oh,
terrific.
B
B
There
are
three
projects
in
the
solution:
I
have
kept
the
blazing
pizza
server
and
shared
projects
exactly
the
same
as
in
Blazers,
so
there
are
no
changes
in
these
projects,
so
this
is
just
a
bunch
of
shared
classes
between
client
in
server-side,
and
this
is
basically
arrest
API,
which
provides
all
the
data
required
for
the
application.
Technically
in
don't
William,
you
don't
need.
You
have
two
separate
projects
because
dot
vvm
runs
on
the
server,
so
it
can
directly
access
the
database
but
to
keep
the
sample
similar
I
have
kept
this
server-side
part.
B
So
you
need
to
start
this
REST
API,
which
is
a
data
source
for
dot,
V,
VM
and
also
to
start
this
application,
and
it
should
look
exactly
as
the
Blazer
version
of
the
blazing
pizza.
So
I
can
select.
My
pizza
I
can
choose
some
size,
add
some
add-ons
and
it
stacks
here
on
the
sidebar.
So
I
have
the
total
and
things
like
that
and
if
I
look
in
the
source
code,
you
can
see
that
this
client
side
project
this
dot.
Vm
application
is
running
with
doc,
net
core
3.0
and
we
are
using
dot.
B
V
VMs
peanut
core
2.4,
it's
in
preview,
but
it's
on
the
public
nougat,
so
everybody
can
use
it.
And
if
you
look
in
the
page,
then
dot
V
VM,
you
can
see
that
dot.
Vm
is
using
a
model
view
viewmodel
approach,
so
we
have
some
controls
in
the
patch
like
repeater
and
and
if
you
remember
how
things
work
in
racer
or
blazer,
you
would
use
for
each
loop
in
the
end
view
syntax,
but
in
dot
VM.
B
There
are
no
code
blocks
in
this
view,
so
we
have
repeater
for
the
collection,
so
it's
an
equivalent
of
the
for
each
loop
and
we
have
the
visible
property
which
can
show
or
hide
some
elements
on
the
page
and
it's
using
data
binding
expressions
which
can
evaluate
anything.
In
my
view,
model
and
the
view
ro
is
just
a
c-sharp
class
and
the
Trivium
takes
care
of
translating
this
class
into
JavaScript
and
to
delivering
it
into
into
the
page.
B
So
if
you
look
in
the
get
beats
a
view
model,
which
is
the
view
model
for
my
page,
I
have
some
dependencies
from
the
constructor,
and
here
is
the
state
of
the
page.
So
I
have
a
list
of
Pizza
specialist
which
are
these
I
have
a
current
order,
so
everything
I
put
in
the
order
it's
stored
in
this
object,
and
there
is
a
dialog
when
I
select
a
special.
So
the
this
model
dialog
has
its
own
view
model,
and
it's
a
very
nice
thing
because
in
the
TVM
you
can
nest
view
models
inside
each
other.
B
So
these
components
can
be
standalone.
You
can
use
them
on
multiple
pages,
as
you
know,
as
you
want,
and
they
can
communicate
using,
for
example,
classic
donut
events.
So
when
I
configure
the
pizza
in
my
dialogue,
it
will
fire
this
event
and
I
can
attach
to
it
and
the
view
model
can
contain.
Also,
the
methods
so
I
have,
for
example,
a
method
to
remove
pizza,
which
gets
called
when,
when
I
remove
this
pizza,
the
Trivium
we'll
just
call
this
function.
In
my
view,
model
so
I
have
stayed
and
illogic
together.
B
In
my
view,
model-
and
there
are
some
other
useful
things.
For
example,
the
TVM
has
a
kind
of
nice
feature
for
working
with
us
class
attributes,
because,
typically
you
need
to
combine
several
CSS
classes
on
an
element
based
on
some
conditions,
and
we
wanted
to
avoid
the
syntax
that
here
inside
the
attribute
I
would
write
some
data
binding
because
it's
not
nice
and
it's
difficult
to
understand.
What's
going
on
there,
so
I'm
not
composing.
B
The
classes
like
this,
but
I
can
put
some
class,
which
is
on
the
element
every
time,
all
the
time
and
also
I
can
add
the
class
which
is
named
hidden
based
on
a
boolean
condition.
So
whenever
this
expression
changes,
this
class
is
added
or
removed
from
the
element.
So
these
are
some
view
model
model
view
viewmodel
flavors
to
the
HTML
syntax,
and
we
have
a
lot
of
controls
like
repeater
or
grid
view,
and
things
like
that.