Speaker 1: How'd you like to listen to dot net rocks with
no ads?
Speaker 2: Easy?
Speaker 1: Become a patron for just five dollars a month you
get access to a private RSS feed where all the
shows have no ads. Twenty dollars a month will get
you that and a special dot net Rocks patron mug.
Sign up now at Patreon dot dot NetRocks dot com.
Hey it's dot net rocks. I'm Carl Franklint and I'm
Richard Campbell, and we're back. We haven't recorded in a
long time, and a few things have happened fired, Yeah,
since then, nothing really major, you know, just a bunch
of tariffs, maybe gutting of the government, you know, the usual.
Speaker 2: Keep saying things. I just know there doing things. Question.
Speaker 1: We'll see, we'll see how this all turns out. But
we're not freaking out here. We're talking about dot net
and today we're specifically talking about UNO. Well, it's going
to be a good show. Francois the founder of Uno.
The Uno platform is here, and Sasha, the CMO Uno
is here. We're talking about that, but first let's do better.
No framework awesome, all right, man?
Speaker 2: What you got?
Speaker 1: I found this really cool open source Microsoft tool called
data Formulator. It's on GitHub Microsoft Data dash Formulator and
it's for creating rich visualizations with AI. Transform data and
create rich visualizations iteratively with AI.
Speaker 2: I don't know what that means.
Speaker 1: I don't know, but those charts are pretty crazy looking.
Speaker 2: Okay, so what has that got to do with anything
to do with artificial intelligence. It's like they're using it
like agile. If I just squirt Agile on, it'll be agile.
Speaker 1: You know, you're not wrong. And I think it's not
just Microsoft that's doing this, but the media is just
absolutely crazy.
Speaker 2: Well, and it's like, you're a fool not to add
AI to every product name now exactly it's better. Yeah,
the new Apple.
Speaker 1: Watch has AI built into it one and my wife do.
Speaker 2: You mean Apple Intelligence, because of course they do. All right.
Speaker 1: Well, my wife we just bought a new LG washer
and dryer and she was freaked out because a message
on the readout said, using AI to figure out the
load or whatever wash your clothes. Come on, really, that's
not AI.
Speaker 2: You know that. You figure they manifestured that a couple
of years ago at least, so they've literally added that
in after the fact, Like, come on.
Speaker 1: She says it's not connected to the internet is and
I'm like, no, hell no, did you connect it to
the Internet.
Speaker 2: I didn't. Yeah, yeah, so all right, that's fair. But anyway,
it's a data visualizer, which is cool.
Speaker 1: It's a data visualizer that supposedly uses AI.
Speaker 2: So all right.
Speaker 1: It's an application for Microsoft Research that uses large language
models to transform data, expediting the practice of data visualization.
Speaker 2: Nice. So okay, So it's got nothing to do with
making the visualizations it's about. It's a UX interface using text.
Speaker 1: Yeah, okay, So somebody put them out of their misery,
go try it and let us know, or put us
out of our misery. Let us know what you think.
Somebody who actually is qualified to comment on it, because
I am not. All right, yeah, And so that's when
I got today Richard who's talking to.
Speaker 2: Us grabby comment off for show eighteen eighty two, the
one we did well. Nick Randolph talking to Little about
this thing called UNO. Maybe you've heard of it about
a year ago. That was Sharon you arey of twenty
twenty four. And this comic comes from Rod who said,
I just finished listening to this episode today. I really
appreciate what Nick had to say about Uno. I'm familiar
with it but by reputation only, and that has interested me,
so I'm going to take it out for it's been
And although it wasn't the main part of discussion, when
Carl brought up Verify, which you mentioned the verified test
suite on GitHub, it really caught my attention too. I
hadn't heard of that, so all investigated. Thanks so much
for finding these cool things.
Speaker 1: Well, to be honest, Simon Crop contacted us and said, hey,
Verify check it out, and then we discovered what a
font of awesomeness Simon Crop really is.
Speaker 2: Yes, so all of this is true. Yeah, so that's cool. Hey, Rod,
thank you so much for your comment. And a copy
of music cobuy is on its way to you. And
if you'd like a copy of music go buy, write
a comment on the website at NetRocks dot com or
any of the facebooks. If you comment there when we
read on the show, we'll send you a copy of music.
Speaker 3: Ope.
Speaker 1: I have an announcement about music to code by coming
up in next week's show, but it is still going
strong and musiccodeby dot net is the URL. And basically,
if you don't know what this is. It's magic music
to help you focus while you're coding or doing anything else.
Speaker 2: And it gets better over time, Like I realize now
there are certain tracks where ten seconds into the track
you just kick into flowstick. Yeah, because you've trained your brain.
Here's those sounds. Oh it's time to work.
Speaker 1: Yeah. Absolutely. And you can also follow us on the
other social medias. We're on all sorts of things like
ex Twitter and Mastadon and blue Sky and usually some
form of at Rich Campbell and at Carl Franklin. All right,
before we introduce Francois and Sasha, let's talk about nineteen
thirty eight.
Speaker 2: All right, what do you got for nineteen thirty eight?
Speaker 1: Really quickly, I found a nice little summary on the internets.
In nineteen thirty eight, significant events included the annexation of
the Sioux Daetan Land by Nazi Germany, the establishment of
the March of Dimes in the US, and the first
appearance of Superman and comic books. Additionally, the year saw
the collapse of the Honeymoon Bridge at Niagara Falls and
the onset of Crystal Knocht, a violent anti Jewish program
in Germany. And I'm sure many many men, many more things.
You probably have a few things on your list, Richard.
Speaker 2: Oh yeah, I focus on what's important, man. Nineteen thirty
eight is a year the ballpoint pen wasn'tvent hey was
that bick No, it was brio wow or biro biro
evented the ballpoint bet. Also LSD first synthesized.
Speaker 1: Ah, so that's that's to blame for all this crap
that happened after nineteen thirty eight.
Speaker 2: Also, the first time they made teflon, although they didn't
figure out to put it on pans right then. It
was kind of an accident. Would take a little longer
than that would Plunket made tetraflor ethylene. Yeah, and the
escafe invents free strike coffee. Wow, the important things. It's
a good year. I mean, not for the checks because
that's the sedate and land, but you know.
Speaker 1: Yeah, yeah, So okay, let's introduce the guys here. First
of all, Francois Tangey is the founder of the UNO
platform and open source framework for rapidly building crossplatform dot
net applications. And our friend Sasa Chismanovich is CMO at
Platform taking care of community and developer outreach. And you
probably remember Sasha because He formally worked at Telerek and Microsoft,
including running the MVP program. Welcome guys, thank you, hell
good to be here again. Yeah, good to have you back. Francois.
Speaker 3: I think last time I was here with Jerome, but
this time I brought into big guns.
Speaker 2: Right.
Speaker 4: Important people.
Speaker 1: Yeah, So I guess should we ask the obvious question,
what's new.
Speaker 3: The tons, because it's been a while, and I know,
like Nick last year and discussed some of it, like
we've been working hard, Like the team's been growing and
working hard, and like improving our story and like really
fulfilling the mission of a new platform. Right Like since
day one, it's been about how can we improve productive
tea and make this the fastest way to build apps
and dot ne te coass in and look at what's
out there. But yeah, we've had a great bunch of
announcements last year at dot net Con. Really looking forward
to discussing.
Speaker 2: Okay, well, the big one's got to be hot design,
right like you guys, it seems like you crack the code.
Nobody else has been able to make an interactive designer
outside of wind forms, and this one seems to work.
You are the hot reload for X.
Speaker 3: Yeah, and and the reason why we've got so much
excitement around this is like the different approach we took
for it. So like you look at all these traditional
designer experiences in the past, and like we've been using
them like before oh no, I was like running a
death shop, a mix of death Shop and Canada like
one hundred fifty people. And you're always looking as to
how can you build faster and make like those digital
experiences more efficient, and like since day one, we have
been using wind Forms Designers and WPF design years and
then expression Blend, and we've suffered through storry.
Speaker 2: You say, WPF designer, that thing makes me sad every time. Like,
as long as you don't put anything on it, it's great.
Speaker 3: Yeah, but that was a challenge, right, So as soon
as you looked and like for a second or two
like or played with it, like it would break and fail.
And we're like, okay, yeah, people that we've been asking
for designing our first experience because we know the product
de gains it could bring in theory, but like we're
no way we're going to build something the same way
it's been built on the paths. So is there a
novel way or a new way to look into this,
and that's how we came up with hub Designer and
hob design was really one of the initiatives within a
broader set of tool initiatives. So like last year at
dot Country and then we announced well no platform Studio
was a set of tools sitting on top of our
core open source framework. So if you take a step back,
who know today is our cross platform developer experience on
dot net allows you to build apps everywhere? Like that
doesn't wrong?
Speaker 1: Right? So so the obvious question that I hear the
listener's brains mulling about is how does this differ from
Maui and why should I choose it over Maui, especially
when Maui's in the box.
Speaker 3: So there's so that's a question well get all the time,
and it's a relatively simple question to answer, because are
we're aiming to do a lot more than now in
a sense, but we're comparable if you're if you just
care about the platforms that now we target, we're somewhat
comparable at the cross platform UI framework themo right, So
and that's the first thing people look into when they're
looking at you know, okay, this is a cross platform
UI framework but then going back to our builder experience,
there's a lot more in there. So yes, at the
cross platform UI framework, we're possibly targetting more platforms because
you can also run on Web with web assembly, you
can run on Linux because that runs on Linux as well,
and we have renders for all these platforms. So this
is one way to look at how we differ from MAW.
Speaker 1: So now you would have to use the hybrid model
in order to have to run like yeah, that or
just use Blazer, which isn't Mali at all.
Speaker 3: Yeah, but then you need to care about HTML tags
and all that. So if you're looking at this and
coming at a rich application development platform using like traditional
example and see or c sharp as your markup, and
you care about like binding engines and rich styling engines
and all that, and you're not coming at it from
a web background, then who know, makes a lot of sense.
Speaker 1: So, and you're not using maui what do they call it,
Mali forms or zamorin forms based Mali examle, you you're
using a Microsoft version of Examle, which is what.
Speaker 3: So the exammal syntax is we're aligned instead of coming
up with our own flavor of Zamo. We decided to
align with the latest and greatest version of Zamal that
makes of from the whin u I API, so we're
API compatible with one UI. But it's our own implementation
of a cross platform.
Speaker 4: I find maybe this is really where the marketing guy
steps in. Like I would love to believe that everybody
knows exactly what hot design is, but I learned that's
usually not a case. But maybe just I think taking
a step back and from sub do you want to
explain hot design what it does to the application, then
it's going to make a lot more sense before before
going into a deep into the technology, right.
Speaker 2: Yeah, for sure.
Speaker 3: So but heart Design is a set of tools, productive
to focused tools sitting on top of our cross form framework.
And yes, we can get into all the intrinsic details
as to how we differ from other platforms. But as
fart and we shipped hot Design last year as a
visual designer, so a visual code editor sitting on top
of our platform as part of our platform studio or
a family of products. So hot design what is it?
Speaker 2: It's a.
Speaker 3: Design experience that allows you to drag and drop from
a toolbox components to select your items from your application
and be able to change your property value, set your
bindings and all that as you would have done traditionally
with other design surfaces like the one forms Designer for example.
But a unique twist on it is it's relying on
or it's sitting on top of hot reloads, so it's
a run time experience. So like if you look at
the past, we've created all these design time experiences where
your app would running, you'd be embedded into an ide
to visual studio for Windows, and you have this design
time surface that you would try to load design time
components and then third party components into it, and it
would fail because it was trying to make API calls
and it shouldn't because you're in design mode and all that,
and you had to include metadata for your design components
to be made aware or for the design surface to
be made aware of these components, and it was pretty
complex set up, and they really fragile set up. So
our twist and really the haha moment is like, Okay,
we have a running app. We already have a great
hot reload experience where there's a one way street. You
can modify any code you want in your markup or
in your application code should be c sharp or examle code,
and you're able to see those changes live through hot
reload and your running application. Right, So could we do
it the other way around as well, where from your
running app, like looking at it visually, could we then
allow you to make modifications visually so it synchronizes back
into your code. Right, So you have a one way
street from code into UI and at run time with
hat reload, and we have the same symmetrical experience from
design intocode. And in order to do that, basically the
how a moment came when we're like, okay, let's just
inject a designer and your running app, right, so let's
overlay a design surface the equivalent of what it would
be in yours visual studio, IDE or any other like
expression blend kind of experience. Let's inject that in your
running app so that you have the entire application context,
your app is running, you have access to your existing
data context, few models, and then you have all this
great information that you can use at run time to
design your applications. Wow, and we believe it's a first,
Like we're first in market across technology stacks, like we've
never seen something similar to that, where like an a
cross platform scenario because as you're designing in a running app,
your running app is by definition cross platform. So you
can be running your app on a Raspberry Bui embed
a device, you can be running on a web you
can be running on a mobileum later or mobile physical
And because your app is running there and your designer
is running there as part of your app during hot design,
because obviously it's just a development kind of experience. You're
never shipping this into production obviously, but as part of
your debug experience and development experience, you now have access
to the design surface with a two bucks of components.
And because your application is capable of loading third party
components and using your own user controls, then your designer
is also capable of running those third party controls and
your user controls and connecting and setting up your binding
expressions directly to your live data. And that's all part
of the mindset of not trying to reinvent the wheel
and keep the developer. And they're like efficient dev ander loop, right,
why have you stop your running app to go to
design mode? Try to come up with new designs, recompile,
reload again, and then see the effects when you can
have it like directly in your running app.
Speaker 1: This is really cool, but I have so many questions there.
Okay that the idea, Yeah, this is great. Before we
go into that, I just want to backtrack a little
bit because you said you're basing the the examle on
when UI. This is a change from when I first
learned about UNO. It was based on Universal UTVP application
you UWP right, and you know that was kind of
a head scratcher because then that kind of went away.
But you guys pivoted, so now you're on the latest
when UI, and in Maui, you they use when ui
only for their Windows thing, right, their their Windows version
of a Maui application.
Speaker 3: Yeah, so Maui as a if you look at it
as a back end they have and I was back
end because they're really on the native platforms, so they
use when u y for their one U implemmentation. But
you really need to make a difference between sitting on
top of a technology like when UI and being compatible
with the API. So the name bases of plasts and
all that, sure as a as a way to cross
compile between when uy and the other platforms, and that's
what we're doing.
Speaker 1: Okay, that's that's great. So now my next quession about
hot hot development? How would you call it hot?
Speaker 2: What?
Speaker 3: Hot design?
Speaker 1: Hot design?
Speaker 2: Yeah, which is great.
Speaker 1: Now I have another hot thing to remember, but this
seems to be the coolest idea I've heard between hot reload,
hot restart. Do you still are you still subject to
the problems that Apple developers have trying to debug on
their devices? It's just a nightmare. And I don't suppose
that you guys are doing anything any different. You still
have to provision your device at Apple and get your key,
and Visual Studios sometimes doesn't recognize it. It's just a nightmare. Yes,
Is it any better with your platform?
Speaker 2: Yeah?
Speaker 3: Something important because we've been like living through these challenges
in the past as well as our builders, as I mentioned,
for fifteen years.
Speaker 2: Right.
Speaker 3: But like something important you approach, we do it is
to maximize the amount of flexibilities you'll have. So when
you're developing on apps today, yes, you can use a
Visual Studio for Windows, but you can also use vs
code on any operating system. You can use writer everyone where,
and it's an equal experience to a certain extent. Where
we've created our wizards or project templates. We have the
same hotter reload experience across the board, across all these
ideas and operating system so you can choose what suits
you best, and like if you're suffering and to some
extent and countering friction with one ID and would prefer
to use another one from macOS for example, or from Linux,
you can choose to do so without any impacts. So
like that same experience where we've really decoupled everything we're
doing with hot design because it's a run time. If
your app is running, a design is running, So it's
really like being able to keep those things separate and
let you choose with all the flexiblity. You need your
best ide on your best operating system.
Speaker 1: So what you would recommend is don't try to develop
and debug on an iPad on from a Windows machine.
Go to a Mac, use the Mac ide and you're
more likely to be able to use your Apple devices
directly from that.
Speaker 3: Yeah, you have all this flexibility, and but we've seen
it like people working from various ideas using CLI as well,
Like there's all sorts of experiences depending on people's personal
preferences and the platforms they're targeting. And if you look
at it simply from a productivity standpoint. What we've seen
in our community do a lot is because when it's
a cross platform solution and we offer the guarantee of
being pixel perfect and behaving and looking the same everywhere,
you can spend most of your time development time targeting
desktop because it's super efficient, Like, it's fast, there's no
issues in running and in laders and all that. So
you develop most of the time on desktop while considering
like different breakpoints and responsive design considerations and all that.
And at the end of the process, then you test
on additional additional platforms, let's say iOS to make sure
everything behaves properly. But you're able to remain efficient and
get the optimal experience by targeting desktop first in your
day to day development.
Speaker 2: Interesting because you know, we've argued or we heard the
argument from mobile first for a long time. Mm hmm,
So buddy, you then have this slower development cycle where
getting out to the device takes a while, debugging takes
a while, like, all of that is harder. So you're saying,
from a feature perspective, get the features nailed down on
the desktop app, keep your design your UX consideration. So
it is going to be able to size properly the
phone to a degree. But when it comes to tuning
it up. That only after you get your feature complete
you're ready to go start playing with the phones. Exactly
see how they render.
Speaker 1: You must have a very responsive UI in your Windows
Designer or your Windows platform, because that's the problem with
Windows forms, right, it's pixel based, So you put something
too far to the right and you squeeze that window
down and on a device, it's gone.
Speaker 3: No you need like that was twenty five years ago.
If you're still doing absolute positioning today, you're in big trouble.
You need to make well Richard wants it back. Okay, sure, sure,
blame me. Accept We accept contributions and prs to the RePOP.
Speaker 2: But yeah, the mindset.
Speaker 1: Richard laments, laments that the Windows Form Designer was so
great and there hasn't been another one since. Well, but
it's because of the pixel based that makes it easy.
Speaker 2: Well exactly. It's also it's just recognized that wind forms
was the anomaly. Yeah, right, like that's it's the weirdo
because it and even that's broken now, like if you
look at the oh, sure at the at the new
version that runs as of what three point one SDK.
It's not pixel perfect because it has to deal with
high TPI screens, right, so they are also adjusting the
render and suddenly even that depends. So what you're saying
is that the zambal controls, the wind UI controls and
layout that you're using, even in a Windows application where
you're going to do most of your development, is responsive.
Speaker 3: Yeah, and that's something like responsive designs was curely a
top of month consideration when we've built hot design, So
your design surface, so obviously you should be using all
the standard like response of panels controls like stack panels
and grids and wrap panels and all that. But if
you look at it from a hot design and how
can we support developers making sure that they're able to
test those various scenarios, there's something in a hot design
and your application barder tup where you're able to quickly
switch between various form factors, and we've built responsive design
as part of it. So when you're defining values for
your properties, when you're defining your bindings, you're able to
set different values per breakpoint to allow for adaptive or
responsive design. So let's say you could define five different
break coins from the widest to the narrow west, and
like per breakpoint, you're able to define value. So we've
created all sorts of extensions to really ease the process
of thinking and considering responsive designs. And that's part of
the maturity process. Right when you've been building apps for
fifteen twenty twenty five years, you know all of these
horizontal concerns that you need to think of upfront so
that you're not stuck and having to reflect responsive one
relying on design systems and the rich stiling engines instead
of like defining on hard coding colors directly or backgrounds
directly in buttons, right, So, like having access to design systems,
defining styles and then being able to discover and apply
these styles to your various UIs is super important, and
that's something that's a first classionism.
Speaker 1: And how is it you have obviously different implementations for
different platforms. Do you how is it laid out in
visual studio or visual studio code? Do you have a
platform's folder and everything that's unique to that platform goes
in there? And are there any differences between you know,
the the high level resources that are the names and
interfaces that are available to one platform over another or
have you absolutely nailed parity in naming and interfaces there.
Speaker 3: So we're close to one hundred percent across all platforms
and not only at the UI, because like it goes
back to whatsunaplatform is just across platform or a framework
And the answer is no, because if you look at
when UI SAPI and the needs you have as an
AD developer, there's everything UI that controls and put controls
and all that, but there's also all these non functional services, right, sensors, storage,
file access, camera and device access, and all of these
have been abstracted because they've been part of the win RT.
So the API is may we cause it MADWA essentials.
It used to be as essentials. So the brand of
these API is plus more being able and available across
all platforms. It goes all the way to gain pad APIs. Right,
So there's all these APIs that have been abstracted away
they can use and really minimizes the need for a
per platform specific code, but you can still Yes, you
have platform folders, so if there's any like platform specific
code or platform specific resources that you have, there's like
file extensions and all these techniques. Wow, for you to
write per platform codes, so you're never stuck. You're not
stuck in a kind of a higher level abstraction. You
can always dig down per platform, but most of the
time you won't need it.
Speaker 1: And for your web platform are you are you translating
that to Blazer? How is that working so today?
Speaker 3: And so no, we're like we're one of the leaps.
So if you look at Malwitz sitting on top of
dot net, dot nine, dot net ten, Blazer sits on
top of web assembly for the fine site, well dot net,
So yeah, web assembly, web assembly for the clients. Sure,
so we're at the same level. So who knows sitting
on top of net for web assembly it's usual net nine,
bootstrapper and everything. So we're really at the same level
as Blazer is I gotcha?
Speaker 1: And that makes sense because you know, Blazer comes in flavors, right,
server and web assembly, And it makes sense that it's
web assembly because that's where websites run really, right, And
and you know, it's more on parody with a with
a client application. Client application has to make API calls
to a server. But it's not Blazer server, you know
what I mean, It's that's a web specific technology.
Speaker 3: Yeah, and like one of our main personas for no Air,
and like enterprise developers that are wanting to create either
internal or customer facing apps at the app dot skill
sets already and they're trying to build web apps first
and formal, So we're not there to build websites with
su considerations and all that. So websmbly makes a lot
of sense because it gets cash and that's super performant.
Speaker 1: Right, and you can you've been doing web assembly for
a while. I remember seeing after shortly after Blazer webssembly
came out, I saw a demo that you guys were
running your UNO stuff on top of web assembly and
it looked really good.
Speaker 3: But if I'm not mistaken, we were there before. So
one day announced dot Netfair web assembly. We were there
on the build floor in twenty eighteen showing a preview
of Uno running on web assembly.
Speaker 2: Yeah, very cool.
Speaker 4: And the infamous calculator app. Right, so I'm not sure
if you guys remember, but we did. We took the
open source Windows calculator and we put it on all
the places. Right, it's not supposed to run, just to
prove that you can. So if you go to calculator
dot platform. You know, you get to experience Windows Calculator
right in the web.
Speaker 2: Yeah, those were lasers sort of existed as an alpha
or a test project at that point. It wasn't Blazer yet.
It was right Steve Standerson's Freak Show. He's like, what
have you done? What have you done? We should take
a break.
Speaker 1: Yeah, let's do that. We'll take a quick break for
some important messages and we'll be right back. Stay tuned.
Do you have a complex dot net monolith you'd like
to refactor to a micro services architecture? The micro Service
Extractor for dot Net tool visualizes your app and helps
progressively extract code into micro services. Learn more at aws
dot Amazon dot com, slash modernize, And we're back. It's
dot net Rocks. I'm Carl Franklin. That's my friend Richard Campbell. Hey,
and that's Francois Tangae and Sasha Chrismanovit from the Uno platform.
And we're just digging in here. And I'm right now,
my mind is pretty well blown. I guess I'm you know,
I'm skeptical because I did. I lived through Zamorin and
zamorin forms and now MAUI and Maui Native has has
It's great, but it has slapped me around a little
bit to the point where if I'm going to build
a new Maui application, it's going to be a Blazer Hybrid.
Because I've been you know, very for very, you know,
ever since even before Blazer, I was really a web guy,
but I really embraced Blazer and I got really good
at it, so I know the ins and outs of it,
and it's very easy for me to just use Blazer
Hybrid just because I've been burned so much by Maui
or the differences in the way things work from platform
to platform, and even doing classes on Maui, I had
to say, you know what, here's this same code, here's
what it looks like in Android, and here's what it
looks like in iOS, and the two are totally different
and in some cases don't even work.
Speaker 3: It goes with the architecture decisions that were taken, right,
So it was the evotion of our informs. We took
a different approach. We really like our mindset coming from
the agency world and knowing that the enterprise and brands
and general would want to favor pixel perfect designs that
would look and behave the sad across all platforms. We
took different approach to instead of relying on native widgets
on a per platform basis and trying to create UI
obstructions where like, okay, we have a standard, let's build
according to design systems to material design system to flood
and make sure it looks and behaves assignment be pixel
perfect across all platforms. So we would still use native
rendering in some cases, like the UI Kit for two
D primitives too, because like it was capable of drawing
rectangles and up seas and text, but we would leverage
a rich shiling engine that's been out there since the
PF right and if you look at the PF VPN
one uied and there's this styling engine with the abstraction
of control ten place where the behavior of a control
is separate from the look of control. And by doing
that we've been able to accomplish same behavior across all
platforms and same look and field across all platforms by default.
If you want to go platform specific and have a
different table button between iOS Android, you still can and
you can tap into these native controls. By by default,
we we offer people a way to like look the
same and pixel perfect across all platforms. And going back
to your point about like being like familiar with Blazer
and a SMaL. That's the great thing we're seeing by
offering tooling and designers today. If I go back to
hot Design for a second, like the number one comment
and piece of feedback we got whereby technical leads saying, oh,
it's going to be so easy for people to start
building apps for we know without even without prior knowledge
of ZAMO, because now you have a visual design tool
that you can drag and drop. You can see all
properties available contextual to your selection. You can see the
values and you're runting app. So the harh moment of
having a text blocked and being able to go to
the text property and see in the binding all of
you the data of your current data context or the
current view model and seeing the current values there so
you don't even have to guess binding expressions, they're right there.
This is what I want to show in this and
in real time it shows as you're setting up your binding.
From the discoverability and onboarding standpoint, it's amazing. So and
as a great learning process because once you've designed something
as a junior developer, then you can go figure out
what the Zammo looks like because obviously updates in real time,
so it's a great.
Speaker 2: And yeah, that turns into a nice interplay.
Speaker 1: As a senior developer, I don't want to know what
this Zammo looks like.
Speaker 2: But it is nice because there's certain cases where it's
like you need to set a whole bunch of properties
and going through the dialogues can be tedious. Once you
see what the layout looks like in the Zamo itself,
it's not that hard to edit and do it yourself,
but it's nice to use the design to get the
initial template right and then tweak it in code.
Speaker 3: You're totally right. And that's the beauty of our approach
of being run time because like, yes, you can leverage
hot design, you're discovering, you're using it when it's efficient
for you, But you can always go back to your
examo and your running app, and then hotteral ticks in.
If you're making a modification and Zamo maybe something that's
not even supported yet in hot design and are like
property grid or something, you can still go back and
Zammo type in those modifications, save your file, and then
hotter real ticks in because your app is still running
and you will see those changes take effect in your
running app, and then hot design will pick them up
new values, and then you can go back and forth
and have really hotter good and hot design work hand
in hand.
Speaker 1: Should we talk about third party tools? Are there third
party tools for Uno? Are they just win UI tools?
Speaker 2: What?
Speaker 4: How?
Speaker 1: How do we what's the story there?
Speaker 3: So there's three categories of third party components that work
with UNO and you win UI API compatible components that
have been like target target then who knows can work.
So for example, the max of Community Toolkit today, they
have a bunch of controls available, data grads and other
component wrap panels, expanders. They all work what you know
because they've been recompiled for who know as well. So
this is the first category of components from the win
uy ecosystem. Last year we've introduced malw embedding, so any
mail we control. If you're obviously just targeting the platforms
that MAW supports, so it was Android, the Windows, and Mac.
You can leverage any Malwi component and embed them into
your owner application. So we're able to tap into this
ecosystem as well. And the third and equally important is
Skia based components sorry Skia, So we can use any
Ski component because like we support Skia canvases and who knows,
we can use these third parties kiabased component like maps, uy,
live charts and all these components work. What do you
know as well? Wow, so it's really a rich ecosystem.
Speaker 4: And then there's the fourth So you have choices from
those three. But if there's something that is not fitting anywhere,
then we also have our own UI toolkit as well.
That you know, fran so I can talk about exactly
which ones they are, but they work seamlessly with the
extensions that we have and things of that nature. So
that and that cross platform first.
Speaker 3: So wow, yeah, so we had to create additional We
created additional controls to fill in some of the gaps.
So because we implemented when UI is contract and this
is like what we ship as our core seat of controls.
When you Y has always been focused on desktop first
experiences and we might we have been focused on mobile first,
you could argue experiences. So there is controls like the
bottom tap bars navigation bars that war necessarily needed for
desktop that we've added to our own tool kit as
an expansion pack of additional controls that are typically required
in cross platform scenarios. But you can always because we're
typing sitting on top of native UI kits, you can
always go platform specifics. So we've had customers do we
know for a web assembly, but then they've taken this
JavaScript based map component or calendar picker or something like
that that was specific to their needs and embedded it
and there wasn't target like you can obviously but web
views on the other platforms, but for websit it makes
a lot of sense, rich text edit terms and stuff
like that.
Speaker 2: Yeah, because it's still early days for hot design, right,
like you always only really showed this off in November
last year.
Speaker 3: Yeah, So we've been running a private alpha with like
top influencers and people we for whom we care about
their opinions for them to really provide valuable feedback. We've
announced our private beta at dot dot com and we're
by the time you will go live with this will
probably be in public beta if all goes well.
Speaker 2: Because I see join the wait list on the site
right now.
Speaker 3: Yeah, So like, but that's true, that's a mess of changing.
So we're gonna go with our public beta to gather
additional feedback. Now that we've been running a private beta
and I got like amazing feedback, We're we're ready to
go with a public better.
Speaker 4: And I think those some of those conversations we were
having with those one hundred about one hundred people that
we interviewed that was very interesting and eye opening. And
you guys may relate to this, but a lot of
people told us, hey, this is how I learned to
code right back in the day, and when we talked
to Microsoft as well, that there's a there's a I
think a great hope amongst all of us is that
this tool will help bring even more developers to dot net.
Speaker 2: Yeah, that that designer code interplay helps you, you know,
drag and drop your way into seeing what the code
should look.
Speaker 4: Like exactly exactly and staring at that kind of like
a you know, blank blank project if you will. Even
having a great hot fill out, which we do have,
it's one thing, but when you were designing with you know,
drag and drop and maybe other things as well in
the future, then you're able to to really accelerate and
learn a lot quicker. So there's that That's why you know,
we have. We've got lots of support from from Microsoft
along the way. We've got some stage time. I'm a
dot dot company. We've actually you know, I need to
brag here.
Speaker 2: Yeah, I was going to ask you how'd you get
this in the dot com?
Speaker 1: Yeah?
Speaker 4: It was a number one trending news day three. It
was the top top news.
Speaker 2: On on x wow.
Speaker 3: And we could have guessed that, right because.
Speaker 2: I remember it was very Folks are really stoked about.
Speaker 3: It because we've all been asking for something like this
to be built for ten to fifteen years. Right, once
you've tasted it back in the days, like you're like,
it should be possible to build something center for cross
platform apps, right, And that's what we said ourselves on.
Speaker 2: Yeah, apparently it's hard because it's been years, right, Like
this is not a simple thing either. I mean I'm
interested how Microsoft reacts this in general. Like in one way,
it is like this should have been in the box.
But now that a quote unquote partner, not that there
really is the VSIP program anymore. And I'm using acronyms
visual studio Industry partner. Like what's upon a time in
the good old days, like there were gathering and things
in Microsoft brief to you guys, and you know, we
all all work pretty closely together. But that's that's kind
of ended. So yeah, I'm just interested how Microsoft reacts
to this.
Speaker 3: They've been an amazing partner. Like we're building on top
of dot net, we might encounter some blockers sometimes, like
we want to contribute as well back to the platform
and runtime drone as a contributor to dot that runtime.
So like, they've been an amazing partner. We have a
chance to meet with them frequent free to provide feedback
to surface some of the tooling issues or like in
compatibilities that might be like with Visual Studio for example.
So like they've been amazing.
Speaker 4: Yeah, yeah, and I'll go back there to you know,
what Microsoft cares about and and a couple of the
technologies you tossed out there during this in interview. So yeah,
Microsoft doesn't necessarily care as much about adoptional Blazer or
or our Mauo'd rather they're not selling either Blazer or Maui.
But they don't care a lot about adoptional dot net,
and we promote the usage of dot net. We are
most closely compared to Usually like if a name comes up,
a technology comes up during discussion it's Flutter, so we're
most aligned. They're kind of from that vision for the
dot Net.
Speaker 2: You can't argue with Flutter's approach to mobile client development.
It's it's a very compelling metaphor dart notwithstanding not that
they'll come to appreciate like the language doesn't actually matter
that much that it is about the framework and their
design language for how you talk describe a mobile app
so that it works on iOS and andrant pre compelling.
Their path to desktop is not good. You know, they've
got the other problem, but that's the same problem Zama
Informs had, except it also was a battle to make
it work for the phones.
Speaker 3: And they've been a great baseline and benchmark for everything
we've been doing in terms of comparing and that's why
we've invested, for example, so much on at or hotter Lood.
So like you would think dot net offers read out
of the box, and yes they do, but there's temptations
and then you need to interpret those changes as a
cross platform UI frame, right, and so that's why we
came up so right now with load and know you
have visual indicators, so you know when changes are being applied.
You know what got applied, so there's no unknowns or
you wandering like why didn't that change get applied? And
you're able to see all those changes both from ZAMO
and c sharp being applied in real time and not
only in visual to you for Windows, but across all
ideas start getting all platforms from any operating system. So
that's a mindset and that's something you would have expected
from Flutter and being able to mimic that richness and
dot net ecosystem has been like super important for us
and for our clients.
Speaker 2: I mean, would a Flutter developer want to use the
UNO platform? Is that a possibility?
Speaker 3: Well, if they're willing to jump back and dot net train,
for sure.
Speaker 2: I guess that's It's nice over here. We love you.
Speaker 1: I think, you know, we talk about you know, why
hasn't this happened before? And you know whatso why is
Malie so hard? And all these things? And I think
if you understand market incentives and you just think for
a minute, you kind of get it that. Hey, for
me the developer, I want to put out an Android
app and I want to put out an iOS app.
But for Apple, Apple doesn't care about parity with Android
and Android doesn't care about paroity with iOS, and I
would go to say so far as to say they
want to stand out. They want you to develop for them,
not for their you know, you know, for their competitors.
So so that therein lies the problem. Whereas like in
the browser world, right, you know, Opera and Edge and
Firefox and Chrome, they all have an incentive to make
the experience the same on all browsers, don't they. And
that's why HTML five comes around and says we're going
to you know, this is the standard that you should
all have because of something. If a website looks good
in Chrome and it doesn't look good in Firefox, who
are they going to complain to Firefox? So Firefox doesn't
want people having a negative view of their browsers, so
they want to be on parody.
Speaker 2: Yeah, I know. I think the battle air was in Safari, right, like,
because Safari did lag on some of those HTML five
features and got punished for it. Not that they don't
have a captive market.
Speaker 1: Well, they were mostly interested on people developing for iOS,
So Safari was kind of like, yeah, we'll get around
to that.
Speaker 2: I think your core point here, Carl is the only
person that cares about cross platform developed develop is us. Yeah.
The customer doesn't care. They just wants to run their device. Yeah.
The vendors don't care. They just care about their device,
Like we're the only ones that care.
Speaker 1: Mm hm.
Speaker 2: Well and France one Sasha care for us too, because
they're trying to help us too.
Speaker 1: I thought they were included in us.
Speaker 2: They are us also, but it's recognizing that we're in
the middle here where above us and below us. This
problem is not important to them, yep.
Speaker 3: And it's a great opportunity for us to make a
difference right as there's.
Speaker 2: This gap because you always, you always have this problem.
It has to run on iOS and Android, and it
needs to have parody like the stink I've heard where hey,
we use native and new features came out on iOS first,
and the Android people are furious. Like in some ways
you need this hybrid mobile development because you want to
ship the feature at the same time.
Speaker 4: But it's always just a matter of time. Even when
you speak right now, you talk about cross platform and
you're mentioning two platforms and maybe the third one, right,
But it's it's not really like that, right, It's it's
cross platform in it's truest sense cross platform anywhere. Right,
it's just a matter of time you develop your cross
platform mobile app and then the next thing you know
is the management is asking for how about platform x? Right?
Speaker 3: And something I don't feel we spend dearly enough time
talking about is like it goes back to what's soudo platform?
And that's a name. Right, there's a cross platform UI
framework aspect of it. And that's an important because obviously
you want your buttons to be working and behaving the
same everywhere and looking the same everywhere. But there's everything
else that take to build real enterprise adds. Right, So
how do you deal with navigation and a responsive mindset?
Speaker 1: Right?
Speaker 3: Like this on that deep linking and then authentication and
then refreshing of tokens and each peer requests and serilization
and logging and having different configurations for dev QA staging
productions and all these aspects of building software times six
or seven when you're looking at it from in a
cross platform world, and that's where who Knows stands out
in my book, is like, yes, there's a cross platform
your wife framework and we get asked how we compare
to others? But all the other patterns and recipes and yes,
like that's my influence, the patterns and practices back. But like,
how can you build everything that's required to build an app?
How can you offer obviously obtain you don't want to
lock them into a black box of like here's how
you code software, but like there's like design systems and
all these toolkits, and how do you deal with the
nutches and the safe areas and the system tree colors
when you're like your foreground background colors change, Like, there's
so many challenges and that's why it ends up taking
five thousand hours to build an app when you would
have expected it to take five hundred, Right, so how
can we make everybody ten x developers?
Speaker 2: Well and that was even the hard part. V one
was one thing. V two is worse. Yeah, right, Like
then you try and make changes to it, oil boy,
Like that the nature of mobile development. But we've seen
folks battle with and still I'm still talking to platforms
like when you add more, this gets exponentially worse, it
gets slower. It's it's really hard to keep moving forward.
I obviously iOS, Android, what do you typically the next
one is web? But then do you have folks also saying,
oh what, I want a native Windows app and I
want a native mac Os app and now it's five.
Speaker 3: Yeah, we have many ISVs or inputent SELFTW revenders that
have been creating apps on Windows step only and they've
been pressured to go to other platforms and they're modernizing.
But yes, we do have like other customers that are
web only because it's their primary method of deploying.
Speaker 2: It's the safety play.
Speaker 3: Yeah, it's safety play. But some of them are in
the manufacturing sector and they only care about embedded Linux devices.
Speaker 2: Yeah, how much of that market is like that, that's
just not on these typical platforms. It's I mean to
presume it's small. It's not zero, but it's small.
Speaker 3: No, obviously it's on the lower end. But they're equally
important to us because of the promise of the platform,
so we make sure we support them equally.
Speaker 2: But yeah, I must say they're money makers, like those
are good customers, like they they will they will stay
with you, and those those apps don't go away. Anything
running in the manufacturing floors of what they persist are
therefore work. It's a good product. Where you know, a
lot of mobile apps are pretty transient come and go.
Speaker 3: It's not a big yeah, and they're probably the customers
that have been the most excited by what we are
shipping with the hut deesiling right, because now you have
a running no app on a physical Raspberry Ply for example,
and you're now with a wig Dragon dropping components on
that running device from your tool and.
Speaker 2: So you're poking code into that already running device remotely
like Voodoo and the and the UX changing.
Speaker 4: It makes makes for some great demos on keynote stages.
I'll tell you that for sure. Yeah, now wait to
do it again.
Speaker 1: They kind of do that with hot reload in an
iOS thing too. It's they just put a shim in
there that looks like an app, but it's not really.
Speaker 3: But in our case, it's the actual running app. It's
a designer. It's the actual running app. We're sitting on
top of a reload. But now we have the design
surface that actually, because it's we're laid in the app,
you're able to like drag and drop components onto your
running app. Yeah, and that's why, like we've some of
the were pet depending on hot design because it's a
unique spind of like being a run time experience.
Speaker 2: Now, I remember were talking to the hot reload guys
and they were also saying, like there's a threshold of
change where it goes, Oh no, no, we really actually
need to recompile. Like they got to think there's certain
ever changes you can make that are going to work
in the context, and at some point it's going to
go and give it a cycle, please, And.
Speaker 3: It keeps me up at night, like all do is
rooted it, and like how can we minimize them? And obviously,
in some like specific cases, if you're modifying lambda expressions
through your source generators and all that, there's still some
edge cases. They've been they've been an amazing job at
like minimizing those cases.
Speaker 2: There's always going to be some edges, but and it's
always going to be certain developers you'll like always hit
the edge. Is there mean that way?
Speaker 1: My experience is in hot reload, if you're just changing markup,
it's fine. But if you start changing adding code, removing code,
that kind of thing, yeah, where you're going to have
to restart.
Speaker 2: Yeah, it's fair.
Speaker 1: So so my next question is you guys have obviously
answered the burning questions for me. There might be more
burning questions from our listeners, which we'll get to you know,
if they leave a comment on the website. But what
about what is the biggest question you get from people
who Okay, I have the UNO platform downloading and I'm
working with it. What seems to be the biggest stumbling block,
if any.
Speaker 3: So in the past, for sure, there's been some friction.
Then we've been working hard on removing this friction. So
you an example, like we've invested massively on what we
call no check. So it's a tool that allows you
to set up your environment with all of your dependencies right,
So like you start with that, it sets up everything,
it tells you what's missing, it fixes it as it
was based on a fork. Now we add something some
miracle maw we checked for a while.
Speaker 2: We we.
Speaker 3: Forked it and added a lot to it. And now
with our upcoming release, if you open a solution in
your ID, we'll run and we'll check in the background
and tell you, ay, like these appendances are missing, like
don't even try to build, you should go fix these first.
So making sure that we remove as much friction as
possible and the set up phase of your project has
been extremely important. Facility and boarding.
Speaker 1: The latest Android STK for example, all of that stuff
license agreements.
Speaker 2: I remember you trying to do workshops on the SAM
informs where you literally blew the first half of the
day getting everybody's configurations.
Speaker 4: Where yeah, what I want to add, so Francs obviously
focusing on some of the big things that you had
ended up heard in the past and then ended up
fixing it with no check with hot Design is you know,
we we are getting questions on you know, okay, so
how do we make this all work with AI because
at the end of the day, it is it's all
about productivity. It's all about staying in the flow. That's
that's what we're aiming to do with hot Design.
Speaker 2: Uh.
Speaker 4: And then you know, that is the question that we
get quite a bit, and Francois has a I think
a better answer than me here, but let's give the mind.
Speaker 3: Yeah, it's an interesting question that we get. So, like,
what's great with the approach we took from an architecture
standpoint when I said earlier on that we're when you
I e PI compatible, so you can look at out
of the box vanilla models and they've been trained unavailable
like when UI augmentation code samples and all that, so
you're able to create who know UIs with existing the
lambs because they've been trained on when UI and works
out of the box, because we're when you YPI compatible.
The way we're looking at it from WHO Studio with
our hot read experience and hot design experience is like,
how can we improve productivity? Like, obviously there's one end
of a spectrum where you know what you're doing, so
we want to facilitate that by offering a design surface.
You know what you're dragging and all that, and you
know where you're going. You might have an existing design
and in that case you can use We have a
design to code solution where you can generate all of
your UI code from your FIGNA design. So we've automated
this process as well as opposed to having to suffer
through the traditional design handuff process of like looking at
red lines and calculating margins and rep kating UY code manually.
So we've automated adapt But if you don't have a
design and you're building yourself, there's a valid question to
be asked, can you use AI to generate and iterate
and co create with AI? And we see it as
a great copilot is experience, right, so it's there. It
can give you some initial prototypes and then you can
tap into have design to modify these product types, as
opposed to having to go back to AI like as
almost a destructive kind of experience. Today, if you're looking
at the AI builders, you're telling them, give me a
studio app, and you'll create something, you'll guess something, and
then you'll look at it and you'll say, ah, not
exactly what I wanted. Let's remove stuff that I didn't
want to have, right, So it's really negative kind of
experience where you're removing stuff and you're waiting to see
the outcome, and that's not really why what I wanted.
As opposed to when you're focusing on tools that you
own and master, you're able to build faster exactly what
you want to have. So there's probably some middle ground
there and where you'll be as you'll be assisted by
AI to generate initial prototypes and then tap and leverage
heart design to refine what AI came up with.
Speaker 1: So what's next, what's on your wish list, your inbox?
So like obviously our absolute focuses on hot design. Our
underlying platform is prestable. We have No six coming soon
as well. But like from an Uno Studio sandpoint, we've
gathered tons of feed as to like how can we
build more shortcuts and accelerators, so extracting styles like supporting animations,
like supporting more features and hot design, having more advanced
ready to use templates and widgets right where you can
drop in maybe a lugin screen or a settings page
or things like this. So there's tons of gines there
to improve.
Speaker 3: Productivity further and all be your a real focus for sure.
Speaker 1: That's great.
Speaker 2: And where can we get it?
Speaker 4: Platform slash Hot Design.
Speaker 1: Platform dot Slash hot Design. Is that just for the
hot design stuff or is it platform dot you are
basic everything landing page.
Speaker 3: Yeah, you have everything on platform so you can get
started from there. You can set up your environment so
you can get access to the entire platform studio stack
with hot reload and hot design as well, including our.
Speaker 1: Figma fantastic And I just have to ask how much
is it TVD? It is?
Speaker 4: It's actually a great question. I'm glad to ask because
people are people have asked that. There are a bunch
of research and it's gonna be competitively priced if you
want to compare your typical developer accelerators out there. It's
gonna be in that am. That's what we see, and
I think that's essential for well, for us to sustain
and maintain a platform. I think that's one big topic
that kind of flares up in dot net community every
so often. So you know a lot of people there's
been day they change policy, they change thing, and all
this kind of stuff. We're not so right right from
the go via making a big promise that onun a
platform itself will I mean open source.
Speaker 1: We want it for free, but why doesn't it have
these features exactly?
Speaker 4: So, as far as a platform goes as the the
platform that powers all the all the targets, target frameworks,
the target target platform, target operating systems, it's going to
stay free and stay open source under patchy tool and
these optional add ons and accelerators on top of on
a platform will be paid. They'll be very developer friendly.
Dricing that that I can tell you it's really locked in.
Uh yeah, but you're right. I'm glad that you asked
because it's well, yeah, it will be paid, and it's
gonna be it's gonna be.
Speaker 1: Fair, Okay, And so you're talking about the designer, hot design,
that kind of stuff which is really innovative, and you
said gonna be so right now? Is the free in beta?
Speaker 2: Is that what it is?
Speaker 1: Is?
Speaker 2: Okay?
Speaker 1: Cool? Guys, this is great.
Speaker 2: Every time I talk to you.
Speaker 1: Congratulations, charge, yeah, congratulations absolutely all right, Well we'll talk
to you next time, dear listener on dot net rocks.
Dot net rocks is brought to you by Franklin's Net
and produced by Pop Studios, a full service audio, video
and post production facility located physically in New London, Connecticut,
and of course in the cloud online at pwop dot com.
Visit our website at d O T N E t
R O c k S dot com for RSS feeds, downloads,
mobile apps, comments, and access to the full archives going
back to show number one, recorded in September two thousand
and two. And make sure you check out our sponsors.
They keep us in business. Now, go write some code,
See you next time.
Speaker 4: You got jam Vans
Speaker 3: And