►
From YouTube: Xenial - Layout Builders
Description
Click Here to Subscribe: http://xaf.life/35
Websites:
https://xafmarin.com/
https://www.xafers.training/
http://xafersweekly.com/
Facebook Group
http://xaf.life/4g
A
A
Layer,
builders,
tokens
extensions
carlions,
everything
is
focused
more
or
less
around
code
and
best
practices,
but
it's
mixing
in
all
in
together.
I
showed
the
last
time
model
builders
and
today
I
want
to
show
layout
builders,
which
is
a
a
way
to
to
build
your
layouts
in
code
and
not
in
the
designer
or
not.
The
model
editor,
and
I
also
want
to
show
off.
There
is
the
docs.
I
am
not
sure
if
they
were
online
the
last
time.
A
There
are
a
lot
of
topics,
it's
nearly
not
finished,
but
it's
like
all
the
kind
of
stuff
I
can't
describe
in
in
the
feature
center.
There's
also
the
feature
center
for
all
guys
who
are
more
interesting
in
more
visual
stuff,
like
the
editor
staff,
token
editors,
html,
google,
web
ui
and
the
batches
of
course,
as
you
see
here,
there's
a
lot
of
stuff
and
it's
getting
added
up
all
the
time.
A
But
the
hard
part
is
how
to
show
model
builders
without
documentation
or
non-visual
stuff,
and
that
was
visual
stuff
is
like
sixty
percent
of
cranial.
So
that's
why
I
focused
on
docs
in
the
last
time-
and
I
showed
the
model
builders
approach
in
the
last
time.
So
it
helps
you
adding
metadata.
A
Helps
you
adding
metadata
to
your
business
classes
and
your
and
your
and
your
classes
without
having
to
write
attributes
on
top
of
your
business
objects
or
domain
objects
as
a
call
next
thing,
and
the
next
step
is
like
layout
builders,
it's
like
a
dsl,
how
you
can
write
layouts
in
code,
so
they
are
refactoring
safe.
So
you
don't.
A
Break
your
replication
or
your
applications
layout.
If
you
need
to
refactor
or
rename
your
application
or
at
least
get
an
indicator,
if
you
refactor
your
code
or
rename
your
code,
how
much
impact
it
might
have
on
your
application-
and
I
am
just
currently-
we
are
looking
at
the
person
class
like
it-
would
be
always
so.
This
is
a
person
class.
We
have
like
a
person
with
a
first
name
and
a
last
name
image
address
one
address
to
an
address
collection
and
the
secondary
class.
It's
the
address,
sublist!
A
A
If
it
does
allow
me
to
do
oh
there,
no,
it
doesn't.
Oh
there.
It
is,
and
I
just
choose
that
devexpress
20.2.6
solution,
wizard
I'm
going
to
xpo
right
now
with
new
identification
with
no
modules
at
all
and
it's
just
a
standard
xf
blazer
application.
A
Now,
whereas
this
stuff
works
with
blazer,
as
well
as
with
wind
forms
as
well
as
with
web
forms,
so
the
old
web
stack,
but
I
would
not
recommend
you
to
go
to
the
web
forums
route
if
we
have
something
that
awesome
as
blazer
is
especially
if
you're
starting
a
new
project.
A
So
let's
think,
let's
should
study,
think
a
little
bit.
I
need
to
close
this
little
bit
up.
I
have
prepared
a
couple
of
solutions
if
my
studio
dies
or
something
like
this,
so
don't
worry
too
much.
A
A
A
A
A
That's
if
you're
super
prepared,
so
it's
an
mpxf
application.
Nothing
there!
Okay,
that's
fine!
So
we
are
going
to
copy
all
that
code
and
it's
just
a
xpo
class.
So
nothing
special
here!
Well,
oh,
I
think
I
might
not,
but
I
I
will
leave
this
open,
so
we
have
our
server.
So
we
need
this
in
our
module
because
we
want
to
share
our
business
codes,
even
if
this
is
xav
only.
I
am
adding
a
new
class.
A
And
I'm
just
copy
pasting
it
and
there's
a
some
stuff
missing
here
for
expanding
the
object
members,
it's
just
a
bug
in
my
docs
and
there's
the
type
member
missing
in
the
in
here.
So
I'm
going
to
add
this
real
quick.
A
Then
you
have
to
fix
that
stuff
that
normally
support
center
will
deal
with
no
type
second
ref
and
then
okay,
we're
fine,
and
then
we
can
just
persist
this
as
well,
and
because
we
are
nice,
we
can
forgot
comma.
A
A
By
the
way,
how
do
you
pronounce
it?
Oh,
no!
Yes,
of
course
I
forgot
to
do
the
most
important
stuff
and
it's
declaring
it
as
a
default
class
options
or
a
navigation
item
thing,
so
we
can
see
something
in
the
navigation
options
or
in
the
navigation.
What
was
the
question
dennis
while
we
are
waiting?
A
A
Germany,
sure
mainly
fights
stuff
like
a
class,
is
like
a
classic
and
an
object
is
like
an
object,
but
they
they
stopped
and
I'm
very
happy
about
it.
A
So,
okay,
you
can
see
it's
basically
the
normal
layout
we
get
from
xcf.
If
you
do
that
kind
of
stuff.
A
I
know
there
are
the
new
attributes
where
you
can
tweak
the
layout,
but
the
thing
is
basically
that's
what
you
get
if
you
are
doing
it,
the
native
way,
for
example,
and
of
course
I
can
now
switch
into
the
model
editor.
A
And
drag
stuff
around,
so
it's
basically
showing
you
the
same
layout
views
and
then
the
demo,
and
then
we
have
to
do
the
view
for
this
and
the
person
interview
for
this,
and
then
we
could
go
into
layout
that
we
have
like
the
same
layout
we
saw
before
and
we
because
we
don't,
we
done
the
expand,
object
members,
it's
getting
a
little
bit
messy.
A
Nevertheless,
there
is
an
option
for
that,
at
least
for
if
you
use
daniel.
So
at
the
time
of
of
this
writing,
it's
like
senior
framework
and
right
now
we
daniel
is
always
on
the
latest
version
that
is
officially
available,
so
that
doesn't
stand
anything
besides
here.
It's
like
22.6.
A
So
at
the
time
I
support
more
versions
or
we
support
my
versions.
We
are
lowering
the
boundaries
on
on
on
the
versioning,
so
you
have
a
better
feeling
what
devexpress
version
will
correspond
to
the
framework
version,
but
nevertheless
I
just
installed.
Okay,
that's
fine!
A
I
I
need
to
go
into
the
module
to
tell
the
xa
framework
to
use
daniel
and
it's
and
the
layout
builders
and
that's
a
key
key
design
feature
of
xenial.
Instead
of
having
to
add
a
whole
module
with
everything
in
it.
You
can
pick
and
choose
and
we
now
pick
and
choose
just
the
model.
Builders.
A
B
A
A
Okay,
now
we
enabled
the
builders
and
now
the
next
thing
we
need
to
do
is
we
need
to
define
an
attribute
and
I'm
just
copying,
pasting
it
and
I'm
just
following
along
the
docs,
because
I'm
no
coding
hero
at
all
or
keyboard
hero
and
what
this
says
is
like.
Okay,
this
is
the
the
detail
view
layout
builder
attribute
and
it's
following
a
convention.
So
there
is
this:
can
you
can
read
this
stuff?
Can
I
zoom
in
on
that
somehow
no.
A
A
Yeah
blah
blah
this
this
assumes
that
is
compatible
with
the
build
layout
factor.
The
build
layout
functor
is
just
a
delegate
that
returns
a
layout
and
normally
it
should
also
say
that
it,
the
method
should
be
called
build
layout
somewhere.
A
No,
no,
it
was
an
example.
I'm
not
sure
it.
It's
that
stripes
it
out,
but
nonetheless
it's
talking
about
that.
If
you
have
a
function,
that
is
called
build
layout
and
it's
static
and
it
returns
a
layout
and
you
have
this
attribute,
then
it
will
build
your
layout
from
this
method
and
to
prove
it.
I
just
started
started
and
now
we
should
see
an
empty
layout.
A
Okay
with
the
person
that
is
a
new
and
now
it's
empty,
okay,
so
not
not
very
special
right
now,
but
that
that
also
means
it
doesn't
interfere
anymore.
If
you,
if
you're,
adding
new
properties
or
something
like
this,
this
is
like
the
golden
master
for
your
layout,
but
you
also
can
use
the
model
designer
to
add
stuff.
Later.
A
Okay,
now
follow
along
the
the
the
dogs
and
we
we
want
to
have
a
layer
to
look
something
like
this,
and
now
we
have
all
the
kind
of
stuff
that's
going
on
with
horizontal
groups
and
how
the
property
editors
are
are
aligned
with
each
other.
And
now
we
have
these
tabs
that
are
going
on
and
we
have
two
tabs
that
are
the
same,
and
we
have
the
list
view
that
is
going
on
and
I'm
just
going
and
copy
this
layout
and
don't
be
totally
scared.
A
Okay,
so
and
I
will
follow
along
with
what's
going
on-
and
I
I
think
in
five
in
five
minutes,
we're
done
so.
A
I'm
falling
through
through
when
this
is
loading
and
just
don't
get
me
wrong.
So
we
have
our
image
editor
here.
That's
not
perfect
in
blazer,
with
our
full
name:
first
name
last
name:
email,
street
city,
postal
code,
state
province,
country,
and
now
we
have
here
the
exact
same
thing,
but
with
the
secondary
address,
and
now
we
have
our
list
view
okay,
and
to
show
you
that
this
isn't
a
foolproof
joke.
A
I
have
here
the
exact
same
solution,
but
in
wind
forms-
and
here
we
have
like
the
the
image
full
name-
first
name
last
time
secondary
primary,
you
can
see
some
differences
like
the
the
oh,
that
was
for
differently.
A
A
You
can't
do
this
this
in
in
windfalls,
but
nonetheless
that
the
layout
is
exactly
the
same,
and
that's
that's
basically
how
you
can
apply
the
layouts.
But
the
neat
thing
is
like
this
is
a
very,
very,
very,
very
verbal
syntax.
You
have
to
say
what
is
going
on.
I
want
to
have
the
horizontal
group
and
the
layout
property
editor
and
the
vertical
group
and
the
layer.
A
It's
basically
structuring
all
the
tree
in
this
kind
of
horizontal
item.
A
A
Is,
for
example,
those
two
tops
are
basically
exactly
the
same
or
should
be
exactly
the
same,
and
they
are
perfectly
exact
the
same,
but
one
is
for
one
and
two
is
for
two
and
you
can't
do
this
easily
in
the
model
editor.
You
can
do
it
in
the
tree
structure,
but
you
can't
do
this
really
easily
with
drag
and
drop
in
your
in
the
model
editor
and
also
they
both
should
look
the
same.
A
So
I'm
switching
back
to
my
solution.
13
and
you
can
see
we
have
like
one
primary
address
and
we
have
a
secondary
address
and
those
are
basically
totally
the
same
and
we
don't
want
to
repeat
ourselves,
but
the
only
thing
that
is
changing
is
this
number
part.
So
it's
address
one
and
address
two.
So,
okay,
let's
go
into
that
real,
quick
refactoring.
B
A
A
A
Where
you
have
to
repeat
yourself
or
a
way
of
nesting,
a
lot
of
going
on
or
inheritance,
for
example,
then
this
can
really
really
help
to
speed
up
your
development
and
you
and
get
in
your
more
consistent
results.
The
next
thing.
A
It's
always
splitting
in
even
parts
if
this,
if
this
makes
a
sense,
for
example,
we
have
here
like
two
editors
and
now
it's
taking
up
50
and
50
percent
of
the
space.
A
If
we
do
free,
then
we
have
for
different
a
fraction
of
the
space
if
you
to
afford,
and
we
have
four
quarters
of
of
the
space
so.
A
Manual,
oh
yes,
I'm
working
on
it,
I'm
working
on
it
if
it
starts
where
it
is.
A
A
A
If
so,
you
can
say,
I
have
an
empty
space
item
and
horizontal
grow,
one
horizontal
tab,
blah
blah
blah
blah
blah
blah
blah
all
the
option
options
you
have
like
view
items,
property,
editor,
cultural
items,
all
that
kind
of
stuff.
Instead
of
remembering
or
looking
up
all
the
details,
you
need
to
follow
up
with
newing
up
new
objects.
A
A
But-
and
this
does
basically
exactly
the
same-
and
we
didn't
refactor
this
out
and
the
neat
thing
is:
you
can
still
have
refactoring
save
code
here
so.
A
A
A
Always
the
same
wrong,
and
it
totally
looks
the
same.
Of
course
it
produces
the
same
result
because
the
syntax
itself
just
produces
the
same
object
graph
and
for
the
very,
very
brave
ones,
and
I
am
not
going
to
show
this
life
right
now,
because
there
is
a
little
bit
of
or
is
it
there
a
little
bit
of
wrinkling.
We
can
just
try
it.
A
So
we
can
use
the
new
syntax
from
net
name.
I
guess
so
the
new
thing
that
is
coming
with
with
net
six
nine.
I
don't
and
we
can
use
record
syntax
to
really
really
really
help
write
more
fluent
syntax,
especially
if
you
are
going
to
okay.
A
Me
that's
fine,
let's
do
the
the
no.
I
show
it
just
in
the
in
the
other
solution,
language
yeah,
it's
the
language
version
and
we
need
to
settle
a
bit
if,
if,
if
it
was
that
five
with
21.1,
I
tried
it,
it
works
out
of
the
box
where's
my
layout
thing,
oh
and
of
course
it
works
with
with
model
builders
as
well,
of
course,
so
you
can
combine
it
with
model
builders
as
well,
and
just
do
this
away.
B
A
Namespaces,
because
that's
a
neat
thing
about
functional
style,
you
don't
need
to
import
any
a
lot
of
of
namespaces
because
you
just
need
to
import
the
namespaces,
the
compiler
don't
know
the
types
of,
and
now
you
can
see
it's
like
mixing
up
all
this
kind
of
stuff,
but
it's
always
the
width
expression.
So
it's
it's!
The
property
editor
is,
is
returning
a
property
editor
but
you're,
adding
those
properties.
A
So
this
is
this
new
immutable
record
style
and
I
think
it
makes
a
really
really
neat
combination
between
readability
and
and
usability
from
a
developer
perspective,
because
you
have
real
break
points
and
functions
and
all
that
kind
of
stuff.
So
and
basically
that's
it
and
last
one
that's
for
the
ultra
brave
you
can
mix
them,
so
you
can
go
with
with
expressions
and
with
expressions
and
then
do
newing
up
stuff
in
the
middle
between
and
then
do
like
the
lumber
stuff
in
between.
A
So
basically
the
thing
is,
we
are
just
building
a
huge
object
graph,
and
that
also
mean
you
can
do
like
four
for
eaches
loops,
if
else
all
kind
of
stuff,
if
you
have
to-
and
it's
just
the
last
two
bits-
it's
just
how
to
build
the
layout,
not
how
to
use
where
it
all
can
be
really
really
important
and
useful
for
your
applications.
B
A
Every
every
everybody
tells
me,
oh,
the
first,
this
first
syntax
was
nice.
Alex
was
telling
me,
oh
no,
he
wants
to
write
it
like,
and
it's
even
of
course
it
is
possible.
You
can
go
and
say:
okay,
I
don't
do
this
approach,
you
can
go
the
old
route
off
after
all
and
I'm
just
going
doing
a
backpack
back
back
back
back
back
back
to
this
arrangement,
and
this
this
thing
and
like
there's
a
var
layout.
B
A
Say
layout:
oh
my
god,
somewhere
my
keyboard
is
not
and
there's
a
ads
and
I'm
adding
this
and
now
I
return
the
layout,
and
I
think
this
should
work
and
what
will
happen.
It
will
be
a
layout
with
just
one
property
editor
in
it,
and
this
time
I
don't
miss
the
oh
and
now,
of
course
it
opens
on
the
right
screen.