►
Description
Click Here to Subscribe: http://xaf.life/35
Websites:
https://xafmarin.com/
https://xari.io
https://www.xafers.training/
http://xafersweekly.com/
Facebook Group
http://xaf.life/4g
Free XAF Support Hour
https://calendly.com/xari/free-xaf-support-hour
A
All
right,
as
always
thanks
everyone
for
joining
in
to
our
saffron.net
cross
platform.
Visa
group.
We
do
this
once
a
month
where
we,
the
community,
gets
together,
and
we
talk
about
everything
that
we
can
do
in
the
net
ecosystem
to
develop.
Cross-Platform
apps
we
have
to
talk
about.
You
know.
We
have
talked
about
Maui.
We
have
talked
about
avalonia.
We
have
talked
about
Blazer
in
the
past,
about
Maui
laser,
but
I'm
really
really
excited
about
today's
topic.
Today
we
have
changed.
A
You
guys
basically
know
him
as
a
found
founder
of
London
nuke,
it's
an
honor
to
have
you
here.
I
have
always
look
up
to
him.
I
remember
when
we
started
a
using
place,
or
as
soon
as
Blazer
started,
we
started
using
PlayStation
and
it
was
like
you
will
come
out
coming
up
with
something
and
it
was
like
how
he's
already
know
how
we
already
see
everything
that
is
still
in
preview
that
he's
already
using
in
that
time.
A
It
was
amazing
to
see
the
the
obtain
framework
starting
to
develop,
so
he
is
going
to
give
us
a
topic
to
talk
about
building
Dynamic
application
with
laser
I
I
can't
wait.
We
have
been
waiting
for
this
for
like
two
months
and
we
met
at
the
MVP
Summit,
so
I'm
really
excited
I'm,
really
thankful
to
have
you
here.
I
know
that
a
lot
of
of
our
community
members,
we
love
and
everyone
who
is
not
here-
will
definitely
be
watching
on
YouTube
later
on.
B
Okay,
yeah
so
I'm,
Sean,
Walker,
I,
guess
my
claim
to
fame
is
that
I
was
the
original
Creator
of.net
Luke,
which
was
a
popular
application
framework
and
CMS.
That
was
created
way
back
in
late,
2002,
yeah,
so
DNM
that
was
rebranded
to
DNM
I
think
in
around
20,
maybe
2013
2014.
B
Although
the
community
had
always
used
that
DNM
name
to
describe
it,
it's
still
around
and
going,
but
I
spent.
Basically
the
years
from
like
2003
through
2014
leading
the
DNM
project,
I
actually
created
a
company
around
it
called
DNN
Corp.
We
raised
three
rounds
of
venture
capital
funding,
so
it
was
an
interesting
experience
to
go.
You
know
through
an
open
source
project
and
then
go
through
a
venture-backed
company
as
well.
B
I
left
in
2014
I
ended
up
going
to
work
for
one
of
our
Consulting
Partners,
who
was
doing
DNN
implementations,
and
so
then
I
spent
like
2014
through
2018.
I'm,
just
working
as
a
consultant
actually
not
doing
a
lot
of
DNN
implementations,
but
doing
a
lot
of
just
basic
like
dot
net
Enterprise
applications.
B
The
company
that
I
had
went
to
work
for
got
acquired
by
another
larger
company
and
then
that
company
got
acquired
by
cognizant,
which
was
obviously
a
huge
company
and
I
spent
quite
a
bit
of
time.
At
cognizant
last
year,
I
was
operating
as
the
CTO
of
Professional
Services,
meaning
that
I
was
focused
on
the
Professional
Services
accounting
firms
like
Deloitte,
PWC,
ey
and
KPMG,
as
well
as
some
of
the
mid-market
firms.
B
I
left
that
job
in
March
of
this
year
with
the
idea
that
I
would
create
my
own
consulting
company
and
also
get
more
serious
about
commercializing
octane,
so
yeah,
that's.
What
we're
going
to
talk
about
today
is
is
the
new
framework
that
I'm
working
on,
which
is
open,
source
called
octane.
A
B
All
right
all
right:
we're
going
to
start
with
some
slides
just
to
set
some
context
here,
because
I
I'm
sure
that
not
everyone
has
heard
of
octane
before.
B
All
right,
but
I've,
already
kind
of
done.
The
the
introduction.
The
only
thing
I
guess
I'll
mention
is
that
I
wasn't
MVP
for
many
years
and
then
I
actually
was
not
an
MVP
for
I
think
a
period
of
five
years,
and
so
two
years
ago,
I
was
able
to
become
an
MVP
once
again.
I
think
was
largely
based
on
my
work
with
octane
and
then
at
the
MVP
Summit.
B
Just
this
last
spring
is
where
I
ran
into
Jose,
and
so
that
was
great
to
connect
with
him
and
then
that's
how
we
came
up
with
the
idea
that
maybe
I
could
present
at
the
arizona.net
user
group.
B
So
that's
how
I
ended
up
here
today,
so
we're
going
to
talk
a
bit
about
octane
the
fact
that
it's
a
modular
application
framework
and
CMS
for
blazeron.net,
Maui
and
I
know
that
this
user
group
is
is
mostly
focused
on
cross-platform
and
so
I'm,
going
to
make
sure
I
focus
quite
a
bit
of
the
discussion
about
the
cross-platform
nature
of
octane.
B
Get
rid
of
this:
let's
move
it
up:
okay,
so
application
Frameworks
I,
think
most
of
us
are
fairly
familiar
with
what
application
Frameworks
are,
but
really
I
mean
they're
designed
to
accelerate
the
development
of
web
apps
and
web
services
and
apis,
and
they
do
that
by
providing
a
standard
way
of
building
and
deploying
applications.
B
In
software
development,
modular
applications
are
different
than
standard
applications
in
the
sense
that
they're
made
up
of
a
bunch
of
individual
components
that
are
then
assembled
at
runtime
to
form
a
fully
featured
custom
application
so
and
when
we're
talking
about
Blazer
and
I'm
sure
that
most
of
you
are
familiar
with
Blazer
and
and
the
component
model,
and
because
it's
been
around
now
for
I
guess,
five
or
six
years,
the
standard
way
that
you
build
Blazer
applications,
they
it
does
use
components,
but
typically
all
of
your
components
are
declared
within
the
same
application
and
the
way
that
octane
works
as
a
framework.
B
It
is
much
more
modular
in
the
sense
that
every
feature
that
you're
developing
is
actually
a
separate
project,
a
separate
assembly,
and
it
is
all
combined
together
dynamically
to
compose
your
application
at
runtime.
This,
this
notion
of
composability
is
something
that
has
become
quite
popular
again
in
the
software
industry.
I
think
it's
gone
through
Cycles,
where
it's
been
quite
popular
in
the
past
as
well,
but
composability
is
an
area
that
seems
to
be
getting
a
lot
of
focus
lately,
and
so
it's
kind
of
I
guess
a
little
bit
lucky.
B
That
octane
is
able
to
provide
this
functionality.
B
The
octane
framework
itself,
some
of
the
goals
behind
it
are
that
it
was
designed
so
that
it
can
accelerate
the
development
of
modern
applications
much
in
the
same
way
that
net
nuke
was
developed
to
allow
developers
to
kind
of
accelerate
their
efforts
in
building
web
forms
based
applications.
Octane
does
the
same
thing,
using
more
modern
architectural
principles
and,
of
course,
using
Blazer
and
Maui
for
the
front
end.
B
So
it
provides
a
set
of
application,
building
blocks
and
services
to
do
some
of
the
most
common
things
that
you
would
need
to
do
in
every
application
and
things
that
you
shouldn't
be
building
yourself
and
again.
These
are
also
things
that
Microsoft
doesn't
provide
out
of
the
box
as
part
of
its
tool
set.
These
would
be
things
like
multi-tenancy,
for
example,
is
a
fairly
major
feature
that
a
lot
of
applications
need.
B
Obviously
octane
is
open
source.
It's
using
an
MIT
license
very
same
license
that
dot
net
nuke
used
as
well.
It's
probably
the
most
popular
open
source
license
within
the
Microsoft
ecosystem
and
it
is
a.net
foundation.
B
Member
project
I
actually
made
the
application
not
long
after
I
created
the
project
back
in
I,
think
2018
and
initially
it
wasn't
sort
of
large
enough
or
established
enough
to
be
approved
by
the
board
of
directors
at
the
foundation,
and
so
it
took
a
couple
of
years
before
they
approved
it,
and
but
now
it
is
a
full
member.net
validation
project
and
it
really
is
a
Pioneer
in
some
of
the
capabilities
of
dotnet
core
blazeron.net
Maui
in
particular,
Blazer.
B
B
Conceptually
it's
developed
in
a
client
server
manner
and
the
reason
why
it
uses
this
particular
type
of
an
architecture
is
because
it
wants
to
cater
to
all
of
the
different
Blazer
hosting
models
that
are
available.
So
of
course,
in
Blazer
you
have,
you
know,
Blazer
server,
you
have
Blazer
web
assembly
and
of
course,
you
have
Blazer
hybrid
now
as
well.
The
only
architecture
that
works
across
all
of
the
different
hosting
models
is
the
client
server
approach.
B
B
So,
on
the
server
side,
of
course,
you've
got.net
core
you've
got
EF
core
to
do
your
data
access
octane
has
its
own
repository
layer,
which
of
course,
leverages
EF
core.
It
supports
multiple
databases,
so
it
supports
SQL,
Server,
sqlite,
MySQL
and
postgres
SQL.
B
It
did
not
support
all
of
these
databases
from
the
very
beginning.
Initially,
it
was
only
supporting
SQL
Server.
But
of
course,
if
you
have
an
application-
and
you
want
it
to
be
truly
cross-platform,
then
you
need
to
support
dates.
Databases
which
run
on
those
platforms
as
well.
So
there
was
a
fairly
major
effort
in
I,
guess:
I
think
it
was
octane
version
2.1
to
enhance
it
so
that
it
could
support
multiple
databases.
Multiple
database
engines,
that
is
on
the
server
side
octane
also
has
a
rest
based
API.
Some
people
would
call
this.
B
You
know
like
a
a
headless
CMS,
meaning
like
it's
got
a
set
of
apis
that
you
can
take
advantage
of
from
the
client
side
and
those
apis
allow
you
to
interact
with
the
back
end
server
aspects
of
the
application.
Even
if
it's
you're
not
building
a
UI
right,
you
could
use.
B
You
know
an
HTTP
based
approach
to
interact
with
the
back
end
of
the
framework.
Octane
also
supports
the
notion
of
scheduled
jobs.
It
uses
the.net
core
I,
hosted
service
capability
so
that
you
can
build
scheduled
jobs
that
basically
can
run
independently
from
the
application,
but
still
within
the
the
same
app
service
and
can
run
on
whatever
schedule
you
desire.
B
B
And
then
you
can
have
multiple
databases,
so
the
the
whole
notion
of
a
multi-tenant
system
is,
you
can
serve
multiple
clients
from
the
same
application
and
whereas
in
older
Frameworks
like
net
nuke,
you
had
a
multi-tenant
capability,
but
all
of
the
data
for
all
of
the
clients
lived
in
the
same
database.
Octane
has
the
ability
to
actually
have
isolated
tenants
from
a
data
perspective,
so
you
can.
You
can
have
distinct
client
information.
That's
stored
in
separate
databases
on
the
server
side
on
the
client
side.
B
You've
got
Blazer
and
rather
than
taking
an
approach
where
the
octane
server
catered
to
multiple
client
Technologies,
which
would
actually
be
possible
because,
of
course,
there
is
this
headless
API
that
is
available,
octane
actually
kind
of
went
all
in
on
Blazer
as
being
the
client
technology
for
building
user
interfaces,
and
so
of
course,
it
uses
play
as
a
server
and
it
can
also
support
Blazer
webassembly
and
it
supports
Blazer,
hybrid
I.
Think
the
important
thing
to
note
here
is
that
there's
a
lot
of
talk
right
now:
about.net,
8,
right
and
m.net.
B
There's
talk
about
the
fact
that
you
don't
have
to
make
a
decision
about.
You
know
which
Blazer
hosting
model
you
can
use.
You
want
to
use
in
your
application,
because
that
was
always
a
bit
of
a
a
challenge
when
you
were
evaluating
Blazer.
It's
like
you
know
what
hosting
model
makes
the
most
sense
for
my
business
problem
that
I'm
trying
to
solve
well
octane
right
from
the
very
beginning,
almost
found
a
way
that
it
could
support
all
of
the
different
hosting
models
within
the
same
application.
B
So
I
can
have
a
installation
of
octane
running
and
I
can
say
that
one
of
my
tenants
is
running
Blazer
server
and
another
10
inches
running
Blazer
web
assembly
and
another
tenant
is
running
Blazer
hybrid,
that
all
works
seamlessly
today
and
you
don't
need.net
8,
for
that
also
has
a
service
layer
and
basically,
that
service
layer
allows
you
as
a
developer,
to
build
razor
components
that
then
can
use
the
services
that
are
provided
by
octane
for
interacting
with
the
API
and
the
back
end.
Returning.
B
It
has
a
composable
UI
framework
that
is
included
as
part
of
octane,
because
the
idea
in
octane
is
the
the
front.
End
of
your
application
is
completely
Dynamic,
and
what
this
means
is
that
you
can
have
again
multiple
tenants,
so
multiple
clients
that
you're
serving
from
the
same
installation.
Each
of
those
tenants
is
known
as
a
site.
So
you
can
have
you
know,
site
one
that
responds
on
one
URL
and
site,
two
that
responds
on
a
different
URL
and
those
are
treated
as
completely
separate,
logical
containers
within
octane.
B
You
can
have
an
unlimited
number
of
virtual
pages,
and
this
is
again
a
very
different
concept
than
what
you
would
use
when
you're
building
a
standard,
Blazer
application,
because
when
you're
using
when
you're
building
a
standard,
Blazer
application,
you
build
razor
components,
and
then
you
use
the
at
page
directive
to
it
basically
provide
a
hint
to
the
Blazer
runtime
that
when
it
starts
up
it
finds
all
those
attributes
so
that
it
basically
builds
a
route
table
for
you.
Octane
doesn't
use
that
approach.
It
doesn't
have
the
idea
that
a
component
equals
a
page
in
octane.
B
A
page
is
a
virtual
concept
and
you
can
create
as
many
of
them
as
you
wanted.
So
basically,
just
configuration,
and
so
a
site
can
have
as
many
pages
as
you
want,
and
then
each
page
can
have
as
many
different
components
as
you
want
on
those
pages,
but
they
are
not
physically
located
like
in
a
file
somewhere
in
a
component
file
and
embedded
right,
statically
we're
talking
very
Dynamic
here.
So
everything
is
assembled
dynamically
at
runtime
yeah.
B
As
far
as
razor
components
go,
each
module
would
be
its
own
separate
project,
which
has
its
own
set
of
Razor
components
would
have
its
own
set
of
services
that
you
would
build
and
talking
to
its
own
set
of
apis.
In
the
back
end,
and
using
this
approach,
you
can
build
modules
that
actually
similar
to
the
way
that
octane
can
run
on
all
of
the
different
hosting
models.
B
B
Often
multi-tenancy
is
used
to
save
cost
it.
It
sometimes
can
make
the
configuration
of
your
environment
much
simpler
as
well,
because
you
don't
have
to
spin
up
a
bunch
of
separate
environments
for
each
client
and
so
definitely
for
economies
of
of
scale
multi-tenancy
as
being
a
very
popular
concept
over
time.
It's
very
complicated
to
build
multi-tenant
applications,
however,
and
so
that's
why
you
would
want
to
use
a
framework
or
a
library
like
octane,
to
do
that.
B
Some
of
the
different
modes,
of
course
that
are
supported
by
multi-tenancy,
is
you
can
have
a
fully
dedicated
mode
on
the
left
hand
side
here,
where
you
have.
You
know
a
fully
dedicated
instance
of
octane,
with
its
own
database
only
only
servicing
one
client
in
the
middle.
You
can
have
a
shared
model
as
well,
where
you
have
one
instance
of
octane
installed
and
you
can
have
distinct
databases
or
separate
databases
for
each
client,
but
the
framework
installation
is
shared
between
them.
B
So
in
this
particular
case,
all
the
clients
that
are
on
that
instance
right
would
be
sharing
the
same
memory
from
a
client
perspective,
but
the
data
itself
would
be
separated
and
then
shared
would
be
a
model
where
of
course,
you're
sharing
the
framework
installation
between
multiple
clients
and
you're
sharing
the
same
database
as
well.
So,
logically,
your
data
would
be
stored
with
some
type
of
an
identifier
in
the
case
of
octane.
B
Interestingly,
it's
not
when
it
comes
to
multiple
database
support.
It's
not
just
about
supporting
different
operating
systems
like,
of
course,
if
you're
using
like
a
Windows
based
server,
you
might
use
SQL
server
or
if
you
used
Linux.
Maybe
you
would
use
some
of
the
other
variations
here,
but
it's
also
about
supporting
different
environments,
because
often
maybe
your
production
environment
might
be
using
Azure.
It
might
be
using
SQL
server
or
Azure
SQL,
but
in
your
local
development,
you
might
want
to
use
something.
That's
much
more
lightweight
and
and
less
costly,
like
sqlite.
B
B
I
think
it's
a
little
interesting
in
the
sense
that
when
octane
was
created
and
actually
when
Blazer
server
was
announced
and
even
Blazer
web
assembly,
there
were
a
lot
of
questions,
I
think
from
the
community
on
how
security
should
be
implemented.
Using
this
new
technology
and
the
initial
attempts
from
Microsoft
seem,
you
know
focused
on
the
technologies
that
they
had
available
already.
So
when
it
came
to
spinning
up
a
Blazer
application
and
adding
authentication
and
authorization
to
it,
Microsoft
would
say
well,
you
know,
use
the.net
core
identity
Services.
B
B
Also,
there
seemed
to
be
a
heavy
dependence
on
jot
tokens
for
everything,
regardless
of
whether
you
really
needed
them
or
not.
It's
interesting
because
in
the
meantime,
the
industry
has
changed
its
guidance.
B
So
if
you
have
a
server
and
a
client
that
are
running
on
the
same
domain,
essentially
you
can
use
same-site
cookies,
and
that
is
the
back
end
for
front-end
security
model,
which
relies
on
cookies,
which
you
know
at
some
point,
maybe
five
or
six
years
ago,
it's
almost
like
the
industry
had
declared
that
cookies
were
dead.
You
shouldn't
use
cookies
anymore,
and
now
it's
back
to
saying.
Yes,
you
should
use
cookies.
B
In
fact,
in.net
8
Microsoft
is
going
to
be
introducing
a
back-end
for
front-end
security
model
for
Blazer,
so
it
was
kind
of
nice
from
an
octane
perspective
that
we
made
this
decision
to
go
in
this
direction
a
couple
of
years
ago
and
Microsoft
Is,
Now
sort
of
catching
up
and
we're
not
sort
of
diverging
from
the
best
practices
right.
In
fact,
Microsoft
is
now
catching
up
to
the
best
practices
which
were
already
implemented
in
Frameworks,
light,
Octane
and
other
types
of
systems
that
are
out
there
already.
B
So
when
it
comes
to
your
octane
web
client,
which
could
be
you
know,
running
laser
server
or
Blazer
web
assembly
and
also
for
the
octane
Maui
client,
because
it's
essentially
just
using
a
an
embedded
web
browser,
it
can
rely
on
this
back
end
for
front-end
security
model.
Just
fine.
B
If
you
need
to
interact
with
other
types
of
external
client
applications
like
perhaps
you're,
building
a
more
traditional
Windows
client,
then
you
might
want
to
consider
still
using
something
like
a
jot
token,
because
that
still
is
a
better
methodology
for
that
kind
of
a
security
requirement
and
all
claim
does
have
the
ability
to
generate
jot
tokens
as
well
to
accommodate
that.
B
As
far
as
the
back
end
goes
again,
it's
using
the
BFF
model
with
cookies
to
talk
to
backend
apis,
but
often
you
don't
want
to
only
interact
with
a
local
identity
store
for
usernames
and
passwords.
B
More
often,
these
days,
you
want
to
use
a
third-party
identity
provider
and
octane
has
the
ability
on
a
pertinent
basis
to
be
able
to
specify
which
identity
provider
you
would
like
to
use.
So
maybe,
if
you
want
to
use,
you
know,
azure
active
directory
for
one
tenant
within
your
installation
and
maybe
use
Google
for
another
or
maybe
use
OCTA
for
another.
You
can
completely
do
that
and
it's
just
a
matter
of
setting
up
the
configuration
through
the
user
interface
I
guess.
The
other
thing
to
note
is
one
of
the.
B
So
there
is
some
good
stuff:
that's
coming
in.net,
eight,
which
I
think
octane
will
maybe
take
advantage
of
when
it
comes
to
the
at
least
the
generation
of
job
tokens
and
the
rest,
in
particular
the
refresh
tokens
but
anyways.
This
is
sort
of
the
the
overall
security
model
that
octane
uses
today.
B
The
other
scenario
which
I
guess
I
didn't
mention
is,
if
you
are
using
a
microservice
based
architecture,
and
you
have
remote
apis
that
you
need
to
interact
with
then
jod
is
still
obviously
the
best
method
for
that,
because,
typically
those
remote
apis
would
be
on
different
domains
and
couldn't
share
cookies,
and
so,
if
you're
using
you
can
use
jot
tokens
for
that
as
well
and
those
job
tokens
Can,
obviously
still
observe
the
the
security
roles
that
have
been
defined
in
octane
as
well
and
then
multi-platform
UI
has
always
been
a
goal
for
software
developers.
B
In
terms
of
you
know,
you
want
to
build
applications
that
can
cater
to
the
most
devices
possible.
The
problem
was
in
the
past.
You
would
typically
have
to
build
multiple
applications
to
cater
like
what
like
a
different
application
for
each
device
that
has
like
largely
been
solved.
I
would
say,
with
the
emergence
of
Maui
and
Blazer
hybrid
in
particular,
and
so
I'll
be
able
to
like
show
you
how
that
works.
But
in
a
moment
when
they
do
the
demo.
But
the
idea
there
is
that
you
build
razor
components.
B
From
a
composable
UI
perspective,
the
idea
with
Arcane
is,
and
I
was
trying
to
explain
this
earlier-
is
that
everything
is
completely
Dynamic.
So
you
know
you're
not.
Building
Pages
as
razor
components
like
you
would
in
traditional
Blazer
octane
does
have
the
notion
of
themes
which
is
sort
of
akin
to
you
know
a
master
page
or
a
layout
in
Blazer.
B
B
B
You
can
Define
through
configuration
which
modules
should
be
injected,
because
you
could
have
many
different
types
of
modules
within
your
installation
and
then
there's
a
notion
of
containers
as
well,
which
provides
some
of
the
sort
of
chrome
around
the
module.
If
you
want
to
maybe
change
the
look
and
feel
or
add
additional
functionality
and
I'll
explain,
this
is
kind
of
a
hard
to
conceptualize
in
a
slide,
but
I'll
show
it
to
you
in
a
demonstration.
B
Soon,
modules
are
developed
in
exactly
the
same
way
that
the
octane
framework
is
developed
so
and
it
uses
if
you've
built
a
Blazer
web
assembly
project
like
using
the
standard
template
for
Microsoft.
Then
you'll
be
familiar
with
the
notion
that
you
have
a
client
project.
You
have
a
server
project
and
you
have
a
shared
project.
The
client
project
is
where
your
razor
components
go
and
your
services,
which
use
HTTP
client
to
call
your
server.
Your
shared
project
is
where
you
put
your
models
and
the
models
are
obviously
shared
between
the
client
and
the
server.
B
And
then
you
have
a
server
project,
which
is
where
your
controllers
would
go,
where
your
repositories
for
interacting
with
data
would
go,
and
so
the
result
of
this
module
architecture
is
that
you
cut
you
basically
compile
it,
and
you
have
three
dlls
right.
You
have
a
client
dll
a
share
dll
and
a
server
dll.
B
These
dlls
are
deployed
to
the
octane
bin
folder
and
at
runtime
when
octane
starts
up,
it
basically
is
able
to
identify
the
modules
that
are
part
like
that
should
be
loaded
and
it
loads
them
dynamically
for
you
and
then,
if,
depending
on
the
hosting
model,
that
you're
running,
if
you're
running
on
server,
then
of
course
they're
already,
if
they're
loaded
into
the
server,
then
that's
all
you
need
to
do.
B
B
So
octane's
been
around
for
a
while,
so
like
I
said,
the
initial
proof
of
concept
was
developed
way
back
in
late
2018,
and
this
was
when
Blazer
was
still
in
its
preview
stages
like
it
hadn't
even
reached
its
1.0
release.
Yet
the
official
announcement
of
of
octane
being
an
official
open
source
project
and
being
available
on
GitHub,
was
in
May
of
2019.
B
B
Prior
to
that
it
was,
you
know,
in
a
long
beta
period
as
prepared
to
have
an
actual
official
release.
If
you
notice
in
this
list
of
road
map
items,
the
major
releases
typically
coincided
with
the
next
major
release.
Of.Net,
so
octane
2
was
with
net
five
octane
three.
It
was
a
thought
that
six
octane,
four
as
if.net,
seven
and
in
between,
of
course,
there's
been
a
lot
of
other
Point
releases
that
were
done
for
various
reasons.
B
I
think
an
important
one
was
multi-database
support
in
Arcane,
2.1
and,
of
course,
the.net
Maui
support,
which
was
added
in
octane
3.2.
The
most
recent
release
of
octane
is
version
4.0.2,
and
that
was
released
earlier
this
week.
B
Typically,
we
have
a
release
every
month
and
the
the
current
octane
framework
is
targeted
at
dot
net
7..
We
are
expecting
to
have
a
release
available
for
octane5
related
to.net
eight
later
this
year,
so
I
think
I've
already
covered
some
of
the
overarching
goals.
Right
is
that
it
needs
to
seamlessly
support
all
of
the
Blazer
hosting
models
and
the
idea
that
the
extensions
that
you
develop
for
octane
are
developed
and
deployed
independently
from
the
framework
itself.
B
This
means
that
essentially
it's
it's
different
than
some
of
the
other
Blazer
approaches
that
are
available,
like
application
templates,
there's
a
lot
of
Blazer
application
templates
that
are
available
in
the
ecosystem
that
you
can
download,
which
provides
you
with
a
starting
point,
and
then
you
can
start
customizing
the
code
to
meet
your
own
needs.
The
problem
with
that
approach
is,
of
course,
once
you
start
doing
customization.
It
becomes
very
difficult
for
you
to
integrate
newer
versions
of
that
template.
B
Octane
is
a
framework.
Much
like
the
blaze.
Blazer
is
a
framework
or
dot
net.
Core
is
a
framework
right.
It's
meant
to
be
used
as
an
independent
framework,
almost
like
a
black
box
right
where,
even
though
you
can
access
the
source
code-
and
you
can
see
what
it's
doing,
you
can
even
debug
into
the
source
code.
It's
not
recommended
to
modify
that
source
code,
because
if
you
do
that,
then
you're
on
your
own
fork
and
you're
gonna
have
to
deal
with
whatever
maintenance
or
integration
you
have
to.
B
You
know
deal
with
in
the
future
when
the
framework
changes.
So
if
you
keep
the
framework
and
treat
it
like
a
framework
and
build
your
extensions
independently
and
take
advantage
of
the
interfaces
that
are
available
so
that
you
can
interact
with
the
framework,
then
you
can
build
very
complex,
sophisticated
applications
and
move
ahead
as
the
framework
moves
ahead.
So
as
the
framework
is
upgraded
to
a
new
version,
of.net
right.
B
That
makes
your
upgrade
path
a
whole
lot
simpler
than
if
you
have
to
mess
around
with
code
and
do
Integrations
yourself,
one
of
the
things
that's
a
bit
complicated
for
people
to
grasp
when
it
comes
to
Octane
and
it
was
the
same
with
DOT
net
nuke
back
in
the
day
is
you
know
this
dual
personality?
So
octane
is
a
web
application
framework,
meaning
you
can
use
it
to
build
web
applications.
B
You
can
also
use
it
to
build
websites
right.
So
if
you
have
sort
of,
if
you
have
a
need
to
build
just
a
basic
website
that
just
has
content
in
it
and
doesn't
have
a
whole
lot
of
advanced
functionality,
you
can
use
a
system
like
octane
for
that
as
well,
but
primarily
it
is
targeted
at
developers.
B
The
goal
is
to
never
try
to
compete
with,
like
Squarespace
or
Wix
or
Weebly,
or
any
number
of
like
really
powerful
site,
Builder
tools
that
are
available.
If
you're
building
a
simple
website,
then
by
all
means
you
should
use
those
tools
and
do
not
use
octane
if
you're
building
a
more
advanced
website
which
has
content
as
part
of
it
and
probably
has
maybe
the
need
to
register
users
have
people
log
in
have
people
interact
with
different
types
of
more
advanced
modules.
B
B
For
those
of
you
who,
like
this
might
be
going
a
little
bit
too
far
back,
but
for
those
of
you
who
are
familiar
with
net
nuke
and
then
some
people
like
to
think
of
octane
as
being
sort
of
like
DNN
V
Next.
There
are
some
major
differences
between
the
two
but
there's
also
some
similarities.
So
the
similarities
are
that
both
of
these
Systems
Support
multi-tenancy,
they
were
both
modular
in
nature.
They
were
both
composable,
they
were
both
open
source
and
they
both
supported
localization
out
of
the
box
from
a
technology
perspective.
B
B
It
leveraged
the
asp.net
web
forms
model
and
in
fact,
still
to
this
days,
the
fundamental
compositing
model
is
still
based
on
web
forms.
It
was
a
completely
server-side
application
model.
There
was
no
client-side
concept
to
it.
It
was
monolithic
in
nature
and
it
would
only
run
in
a
web.
Browser
and
I
should
also
say
that
from
a
multi-tenancy
perspective,
it
only
supported
shared
tendency.
B
So
if
we
look
at
Octane
now
it
is
cross-platform,
meaning,
of
course
it
runs
on
Windows,
Mac
Linux,
it's
based
on.net
core,
which
of
course
provides
that
cross-platform
capability
supports
multiple
types
of
database
engines
for
at
this
point
in
time,
from
a
client
technology
perspective,
it
uses
Blazer
and
Maui
architecturally.
It's
a
client
server
model
supports
microservices
so
that
you
can
break
your
application
down
into
many
different
services
and
it
runs
on
web
desktop
and
mobile
through
the
capability
that
Blazer
hybrid
provides.
B
All
right,
that's
a
lot
of
talking.
So,
let's
move
on
to
looking
at
Octane
the
application.
So,
first
of
all,
I
guess
I'll
point
out
the
fact
that
if
you
want
to
learn
more
information
about
octane,
there
is
an
actual
octane.org
website.
B
Theallcaine.Org
website
is
in
fact
built
on
octane,
so
it's
essentially
eating
its
own
dog
food.
It
is
mostly
a
static
site.
At
this
point,
it
has
like
a
bunch
of
different
information
related
to
the
framework.
It
also
has
a
Blog
module,
which
has
a
lot
of
you
know
the
different
release,
announcements
and
things,
but
you
know
this.
This
would
be
an
example
of
a
separate
module
which
is
running
within
the
octane
framework.
B
If
you
want
to
learn
more
about
the
code
behind
octane,
it's
on
GitHub
in
the
octane
org
within
the
octane
framework
project,
this
is
where
you
would
be
able
to
download
the
various
releases
and,
of
course
this
is
where
all
of
the
the
code
is
maintained
out
in
the
open,
and
there
is
a
bunch
of
different
information.
That's
provided
here
about
how
to
get
started
with
it.
B
B
So
if
we
go
over
to
visual
studio,
I've
got
the
latest
version,
so
4.0.2
loaded
up,
and
if
we
actually
look
at
on
my
file
system
here,
this
is
the
equivalent
of
what
we're
looking
at
in
visual
studio,
so
which
is,
of
course,
the
equivalent
of
what's
in
GitHub.
B
So
in
the
root
folder
you've
got
a
bunch
of
different
solution
files
here,
I
am
using
the
octane.solution
file,
there's
a
separate
solution
file
for
the
different
database,
abstractions,
there's,
of
course,
the
four
different
database
abstractions,
which
are
part
of
octane
when
you're
doing
standard
development
octane,
you
don't
have
to
concern
yourself
with
those.
So
that's
why
they're
separated
out
into
a
separate
solution.
B
Basically,
Auto
upgrade
itself
at
runtime
when
new
versions
become
available
and
I
can
show
you
that
in
the
UI,
if
you're
interested
in
in
that
capability
and
then,
of
course,
the
octane.maui
project
or
solution
is
where
the.net,
hybrid
implementation,
lives
and
and
I'll
show
you
that
as
well
all
right.
So
if
we
go
back
to
to
visual
studio,
if
we
look
in
the
server
project,
we
have
an
app
settings.json
file
and
at
the
top
of
this
file
we
have
a
default
connection
specified.
B
Essentially,
this
is
like
for
specifying
which
database
connection
string
is
going
to
be
used
for
running
the
application
right
now.
It's
set
to
blank,
which
is
great,
because
I
need
to
do
a
new
installation
of
octane
and
as
long
as
this
default
connection
string
is
blank,
it
will
allow
me
to
pop
up
an
installation
wizard
to
run
it
so
I'm
going
to
go
ahead
and
just
run
it
it's
going
to
detect
that
I
don't
have
a
database
and
it's
going
to
allow
me
to
do
an
installation
and
it
asks
for
some
very
basic
information.
B
So
if
we
look
at
the
databases,
it's
defaulting
to
localdb,
but
you
can
see
that
you
can
choose
from
any
of
the
different
databases
that
are
supported
within
octane
I'm.
Just
going
to
use
local
DB
for
this
I'm
going
to
create
my
initial
user
account,
which
I'm
going
to
need
for
logging
into
the
application.
After
it's
created.
B
Email
address
and
we
have
the
ability
here
to
choose
a
template
by
default.
There's
a
couple
of
templates
which
are
available
for
basically
setting
up
your
initial
site.
There's
a
default
template
in
an
empty
template.
You
can
create
as
many
templates
as
you
like,
and
they
would
be
populated
within
this
list.
B
If
that's
what
you
want
to
do
in
your
own
local
environment
and
once
I've
made
these
selections
here,
I
can
choose
install
now
and
it'll
run
all
of
the
migrations
which
are
necessary
to
provision
the
database
that
I've
chosen
here
as
localdb,
and
it
used
that
template
to
provision
a
set
of
pages
which
are
part
of
this
initial
site.
So
this
is
sort
of
the
default
look
of
the
default
site.
Template
I
can
go
ahead
and
log
in
now
using
that
account
that
I
created.
B
And
initially,
I
should
probably
mention
that
this
particular
site
and
I
can
actually
show
it
to
you
in
a
moment
here,
but
we're
running
on
Blazer
server.
So
that's
that's
just
sort
of
the
default
option.
That's
used
as
you're
just
spinning
up
the
application
to
begin
with.
When
you
do
your
initial
installation,
you
can
change
that
at
whatever
time
you
want.
So
we
have
a
home
page.
We
have
a
private
page.
We
have
a
my
page.
B
You
will
you'll
notice
that
when
we
first
connected
to
the
application,
we
only
had
a
couple
of
menu
options.
The
private
page
required
a
user
to
be
logged
in
with
you
know,
credentials
for
this
site
and
now
that
I'm
logged
in
I
can
actually
see
it
as
private
page.
This
page
is
actually
comprised
of
a
bunch
of
different
regions.
So
if
I
go
click
on
this
pencil,
I
can
see
that
there's
a
default
pane,
which
is
this
main
pane.
B
It's
basically,
this
feature
alone,
which
makes
people
believe
that
you
know
octane
is
a
Content
management
system
which,
from
a
development
perspective,
it
is
a
Content
management
system,
but,
like
I
said,
you
wouldn't
normally
use
this
to
build
just
simple
websites.
You'd
use
this
a
framework
like
octane
to
build
more
sophisticated
websites
that
have
a
lot
of
Rich
functionality
in
them.
B
So
that's
how
a
page
is
laid
out
with
the
different
regions.
I
talked
about
containers
earlier,
so
there's
a
container
that
wraps
this
content.
The
container
provides
capabilities
like
a
title
for
this
particular
module.
It
has
this
action
menu
which
allows
me
to
access
additional
features
related
to
this
module,
so
I
can
go
in,
and
I
can
see
the
settings
for
this
module.
It's
the
HTML
text
module.
It
has
a
title.
It's
using
this
container
I
can
see
which
who's
allowed
to
view
this
particular
module.
B
So
you
can
configure
all
of
the
different
permissions
and
you
can
Define
as
many
roles
as
you
want
dynamically,
and
then
you
can
control
who
has
access,
there's
some
additional
module
settings
that
are
specific
to
this
html
text
module
and
then
there's
even
some
settings
that
are
available
to
The
Container
right,
whether
or
not
I
want
to
display
the
title.
I
can
set
background
colors
text
colors
things
like
that,
so
quite
a
bit
of
Rich
functionality
there,
since
I'm
logged
in
as
a
host
user,
is
basically
an
administrator
of
this
particular
site.
B
If
I
hover
over
this
gear,
icon
I
can
see
that
I
have
access
to
a
control
panel.
The
control
panel
has
the
ability
for
me
to
access
an
admin
dashboard,
which
is
where
a
lot
of
the
administrative
functionality
is
located,
but
it
also
has
features
that
are
specific
to
the
page
that
I'm
on
SO
example.
If
I
want
to
edit
the
page
characteristics
I
can
go
in
and
I
can
see
that
you
know
this
is
my
home
page.
It's
in
the
root
of
my
site.
B
It's
a
net,
it's
in
the
navigation,
meaning
it
should
be
displayed
in
the
menu.
It's
got,
theming
capabilities.
So
it's
using
this
particular
theme.
I
can
set
up
meta
tags
and
other
types
of
content
to
go
in
ahead.
I
can
add
script
tags
to
the
body.
B
B
B
Have
an
html
text,
module
and
I
want
to
add
it
to
the
default.
Pane
I
can
just
choose
whatever
module
from
this
list,
see
add
to
Pane
and
it'll.
Add
it
to
the
content
of
this
page.
Like
I
said
this
is
all
configuration
because
at
runtime
it
looks
at
the
configuration
and
it
assembles
the
page
dynamically.
B
If
I
go
into
my
control
panel
in
my
admin
dashboard,
we
can
see
that
there's
a
lot
of
functionality
that
is
provided
by
default
by
octane,
so
site
settings,
so
octane
is
multi-tenant
so
and
the
concept
of
attendant
is
synonymous
with
a
site.
So
you
can
have
many
different
sites.
If
I
go
into
site
management,
I
can
see,
I
only
have
a
single
site
and
that's
the
site
I
created
by
default.
When
I
did
the
installation.
B
I
can
add
an
additional
site
here
if
I
want
I'll
just
copy
test
and
we'll
give
it
a
unique
URL
saying
that
when
I
go
to
this
subfolder
test
on
on
this
particular
domain,
I'm
going
to
treat
this
as
its
own
independent
site,
I'm
going
to
use,
let's
use
the
now.
Let's
use
the
Blazer
theme
that
everyone's
familiar
with
and
I'll
use
an
empty
site
template
for
this
one
and
in
this
case,
I'm
going
to
have
it
Blazer
webassembly
as
the
hosting
model
and
I'm
going
to
just
put
this
in
the
same
database.
B
B
It
redirect
it
created
a
new
site
at
localhost
44357
test
that
it's
using
the
the
Blazer
theme,
which
is
you
know
the
standard
one
in
the
Microsoft
template.
B
It
only
has
a
single
page
in
it
called
home,
no
content
in
it,
because
it
was
a
blank
template
because
it's
on
the
same
domain,
I'm
still
logged
in,
of
course,
because
it's
using
cookies
and
I
can
go
into
my
admin.
Dashboard
and
I
can
see
in
my
hosting
model
that
I'm
using
Blazer
webassembly.
B
So
this
is
how
you
can,
of
course,
have
different
sites
that
are
part
of
your
installation.
So
now
I
have
two
sites:
I'm
going
to
go
back
to
the
original
site,
so
I'll
browse
to
it
so
Insight
settings
you've
got
the
ability
to
Define
things
like
all
different
types
of
configurations,
so
you've
got
things
that
you
would
expect
in
any
sort
of
website
that
you're
building
right,
meaning
you've
got
like
the
ability
to
generate
a
site
map.
B
B
So
if
your
site
needs
to
send
email,
there's
an
email
notification
service
that
is
part
of
octane,
it
runs
on
a
background
scheduled
job
and
you
can
set
up
your
specific
delivery
information
for
SMTP
for
this
particular
site.
Here
you
have
the
ability
that
a
site
can
actually
operate
as
a
progressive
web
application
as
well.
In
order
to
do
that,
you
have
to
have
certain
icons
that
are
required
for
a
pwa,
and
then
you
can
enable
it.
B
You
can
have
many
different
URLs
that
point
to
the
same
site.
So
example,
if
you
had
like
a
few
different
domain
names,
maybe
some
vanity
URLs
that
you
wanted
to
use.
They
could
all
point
at
the
same
site,
and
this
is
how
they
would
basically
create
the
route
table
so
that
they
get
routed
to
the
right
place.
B
In
page
management,
we
can
see
all
of
the
different
pages
which
were
created
as
part
of
this
site,
so
you've
got
the
pages
that
were
part
of
the
menu
and
then
you've
got
the
pages,
which
are
the
admin
pages
right
site
settings
is
the
page.
We
were
just
on
page
management.
Everything
is
defined
at
a
page
so
that
it
has
the
same
exact
security
model,
so
I
can
actually
go
into
the
site.
Settings
page
and
I
can
see
that
administrators
can
view
and
edit
this
page
and
no
one
else
can
right.
B
User
management,
so
a
lot
of
sites
have
the
need
to
have
a
community
of
users
and,
like
I
said
before,
you
can
set
up
users
locally
with
local,
username
and
password.
If
you
want
using
the
the.net
identity
capability,
or
you
can
also
set
it
up
with
external
login
as
well.
So
if
I
wanted
this
particular
site
to
use,
maybe
an
oidc
provider
I
can
go
into
my
external
login
settings
for
this
site
and
I
can
basically
fill
out
the
information
that
would
be
provided
or
required
for
this
for
an
open,
ID
connect
provider.
B
B
Other
things
you
can
do
is
on
a
site-by-site
basis
within
your
installation.
You
can
say
whether
or
not
that
site
supports
registration
by
Anonymous
users
allows
like
local
logins
requires
two-factor
Authentication.
B
B
B
Profile
management,
so
if
you're
going
to
use
users,
then
most
likely
you're
going
to
have
a
user
profile
that
you
want
users
to
fill
out
and
it's
completely
configurable
as
well.
So
you
can
add
as
many
different
profile
settings
as
you
want
that
are
part
of
a
user
profile,
and
you
can
group
them
together.
You
can
order
them
and
you
can
do
validation
on
them
as
well
in
terms
of
whether
they're
required
or
you
know
whether
they
have
a
regular
expression
for
validation.
B
B
File
management,
so
it
also
has
a
service
so
that
you
can
manage
files
related
to
this
particular
site.
I
can
create
folders
and
it's
got
right
now.
It's
got
the
ability
to
have
both
what
we
call
private
and
public
folders
private
folder
means
that
the
files
are
stored
in
a
location
on
the
web,
server
which
are
unaccessible
and
would
need
to
be
served
through
a
an
API.
Essentially
public
would
be
files
that
are
available
in
the
www
root,
which
are
basically
publicly
accessible.
B
If
you
know
the
URL
so
and
you
can
Define
which
users
are
allowed
to
access
specific
folders
through
the
folder
management
area,
and
you
can
upload
files
and
of
course,
your
modules
have
the
ability
to
use
the
file
manager
as
well.
B
B
Url
mappings
is
helpful
if
you
are
migrating
an
existing
site
to
Octane,
because
your
existing
site
would
have
had
very
specific
URLs
and
you're
going
to
want
to
map
those
URLs
to
specific
areas
within
your
octane
site.
The
cool
thing
here
is
that
if
there's
URLs
that
are
mapped
in
to
your
site
that
are
essentially
broken
right,
they
don't
go
to
the
proper
location.
There
will
be
a
404
error,
page
displayed,
but
it'll
also
log
the
URL
to
let
you
know
that
you
have
a
broken
URL.
B
You
can
find
it
in
the
list
and
then
you
have
the
ability
to
map
it
where
it
would
become
a
mapped
URL.
So
this
is
super
helpful
if
you're
doing
site
migrations
right,
because
you're
going
to
have
a
ton
of
URLs
random
URLs,
often
that
need
to
be
mapped.
So
this
is
essentially
your
your
url
mapping,
slash
rewrite
capability.
B
It
has
octane
also
has
the
ability
to
have
visitor
management.
This
is
something
that
you
can
enable
or
turn
off,
but
if
you
want
to
just
track
visitors
who
are
coming
to
your
site,
it'll
basically
track
just
the
IP
address,
of
course,
and
some
very
basic
browser
information
also
tracks.
You
know
because
it
drops
a
cookie,
so
attracts
the
number
of
times
that
particular
user
or
visitor
has
visited
the
site.
The
visitor
management
feature
is
also
really
helpful
for
anonymous
user
personalization
because
there's
a
whole
API
behind
it.
B
You
can
store
whatever
settings
you
want
related
to
visitors,
butcher
is
stored
in
the
database
and,
of
course,
Associated
to
a
visitor
cookie.
Of
course,
if
the
person
erases
their
cookies,
then
they'll
be
treated
as
a
new
visitor.
However,
it
does
have
the
ability
as
well
to
correlate
visitors
so
if
it
sees
a
visitor
coming
from
the
same
IP
again,
it
can
correlate
that
back
to
a
visitor
that
previously
existed.
B
So
it
just
depends
how
you
would
like
to
use
this,
or
maybe
you
don't
want
to
use
it
at
all,
but
it's
quite
helpful
in
terms
of
giving
you
information
that
perhaps
Google
analytics
wouldn't
be
able
to
give
you
event
log.
So
octane
has
a
very
robust
event.
Log,
meaning
like
every
event
in
the
system
is
logged.
B
So
we
can
see
here
that
we
installed
the
application
so
that
it
was
logged
on
site
migration
was
executed,
which
was
creating
my
initial
site,
so
that
was
logged
I
even
login
events
are
logged,
so
I
can
see
that,
maybe
you
know
login
successful
for
username
host
right,
so
it
keeps
track
of
like
every
log
out
is
also
log.
B
And
then
you
can
also
specify
how
many
days
of
log
information
you
want
to
retain
in
the
system
and
it'll
clean
out
logs
that
are
older
than
that,
for
you
automatically
covered
site
management
already
so
module
management.
This
is
where
it
starts
to
get
interesting,
so
go
into
module
management.
These
are
all
the
different
modules
that
I
have
ins
like
created.
A
lot
of
these
are
custom
modules
that
I'm
working
on
locally.
B
If
I
want
to
create
a
new
module,
there's
a
concept
called
a
module
Creator,
so
I
just
create
and
I
can
provide
some
very
basic
information
related
to
this
module
and
I
can
choose
a
template
and
it
will
scaffold
out
a
complete
set
of
code
for
me,
including
project
files,
solution
files
command
files,
everything
that
is
needed
to
create
a
fully
functional
module,
it'll
create
it
in
a
folder.
That's
beside
the
octane
framework
folder,
you
can
open
it
in
Visual
Studio,
you
can
compile
it
and
then
you
can.
B
The
idea
with
with
octane,
though,
is,
like
other
people,
may
have
created
modules
that
you
might
like
to
use
in
your
site.
So
if
I
want
to
just
install
a
module
that
is
already
existing,
there
is
a
Marketplace
which
exists
for
for
octane
and
so
other
P
other
developers
have
created
modules
like
a
form
Builder
or
an
announcements
module
which
are
available.
These
ones
are
available
as
open
source
modules,
so
they're
free.
You
can
simply
download
them
into
your
installation,
so
fair
number
of
them
here.
B
The
commercial
aspect
is
going
to
be
launched,
probably
within
the
next
week
or
two
meaning
there'll,
be
the
ability
for
developers
to
build
commercial
modules
for
octane,
which
will
show
up
in
this
commercial
View
and
you'll,
be
able
to
actually,
as
a
user
you'll,
be
able
to
purchase
the
module
and
there's
a
you
know
a
whole
lot
of
other
services
which
will
be
provided
around
that
as
well
for
commercial
support,
commercial
licensing.
All
of
that
is
going
to
be
released
shortly.
B
So
I
expect
that
this
is
going
to
take
off
probably
a
lot
more
significantly
once
there's
a
commercial
option,
because
I
know
that
this
was
a
very
critical
aspect
of
dot
net.
B
B
B
Language
management,
so
I
mentioned
localization
much
earlier
in
this
presentation,
but
octane
is
fully
localized,
meaning
there's
you
know,
resource
keys
that
are
defined
for
every
element
within
the
administrative
UI
and
there's
a
number
of
different
language
packs
that
have
been
created.
B
Okay,
so
localization,
is
there
scheduled
jobs
once
I
restart
the
application
there
will
there
would
be
a
list
of
scheduled
jobs
here,
but
it's
very
simple
to
create
scheduled
jobs
in
octane.
Actually,
let
me
let
me
go
ahead
and
close
this
and
then
just
restart
it.
B
And
then
I
can
at
least
show
you
so
scheduled
jobs,
so
by
default,
octane
comes
with
a
notification
job,
so
this
is
the
job
which
runs
every
minute
and
delivers
notifications
via
email,
so
for
all
of
the
different
sites
that
are
part
of
your
installation
that
have
SMTP
settings
defined
it'll
use
the
scheduled
job
to
deliver
them.
So
it
does
it
in
the
background,
asynchronously,
obviously,
there's
nothing.
That's
run
yet.
B
There's
a
project
called
dnf
projects.org,
which
identifies
all
of
the
different.net
foundation
projects
and
every
day
goes
to
GitHub
and
harvests.
Metrics
related
to
number
pull
requests,
number
of
issues,
things
like
that,
and
so
that's
implemented
as
a
scheduled
job
within
octane
that
it
works
like
100,
reliably.
B
Sql
management,
if
you
want
to
run
SQL
queries
against
your
backend
database,
you
can
do
that
as
well
as
long
as
you
are
a
host
user.
So
this
is
helpful
for
troubleshooting
various
things.
B
B
B
You
also
have
the
ability
to
set
some
options
which
would
be
set
in
your
app
settings
file
like
if
you
want
to
have
more
detailed
error
information
or
if
you
want
to
Only
log
errors
and
not
like
information
in
above
there's,
also
a
file
logger
for
things
that
are
that
run
basically
during
startup
that
are
not
associated
to
a
particular
tenant
because
tenant
resolution
happens.
You
know
it
doesn't
happen
immediately.
B
There's
things
that
can
have
that
happen
earlier
than
tenant
resolution
and
those
need
a
place
to
be
logged
as
well,
and
the
last
thing
is
system
update.
So
this
is
what
I
was
referring
to
earlier.
So
if
you
were
running
an
older
version
of
octane,
it
will
check
to
see
if
there's
a
newer
version
available
and
If
there
is,
it
would
give
you
a
button
to
say
upgrade,
but
that
would
do
it
was
download
the
latest
release
to
your
server
for
you
and
it
would
actually
do
an
auto
update.
B
B
So
a
lot
of
capabilities
that
are
part
of
octane.
We
have
this
site
running
right
now,
so
I'm
going
to
switch
over
now
to
Maui
and
so
I've
got
the
octane
Maui
solution
open.
B
A
couple
things
to
point
out
here
with
the
Maui
Solutions,
so
we
have
this
Maui
constants
file.
Maui,
of
course,
is
going
to
run
within
some
kind
of
a
client
application
right
now.
I
have
it
set
to
a
Windows
client
application.
If
I
had
Android
installed,
I
could
run
it
inside
of
an
Android
emulator
or
an
iOS
emulator.
B
But
regardless
of
how
you're
running
it
there'll
be
an
embedded
basically
web
browser
which
is
essentially
how
Blazer
Hybrid
Works,
and
you
need
to
tell
that
that
web
browser
which
address
it
needs
to
navigate
to,
because,
obviously
you
don't
have
an
address
bar
that
you
can
type
it
into
so.
The
constants
file
within
the
the
Maui
solution
allows
you
to
do
that.
B
B
And
boom,
okay,
so
basically
my
Maui
client
application.
My
windows
client
is
pointing
to
my
web
server,
which
is
running,
and
it's
able
to
get
access
to.
Obviously
it
rendered
all
of
the
content.
I
can
also
log
in
to
this
instance,
similar
to
just
exactly
the
way
that
I
did
in
my
web.
Browser
and
I
have
all
of
the
same
functionality
that
I
have
in
my
web
browser,
except
now
it's
running
in
a
Windows
client
and,
of
course,
it's
like
the
exact
same
application
and
components
which
are
running
in
all
these
different
environments.
B
B
B
Like
on
Startup,
it's
obviously
going
to
run
the
Maui
client,
but
it's
also
it
it
needs
to
download
much
in
the
same
way
that
when
using
Blazer
webassembly,
you
have
to
download
the
dlls
to
your
browser
and
then
execute
them
when
you're
running
in
Maui.
It
has
to
download
those
dlls
to
whatever
the
the
client
devices.
B
In
this
case
it's
my
Windows
machine
has
to,
and
then
it
has
to
load
them
into
the
app
domain,
and
then
it
runs
your
application
and
that
all
works
when
it
comes
to
when
it
comes
to
Maui
Arcane
is
smart
enough
that
it
stores
the
files
on
the
device's
local
file
system
and
then
the
next
time
you
go
to
run
the
application.
It's
going
to
check
to
see
if
there's
newer
versions
of
the
dlls
which
are
available,
if
not
it
doesn't
download
anything.
It
just
runs.
B
If
there
are
newer
versions
that
are
on
the
server,
it
will
download
them.
So
it
has
this
auto
updating
capability,
that's
part
of
it.
This
is
built
into
Octane
and
it
works
for
both
Maui
and
Blazer
webassembly,
and
this
is
like
quite
helpful
for
like
scenarios
and
organizations
where
you
know
maybe
you've
installed
this
Maui
client
and
a
bunch
of
different
people's
desktops
and
then
there's
a
new
version
of
your
application
right.
B
So
I
think
that
that's
like
that's
like
a
whirlwind
tour
of
all
of
the
capabilities
of
octane
and
so
I
I
guess
at
this
point
it
would
probably
be
best
to
find
out
if
there's
any
questions.
A
A
B
A
B
Yeah,
so
the
the
the
Blazer
hybrid
does
have
like
the
ability
to
access
the
load,
the
capabilities
that
are
part
of
the
local
device.
B
So
obviously,
if
you
built
a
module
for
that
purpose,
then
it
wouldn't
be
a
module
that
would
be
running
like
in
a
web
context.
It
would
only
be
designed
for
for
Maui
right
like
but
yeah
I
mean
the
same
one,
so
Blazer
hybrid
allows
like
contains
its
own
set
of
libraries,
of
course,
for
accessing
device.
B
Specific
services
like
like
you
mentioned
camera
various
things,
and
you
can
build
that
type
of
a
module
using
octane,
but
then
they
would,
of
course
it
would
only
really
run
within
the
context
of
a
very
specific
environment
right.
You
wouldn't
be
able
to
run
that
same
module
in
a
web
browser
because
that
device
doesn't
exist
in
the
browser.
So
but
yes,
that
would
be
possible.
B
B
Obviously,
it's
taken
quite
a
lot
of
time
to
get
to
this
point
and
I
think
so.
Building
modular
and
multi-tenant
applications
is
difficult
and
so
to
build
something
like
this
from
scratch.
Obviously,
like
it's
taken,
four
or
five
years
to
get
to
this
point.
So
if
you
are
contemplating
building
such
an
application
with
core
and
Blazer,
then
obviously
I
would
highly
recommend
you
leveraging
something
like
octane
as
opposed
to
trying
to
build
something
from
scratch,
because
it's
just
it's
it's
a
lot
more
work
than
I,
even
imagined.
It
was
going
to
be.
A
B
So
I
have
not
I'm
like
I'm,
not
running
in
containers
on
in
any
of
my
installations,
I,
so
that
I
believe
that
there
are
some
people
who
are,
but
it
really
depends
on
how
you
do
the
configuration,
because
a
lot
of
times
Docker
containers
want
to
be
static
right,
so
they
basically
they
want
to
have
an
image
that
is
pristine
right.
It's
not
going
to
change
at
runtime.
B
The
whole
concept
of
a
dynamic
framework
is
like
you
might
need
to
upload
a
file
right
like
and
in
those
scenarios
then
sometimes,
depending
on
your
Docker
configuration.
It
just
doesn't
work
right.
Some
some
in
some
ways,
Docker
doesn't
allow
you
to
to
do
those
types
of
things,
so
you
would
have
to
figure
out
how
to
do
the
the
configuration
if
you
want
to
use
docker.
A
A
All
right,
I
think
that
that
would
be
I
I
do
and
can
we
do
have
built
a
fair
amount
of
multi-tenant
applications
and
they
come
with
a
set
of
difficulties
for
sure
and
also
with
a
lot
of
setup
designs.
And
let
me
just
ask
you
a
few
things
here.
For
example,
sometimes
you
have
to
build
some
multitarian
applications
that
they
can
share
like
a
Common
Table.
They
say
they
sell
clients
or
they
sell
product,
or
they
should
so.
A
B
Yeah,
so
no
so
each
so
you
could
build
modules
that
use
their
its
own,
dedicated
database
or
even
I
guess
a
shared
database
with
some
other
site
or
some
other
service.
That
would
be
completely
possible.
B
I
guess
where
it
would
be
more
complex
as
if
because
because
essentially
you're
not
using
the
native
multi-tenancy
capability,
then
right,
you're
you're,
using
some
sort
of
a
custom
I,
don't
even
know
if
you'd
call
that
multi-tenancy
right,
it's
just
it's
more
like
you
want
to
share
some
data
or
you
want
to
store
some
data
in
a
different
table
like
I.
Have
ins
like,
for
example,
I
have
I'll
show
you
here.
B
So
this
side
here
I,
have
because
I
am
a
I'm,
a
hockey
and
I
play
hockey,
but
so
this
site
is
built
using
octane
and
it
tracks
NHL
hockey,
statistics
for
for
all
the
players
across
various
seasons.
B
This
is
an
octane
site,
that's
part
of
a
multi-tenant
installation,
but
all
of
the
data
for
all
of,
like
the
players
and
stuff
is
stored
in
a
completely
separate
SQL,
Server
database,
and
so
this
module
this
hockey
stats
module
talks
to
that
separate
database
to
get
its
data.
That's
like
not
hard
to
do.
It
just
needs
a
connection
string,
so
it
deals.
It
uses
the
multi-tenancy
aspect
only
for
the
sake
of
figuring
out
which
site
in
the
multi-tenant
installation.
B
It's
part
of
what
pages
are
part
of
that
site
and
that's
about
it,
but
the
data
itself,
which
is
like
the
data
that's
specific
to
this
module,
is
stored
in
a
separate
database.
I
think
that's
what
you're
asking
right!
Yeah
yeah.
A
B
B
These
are
all,
of
course,
the
the
UI
front
ends
for
the
admin,
but
there's
corresponding
apis
on
the
back
end
right
to
serve
all
of
the
information
for
these
like
so,
if
I
want
to,
you
know,
get
information
for
a
user
or
add
a
user
there's
an
API
for
that,
and
there's
also
a
service
library
on
the
client
that
you
can
use
so
that
you
can
interact
with
the
library
like
the
API
on
the
back
end.
Much
more
simply
so,
all
of
there's
apis
for
everything.
A
B
A
B
Yeah,
so
that's
it
can
be
a
little
tricky
using
third-party
UI
components,
because
each
of
them
have
their
own.
Like
nuances,
for
for
what's
required
that
the
main
thing
is,
you
know
if
you're
building
a
module,
that's
external
right,
like
the
idea
with
octane.
B
Like
a
very
simple
scaffolded
module
generated
with
the
the
module
Creator
right,
it
generates
a
bunch
of
code
for
you,
so
it
generates
a
client
project,
a
server
project,
a
shared
project
and
a
package
project.
B
You
then
run
it
within
okay.
Then
it
works,
but
it's
relying
on
things
being
copied,
and
so,
if
you're,
using
like
third-party
dependencies,
you
got
to
make
sure
that
you're
copying
those
same
dependencies
to
the
appropriate
location
and,
if
you're,
using
JavaScript
and
CSS.
Those
also
have
to
get
copied
right
because
it
said
so.
This
is
where
this
it's
just,
it's
not
anything
really
to
do
with
octane.
It's
just.
You
have
to
understand
your
deployment
model
right.
A
A
B
A
A
Hey,
let
me
ask
you
something
else.
We
have
questions
here
about.
Let's
say
that
you
are
not
really
available
and
you
just
want
to
install
it,
because
there
is
a
lot
of
things
out
of
the
box
there.
That
I
think
that,
without
building
a
custom
model,
you
can
create
Pages.
How
will
be
that
process.
B
So
it
depends
I
guess,
deploy
to
Azure
works,
so
I
click
this
button
and
deploy
it'll,
deploy
it
to
Azure.
For
you,
of
course,
It'll
ask
you
a
bunch
of
questions
about
resource
groups
and
various
things
if
you
want
to
install
it
onto
whoops
onto
IIs
like
yeah,
so
if
you're
not
a
developer,
you
probably
need
a
developer
to
help
you,
because.
B
Going
to
really
understand
IIs
and
how
to
deploy
things
then
thank
you.
I
use,
Azure
from
almost
everything
with
octane
I
find
that
it
works
really
well,
and
you
can
run
octane
in
like
a
like
one
of
the
smallest
tiers.
So.
B
A
I
think
that
that's
it
I
don't
see
any
other
questions
and
a
a
again.
There
is
a
lot
a
lot
of
things
here.
I
think
that
way
you
can.
Basically,
let
me
ask
you
something:
it's
it's
safe
for
like
static
Pages.
What
would
be
a
scenario
that
you
will
not
recommend
obtain
because
basically
I
think
that
you
can
do
anything
here
for
line
of
business
application.
This
is
it
perfect,
and
so
what
what
would
be
one
a
scenario
I
will
not
recommend
it.
B
Yeah
I
can't
think
of
like
for
any
type
of
line
of
business
application.
It
should
work
fine
if
you're,
building
like
a
game
or
something
Maybe.
That
might
not
be
a
good
use
case.
I
I
haven't
really
thought
about
what
it
wouldn't
be
good
at
I
mean
almost
every
type
of
application.
Is
these
days
are
storing
information
to
some
kind
of
a
back-end
data
store
displaying
that
information,
somehow
yeah.
B
Yeah
so
I
see
this
question
here,
create
a
custom,
Cron
job
with
functionality
specific
for
that
module.
That's
what
the
scheduled
job
functionality
is
for,
so
you
don't
need
to
use
a
Cron
job.
You
use
you
just
you
create
a
visual
studio
or
your
dot
visual
studio,
so
you
create
a
a
scheduled
job
class
within
your
module
at
runtime.
B
Octane
will
see
that
class
spin
it
up
and
run
it
as
a
as
a
hosted
service,
and
you
can
specify
in
your
installation
like
the
schedule
that
you
wanted
to
execute
on
right,
whether
it's
every
minute
or
every
hour
or
every
day
or
whatever.
So
you
don't
have
to
know
anything
about
the
in
that's
one
of
the
ideas
here.
You
shouldn't
have
to
know
a
lot
about
the
infrastructure
rate
to
be
able
to
create
a
Cron
job.
You
should
everything
within
octane
is
essentially
writing.
C
sharp
code,
whether
it's
back-end
front
end
scheduled
jobs.
A
A
A
Yep,
all
right,
so
hey
thanks,
hello,
John.
It
has
been
great
and
a
lot
of
things
to
go
through
there
and
hello
and
as
an
example
of
how
a
dynamic
places
can
be
how
powerful
it
can
be
from
this
client.
Science
and
the
server
side
so
feel
excited
to
see
the
presentation
and
to
see
everything
that
you
have
chose
a
lot
to
think
about
a
lot
to
play
with.
So
thank
you
a
lot
for
the
presentation
and
for
everyone
thanks
a
lot
as
always
for
joining
in
next
month.
A
We
have
Ed
shower
now
we're
gonna
be
talking
about
CSS
for
pleasure
developers.
That's
not
the
the
part
that
we
that
at
least
I
shine
the
most
I
like
each
other
in
CSS
and
from
end
it's
just
like
not
my
cup
of
tea,
but
it's
needed
it's
needed
for
laser
to
make
applications
beautiful.
So
thanks
again,
John
I'm,
really
really
really
grateful
for
having
you
here.
I
know
that
all
everyone
was
talking
about
today
about.