Speaker 1: How'd you like to listen to dot net Rocks with
no ads? Easy? 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.
We'll get you that and a special dot NetRocks patron mug.
Sign up now at Patreon dot dot NetRocks dot com. Hey,
welcome back to dot net Rocks, the Internet audio talk
show for dot net developers. I haven't said dot in
about twelve years.
Speaker 2: There you go.
Speaker 1: I'm Carl Franklin, an AMATE account. We got the UNO
guys here with us today. I'm really psyched about that, Richard.
But what's new with you?
Speaker 2: Well, the theory. It's twenty twenty six now. Of course
we're still recording us back in twenty twenty five. But
I'm back home after what ten weeks of travels?
Speaker 1: So yeah home, good gy levanting, Yeah good.
Speaker 2: There was much manting.
Speaker 1: I don't really have much small talk other than to
say we should probably just roll the crazy music for
better no framework, all right, all right, So I have
never used a media manager like PLEX or anything like that,
but I know people love these things. Sure, And there's now. Well,
I don't know if now, but it's trending. A free
software media system on GitHub called jelly Finn. Have you
guys heard of this? Oh yeah, no, Sam Jeron, have
you heard of this thing?
Speaker 3: Yes? I heard a bit.
Speaker 2: Ok.
Speaker 1: Yeah. So it's a free software media system that puts
you in control of managing and streaming your media. It's
an alternative to the proprietary MB and flex to provide
media from a dedicated server to end user devices. We
have multiple apps. It's descended from MB's three point five
point two release, imported to the dot net platform to
enable full cross platform support, no strings attached, no premium
licenses or features, so you know, naturally, I think our
listeners will like that.
Speaker 2: It's nice.
Speaker 3: Yeah, as long as it's containerized, that's good.
Speaker 2: Yeah.
Speaker 1: Yeah, well it's dot net, it must be able to
be containerized, so no learning. Love it. That's all I got. Richard,
who's talking to.
Speaker 2: Us, grabbed a comment of a show nineteen eighty, the
one we did with Gary ewen Park. We were talking
a bit about package management of the whole. Got a
couple of nice comments off of that one, not the
least of which saying, hey, thanks for uniget ui. That's
just what I needed. Yeah, but a comment I wanted
to read was from Lucas, who said, hey, can you
keep the yearly intros please, especially the tech and aerospace parts.
It's extremely enjoyable, like drinking hot chocolate with marshmallows. Very cool. Nice.
Speaker 1: Yeah, we got a mixed bag because we got one
comment that was like, geez, it's taken so long to
get to the guests.
Speaker 2: All right, it's always a question should we just cut
right to it or do you know there's preambles useful?
Speaker 1: But well, the good news for these people who find it,
you know, too long, is that next year will be
done because we'll catch up to twenty twenty five.
Speaker 2: We're gonna hit two thousand and two and loop out.
Is that what's going to happen?
Speaker 1: Okay, twenty twenty six, No, twenty twenty six, Yeah, twenty
twenty six, Okay, yeah, that'll be the last one in
Maybe that's you know, arguably, we could probably stop now
because everybody was probably born back in these days.
Speaker 2: Yeah, I know, we don't want to get too far
in the future. Then what will you do?
Speaker 1: That's true.
Speaker 2: Lucas goes on to say, you kept going back to
how crazy it is for someone to be running a
dot net framework in Windows twenty twelve system. Personally, I
you know a few like this. They were built, deployed
and there is no more budget to do anything with
it except basic maintenance and bug fixes. Not looking far
the core component of Power Platform Data versus Dynamics CRM
twenty eleven with some makeup on it. I guess was
our ad ins runs on. Iis with ASP dot net
web forms and dot net four six two the plug
in samdbox, which is where most of the business logic
lives on twenty twelve. This is a premium Microsoft business
offering that still runs on old tech because of backward compatibility,
upgrade costs, and loss of talent because these days everything
is outsourced, right, which is interesting because that you know,
how long before you cannot outsource work on a four
to six y two app? You know, like those people
will eventually go away too.
Speaker 3: Hey it's gonna help, Yeah, we can tell.
Speaker 2: Well that's you know, you make the perier points you're own,
which is that modernization tools have been gotten dramatically better.
Oh yes, like the the use of LLMS in modernizing
old applications and so forth. Means you just don't need
the same skill set to rehab these things. So it
is interesting to see how these things move forward. But Lucas,
thank you so much for your comment, and a copy
of music Code is on its way to you. And
if you'd like a copy of music co buy, I
right a comment on the website at dot at rocks
dot com or on the facebooks. You publish every show there,
and if you comment there and I reading the show,
we'll send you copy of Musico.
Speaker 1: Music to Koba, still being used by thousands of developers
to stay in focus. Twenty five minute long tracks. There's
twenty two of them now. I'm still working on twenty three.
But that should be here before Christmas, which means that
you already missed it should be already here. Okay, yeah,
So yeah, that's it. Music to go by dot net
if you want to get the collection in wave, flak
or MP three formats. So let's talk about what happened
in nineteen eighty four, and so much stuff happened. We're
going to keep this list pretty short, sure, because this
is episode nineteen eighty four. Brunei gained full independence from
the UK on January first, and Derek Gandhi was assassinated
Prime Minister of India on October thirty first. The first
embryo transfer on February third, from one woman to another
resulted in a live birth.
Speaker 2: Wow.
Speaker 1: Summer Olympics for held in Los Angeles from July twenty
eight to August twelfth. Van Halen released their album nineteen
eighty four on January ninth, which was a huge hit.
And there are so many good movies that came out
in nineteen eighty four. I'll just list a few. The Terminator, I'medais,
Once Upon a Time in America, Indiana, Jones and The
Temple of Dune, Ghostbusters, Nightmare on Elm Street. This is
spinal tap, moment of silence for Rob Reiner. Yeah, very sad, Gremlins,
Beverly Hills Cop and the Karate Kid.
Speaker 2: That is a crazy roster crazy Yeah.
Speaker 1: The Karate Kid, Holy crap, I mean yeah. And that's
just like the top ten. So that's what I got.
Richard talk about space and technology in nineteen eighty four.
Speaker 2: All the action in space in nineteen eighty four is
shuttle flights, primarily. I'm not going to go with all
those actually six of them, three for Discovery and three
for Challenger, which is interesting because like, how are they
going so fast? Because this is before the Challenger disaster
and everything slows down. Columbia doesn't fly at all in
nineteen eighty four. I fect you won't fly again until
nineteen eighty nine because she's in the midst of a
refit having flown the first six missions and now is
going to have her objection seats removed and some other
upgrades and things done to her. Of the most interesting
flights for that year. This is the year of the
manned maneuvering unit. So the fourth flight of Challenger STS
forty one B Bruce McCandless puts on a suit basically
a space suit with a chair attached to it that
he can fly, and he's now his own portable spacecraft
and does the first other completely untethered flight away from
a shuttle and first time any human's ever flown completely alone.
Pretty amazing in a space He went about three hundred
feet roughly ninety meters away from Challenger. Apparently one of
the goals of the mission was at some point he
was supposed to turn away from Challenger and like look
Out in the darkness of space, and he never did it,
so I strongly suspect he was a little nervous out there.
Apparently he was really cold, actually turn the cooling systems
off to try and stay comfortable. But this is the
only year that the MMus will be used, and they
will be used later. There'll be another mission where they'll
launch a pair space of satellites Westar six and PAPLA
B two, and neither one of them will actually fire
their boosters and go into their correct orbits, and so
later that year they'll come back out in another shuttle
and use the MMus to retrieve those satellites, repair them,
and finish their flights. There was one other mission, the
Solar Maxim mission, where they tried to use THEMMU to
retrieve the satellite but couldn't lock onto it. There was
things in the way, and so they ended up doing
it entirely manually by getting the shuttle close to enough
to it and stopping it by hand. Wow, with three people,
a little crazy, but that is nuts. They were able
to retrieve the smm and repair it and get it
on its way. So you know, this is a period
of shuttle and I think a lot of people have
forgotten about where they were launching satellites, retrieving and repairing satellites,
all of which will end in nineteen eighty six after
the Challenger disaster. And so the MMU was used on
three flights in eighty four and never used again.
Speaker 1: How much money did they spend on all that stuff?
Speaker 2: Quite a bit?
Speaker 1: But yet billions and billions.
Speaker 2: Yeah, it's not that expensive. Okay, this is the year
that Ronald Reagan approves a space station design. The time,
the specification was for less than eight billion dollars and
no more than eight billion dollars. They were very wrong
about that. There were eight different designs proposed. The ones
selected they called the Power Tower, which is actually kind
of similar to the ISS. It had four big solar
panels about seventy five kilowatts worth and a long main
spine that would house various units. This is not the
course of the station that would get launched. They were
supposed launch just one in nineteen einety one, and it
would be built over twelve admissions. The ISS, of course,
comes almost a decade later, with far more international cooperation
and a lot more flights. On the computing side, this
two different computers launched by IBM. This, of course, the
original IBM PC was a few years before. This is
the year of the PC junior code named Peanut Oh,
with an eighty eighty eight one hundred and twenty K
of RAM. It was about thirteen hundred dollars and a
complete failure. They sold a couple hundred times. But also
the year of the model fifty one to seventy, also
known as the PCAT. This was a much more expensive machine,
about six thousand retail when it came out with a
two to eighty six six gigahertz later upgraded to or sorry,
six megahertz later upgraded to eight megahertz. You get it
with two hundred fifty six or five hundred twelve K
on board upgradable to three and a half megs with cards,
a twenty megabyte hard drive. That was the AT part
and the ever amazing EGA or in ANST graphics. Yes
that's right, six forty by three point fifty with sixteen colors.
Sixteen colors, yeah, on a nine pin connector.
Speaker 1: I upgraded from an XT turbo clone to an AT
and then to a three eighty six later, and at
each level I was like, oh my god, this is
faster than anyone will ever need.
Speaker 2: It was such a big.
Speaker 1: Because I was judging it by how fast it printed
text on the screen. That's it.
Speaker 2: That, you know. This is the horsepower race. Same year
that the famous Apple nineteen eighty four commercial comes out
at the Super Bowl. It is shown exactly once and
announces the Macintosh computer, which we released later that year.
Also the year that CD ROMs, initially made by Sony
and then by everybody come out in the idea of
multimedia in computers, the idea that we'd have music and
sound and graphics and video all synchronized.
Speaker 1: I remember that year there was a mac commercial on
TV where father is putting together a PC and he
says to a kid, want to see some dinosaurs? Billy, yeah, Dad,
all right, let's any guys typing configus. He's like, dinosaurs now, Dad, yeah, yeah, yeah,
hang on a second Auto exec bat buffers dinosaurs, Dad
yeah yeah, give me a mite, you know, And then
he finally says, I'm going to David's house.
Speaker 2: He's got mad nice.
Speaker 1: It was just the first and a whole bunch of
slam rubbit in Windows Faces commercials that would come later.
Speaker 2: Last, but not least certainly not for me. The book
Neuromancer is published by author is William Gibson. He's out
of Vancouver and he's the guy who coined this term cyberspace.
Right well, writing that book on a wedgewood typewriter. Awesome, yeah,
very cool. Apparently it's finally being made into a TV
show or a movie or something after all these years.
Speaker 1: Awesome, all right, Sam and Jerome, we.
Speaker 4: Are, yes, sir, And for what it's worth, I really
enjoy the year Retrospectives and Past twenty twenty five, twenty six.
I think you should go on for at least another
one hundred more to see how far off we are.
Speaker 1: Going to the future. Right all right, Well, that was
the voice of Sam Bassu. He's a technologist, author, speaker,
Microsoft MVP and developer advocate for the UNO platform. With
a long developer background, he now spends much of his
time advocating modern development platforms and AI tools for cross
platform technology stacks. His spare time, this is the best part.
His spare times call for travel, fast cars, cricket, and
culinary adventures. And you can find him on the internet.
Speaker 4: Sure, I am so thank you for having me. I
think it's my fourth or fifth with you folks, and
Jerome Provd is the same.
Speaker 1: And Jerome Lebon is here. He's been programming since nineteen
ninety eight, mainly involved in dot net and see sharp
development as a teacher, trainer consultant in France. He is
the CTO of the UNO platform, a framework trying to
improve the development cycle of cross platform apps using Windows, iOS,
Android and web assembly using Mono and zamorin Welcome Jerome.
Speaker 3: Well, thank you, well well anoyse that mean, it's been
a while. It's the it's full dotte that now and
uh and of course you all right others, So yeah,
it's been it's been a while. You know, technologies have
been evolving.
Speaker 1: Somebody needs to update their bio on the UNO website.
Speaker 3: Oh yeah, I do need I do need to update
that for sure, probably step in some of a I
then it's been yeah, I've been doing that for for
a few months now.
Speaker 1: It's you changing, yes, yes, well, welcome to you both.
And it's been a while since we talked to anyone
about who know for you know, for a while. But
bring us up to speed. What are you guys doing,
What are you working on?
Speaker 4: Yeah, let me start and thank you again for having us.
So I'll go start with the basics here, because I'm
sure Jeri has talked about it like a thousand times now.
But you know, here we are end of twenty twenty five,
starting out twenty twenty six, and UNA platform as it
stands today is the most flexible, mature, open source stack
for dot net developers to build cross platform apps that
simply run everywhere, single shared code base. But you know,
we take you to iOS and Android for mobile, you know,
web browser web assembly that's done, and then Windows and.
Speaker 1: Not using Mono or zamorin right.
Speaker 3: No, no, no, actually no it is it is. It
is Mono for the web. Yes, it's the Mono VM underneath.
So you know it's not completely outdated. Okay, it's moving,
you know, Maxaft is moving to use corclr on the web,
but it's not there yet.
Speaker 4: Okay continues Yeah, and then all of the you know,
desktop and embedded devices, Windows, mac Os and Linux and
everywhere else you want. So that's the stack, and that's
always been open source and very welcoming to everybody. We
have been working a lot on tooling, trying to squeeze
out every bit of productivity that we can from developers.
Speaker 1: And I know it's been a while since we talked
to gave the elevator pitch about UNO. But what is
the the UI technology that you're using, Like you know,
some people use Ammal, Blazer uses mark up. What is
your stack?
Speaker 3: So yeah, so you know is enzammle. You know, so
Zammal and sea Sharp. So we have two ways for
people to to do UI in that sense, we know
that not everyone's using Exammle or love Examle. So that's
why we introduced a few years back sea sharp markup,
so there's a way to pretty much express the same
UI but using Sea Sharp constructs. The Sambal flavor is
is the win UY one and so it's using the
same type of type of constructs that that winnipe is
DK and and win Uy three has been using for
a while. So we're providing that that same that same experience.
On top of that, we we have also everything is
non uy and that's the important part pretty much, you
know win our team, so we're talking about sensors, file
system access, resources, access, you know, networking and everything like that,
and that that is another core component of we know
to be able to provide unified a p I for
actually saying everything, uh, using one code base everywhere.
Speaker 2: So how does dot net ten impact you guys, because
we just got past the latest dot Net cop and
there were a lot of announcements and obviously a new
version of the framework.
Speaker 4: Yeah, so I can tell you that. So huge performance improvements. Obviously,
you know we all wait for Steven Tubes. Uh, you know,
novel of a blog post, the greatest blog post ever,
right right, to have to take two days off to
read it. But it's amazing. And every you know, November,
we get a new dot Net and every time there
is you know, new performance tuning. So absolutely we gain
all the performance improvements. But also dot net is a
very you know, open and welcoming stack, so we actually
partner up with the dot net teams over at Microsoft,
and you know, we have very you know deep expertise
in certain parts of the dot net stack, especially how
it relates to iOS and Android and you know native
AOT and Skia rendering, so we actually help and maintain
parts of that stack. So it's all out in the open.
So we are collaborating and you know, moving the whole
ecosystem forward.
Speaker 1: Together, modernizing existing applications to dot net ten. Isn't just
an option now, it's necessary. I mean we I have
a customer that we are doing that with an aspnut
web forms application. In some cases they were creating UI
and concatenating strings of HTML together with code, and we
changed that to use dot net ten and span of
T and we got up to a five thousand percent
increase in speed. I mean, you think about that for
a minute.
Speaker 4: Yeah, it is nice.
Speaker 3: Yeah, the performance improvements are there, you know, everything related
to span and to you know, refstruck and everything like that.
We're using that extensively inside of you know, and every
every duration of dot net is bringing us you know,
significant performance improvements and uh, you know, it's it's always
a pleasure to see, as Sam said, and you to
see h uh, Stefan will provide all of those two
bits of information for each platform, and you know, we're
we're seeing in the future, you know, everything that's that's
converging to core c l R having the same kind
of improvements everywhere the web is going to be very
interesting to see in the upcoming version of dot net
to have the same kind of you know, uh, smaller
and down to the down to the up codes. They're
executed in every single platform and wasn't included. Getting everything
you know, optimized to the to the maximum is going
to be very interesting. So it's uh, it's very nice
to see for at every iteration, you know, to the enhancements.
Speaker 4: We need tooling to be good with what we do.
So VS twenty twenty six is out of Visual Studio
called ships so often, so it's a good time.
Speaker 1: I love twenty twenty six, really good stuff.
Speaker 2: Hey.
Speaker 3: They also improved the workloads of dot net. You know,
it's been the most infamous part of of not that deployment.
Uh you know, it was it was being used by
OS and Android for for a long time that wasn't
started using it and then Spider uses it now. So
it makes for everything go a lot faster, a lot
faster and smooth. And it's been a while since I've
wined against anything related to workloads, so it's a good
thing they've improved that quite a bit. And uh, you know,
we we have no check when when you want to
install and start with we know, so we start with
no check and then and install everything and we just
call that up installed everything that's needed and off you go.
It's it's getting very easy with to start to get
started without that.
Speaker 2: Yeah, I'm always finding an interesting schism between you know,
where do beginners go because people tend to send them
to Visual Studio Code, but then they still have to
figure out all of the bits they're going to need.
Where Visual Studio has everything in there, but it's so
intimidating when you fire it up, like it's kind of unfair,
like it has all the things you need and yet
you just struggle to find them or even understand what
you're looking at.
Speaker 4: Yeah, different beasts. You know, Visual Studio will always be
that rich idea that gets you everything. But you know,
if you do know what the run time pieces that
you need, and most frameworks will have you know, one
installer that you know brings down the tooling or one
SELI tool that gets you all set up. So yes,
you do need to know that piece. But otherwise you
know you have the lightweight editor experience. That's true everywhere.
Speaker 2: Yeah. Yeah, so I now I hear people can play.
It's like, I'm tired of firing up Visual Studio Code
because it takes so long now because they put so
many add ins to it that they beaped it up.
Yeah it's heavy.
Speaker 3: Oh it's still it's a balancing act. Yeah, it's not
as heavy as as VS. I mean VS is starting
up fast, but VS code still is starting pretty quickly.
Speaker 1: Yeah, you know, just be like me, get an I
nine that's what IM.
Speaker 2: That thing comes most power.
Speaker 4: Or the Apple M four hips, they're amazing.
Speaker 1: Oh there you go, Yeah, there you go. That works.
Auto can fix this.
Speaker 3: Oh yeah, definite fix th eighty six.
Speaker 1: Yeah.
Speaker 4: Uh so Carl, you you asked about you know, what's
the UI stack? My UI stack is I don't care anymore.
It's it's a very different world these days, right, Yeah,
we may have heard of this thing called AI. It's
starting to change how we live our lives and definitely
how we write software and.
Speaker 1: How we write software. So let me ask the obvious question.
I think I ask it every time we talk to
somebody on you know, you got MAUI got h know, Well,
why would I choose one or the other? Or would
I always choose?
Speaker 4: You know, I can take that staff here as well.
It's not actually an either R. So you know I
was with you know, David Dartnau when we were talking
about dotnor Maui updates in dot net ten. So we're
partnering up with the dot or Maui folks again maintaining
parts of the stack because it's all open source dot net.
So there's a time and place for either. And you know,
there's some flexibility in the tech stack that you know,
we think we bring, but Maui will you know, remain solid.
It goes to iOS, Android, Windows and Mac. But the
moment you want to go to Linux or you want
that you know web Assemily experience, that's where you might
you know, want to look at, you know. And then
also if you have had Zamora and apps or zamain
forumsapp or apps, you know, it's it's not something that
you have to completely throw away. We especially if you
are wanting to be on iOS or Android, then we
do what's called Maui embedding, so you can actually bring
all your UI and all of the UI from the
Maui world into an no platformat.
Speaker 1: When that make it bigger and heavier than just the
Maui app by itself jero, So you'd have to have
a reason to do that.
Speaker 3: Yeah, so not really the thing is that so when
you talk, when you're looking at Maui and and you
know the differences in technical architecture that you have between
actual Maui and then and you know the you have
to split that into two pieces. At least Maui is
actually the UI parts and then the underlying dot net
bindings that provide the access to the underlying platform. And
what we what we know does is that it sits
on top of that second part. So in effect, what
you have is that when you when you use you know,
you don't have the Maui parts, who know, and then
you just have the uh, you know parts are there
that replaced the Maui side. Now, of course, if you're
start to use Maui em bitdding, then you get to
pull in Maui the actual Maui UI bits. But if
you don't, then it's pretty much the same infrastructure in
terms of you know, your one replaces the other and
we sit on top of that net on both sides.
Speaker 1: Now, my favorite stack is Maui Blazer Hybrid, So I
get to write my code in Blazer and I get
to use the htm olt Blazer razor markup what what
is Zuno are going to offer me?
Speaker 4: It's the same story. So essentially you know, we love
all types of web because again that's what's you know,
ubiquitous once everywhere on every browser. And it's not just
laser like. You can think of your Angular or react
or view or any other JavaScript investments. So same story.
MAUI has a you know, Blazer WebView. We have a
WebView too, which is essentially the same one that you
know Edge uses on Windows, So same exact WebView. It's
an abstraction that is smart to realize what from that
you're running on gives you the corresponding web view of
that browser on that platform. And yeah, you can happily
render all types of WebUI very cool.
Speaker 2: The other stack that comes up now and again is Avalonia. Right,
I don't know where you guys see Avalonia fitting this equation.
Speaker 3: Yeah, Avalonia is a is a fierce contender on our side,
and it's a it's a it's always amazing to have competition.
Speaker 2: Uh.
Speaker 3: You know, Uh, Avalonia is on the WPF stack. So
if if people are developing WPF apps, you know they're
the target is most of the time. Avalonia. We also
have that support. You know, we're targetly thinking pretty much
the same targets. Uh, what way we make a difference
for ourselves is the vertical integration. So we're not just
the UIRE framework. We're a platform, so we're providing tooling,
we're providing additional extensions for navigations, We're providing different pieces
for now with with AI that we are egically vertically integrating.
You know, for instance, we have the docs m c P.
That's the that's our tooling that allows for enhancing uh uh,
the the the app generation. We also have an app
m c P, which is pretty much an equivalent of uh,
you know, being being able to give eisenhands to an app,
to to an agent's to to to uh uh you
interact with an app right the For us, it's it's
are we're at platform, We're not at framework. We're trying
to be bigger than that and make sure that we
integrate uh from top to bottom, and that's where we
dofferentiate the most uh in that respect.
Speaker 2: Well, why don't we drag it to this platform store.
Before we do that, let's take this brief break.
Speaker 1: Did you know that you can work with a w
S directly from your I d E. A w S
provides toolkits for visual studio visual studio code and jet
Brains Rider. Learn more at a w S dot Amazon
dot Com, slash Net, slash.
Speaker 2: Tools, and we're back. It's dotn Rocks Amateurd Campbell. Let's
call Franklin Yo. Talking to Jerome and Sam from UNO.
A bit about the platform studio. Is that what you're
calling it now?
Speaker 1: Yeah?
Speaker 3: No platform studio. It's on a platform studio, yes.
Speaker 2: So what's platform studio again?
Speaker 4: I can try here first. So UNO platform is the
open source tack that's the entire vertical stack that Jerome
talked about. It's not just about UI and we all
run on top of dot net, but you know it's
meant for flexibility for devs. So right out of the
gate when you are building a cross platform app, you
have some choices to make sure you can go with
native UI like you know on IOSR Android. But we
are also big fans of Skia. The s gear sharpened
rendering is extremely fast compared to everything else and gives
us one unified UI pipeline that works and looks ex
exactly the same everywhere. So we are big fans of that.
But it's also about extensions and tooling and theming and
all types of things that you know you know, a
dot ne developer who wants to write cross platform app
needs to have that's all done. And that's kind of
what we have been doing for you know, fifteen years now.
But on top of UNA Platform, which is our stack,
we have built up UNA Platform Studio that is really
meant to elevate the developer experiences, especially if you're an
enterprise and you care about productivity. That is, you know,
trying to bring in the pieces that you might find
missing in other dot net stacks that you know, augments,
how quickly you work. We are you know, big fans
of talking about the inner dev loop, like how quickly
can you make a change and see it in a
running app? Is it you know, I have to go
get coffee because my bill takes you know a long time,
or I need to deploy to your device versus you know,
really really quick. So that's where UNA Platform Studio shines,
and it's got you know, four or five foundational things
that we bring to the table. Uh. You know, we
you know, support developers as you're building up on you know,
the open source stack. We have get have issues, we
have support, but NO Platform Studio is really meant for
those professional developers.
Speaker 3: Okay, and instead of our studio, we're providing all sorts
of pieces. So the biggest one is is hot design.
So our future, which is which is allowing for designing
an app that runs, so trying to not have the
you know, the pitfalls of the original designers that were
that were designing on you just off of the markup
that is there, but just going to the app, seeing
a page and then hitting the design button and design
the app as it runs, so that that gives all
sorts of cool things like being able to see all
your custom controls or your external controls, like for instance,
you have a chart control, any kind of control, you
put that in and it will just work, which is
not something that that standard designers are are able to do.
We're we're sitting on top of hot reload to be
able to do this. So it makes it pretty nice
to work with. And your hot reloads has been that
key component that makes everything work, and it's improved very
significantly over the past few years.
Speaker 1: It's not perfect, even in Blazer.
Speaker 3: No, no, it's not.
Speaker 1: Sometimes you're waiting minutes and you just say screw it
and I'm going to restart my app.
Speaker 2: You should have reached its rebuilt, right.
Speaker 4: Yeah, it's I call it a marketing problem. Had they
just called it lukewarm reload, then or expectations.
Speaker 1: Are or at least they should, you know, give you
a guess as to how long it's going to take.
You know, if it's going to take me five minutes,
I'm not going to push some button.
Speaker 3: It's changed quite a bit, you know, the last version,
specifically in twenty twenty six, there's something that mystuft that
has changed where you know, the previous version of Visual Studio,
where you know, they pretty much had the issue of
they were starting the hot reload building once you started
the app. Now what they do is that they reuse
the bill that they made to make the app and
then start from there. So that means that that waiting
for a few minutes to get something that actually builds
is supposed to be gone, and it mostly is. And
that's making for a very big difference in behavior.
Speaker 1: Yeah, truth be it told, I haven't tried it with
twenty twenty six. I'm still developing for my customers in
twenty twenty two, but that should change soon. Yeah, I'm
looking forward to that.
Speaker 4: I mean, the to Gerome's point, it's a big engineering
problem actually behind the scenes to make everything work. Like sure,
you're on a screen and you're changing up UI, but
the moment you change up more foundational pieces about the
data context and other things that that piece of UI need.
So you're looking at a lot behind the scenes. So yeah,
to Jerome's point, we have tried to perfect that quite
a bit with hot reload. But you know, I'm you know,
I love heart design because again for those of us
who come from the Windows Forms world, the DOUBLEPF world,
and we look at you know, so many hundreds of
you know, getub issues and threads where people want that
same experience. Never had it in zamorin zamine forums or
MAUI because it's a it's a big engineering investment to
build that, and even if you do build it, there
always remains a gap. And there are other things that
are you know, in the vicinity, things like live preview.
You can you know, do a hot restart when your
app is running on a phone or tablet, but that
gap between design time and run time is always there.
You're usually dealing with like fake data. So our approach
has been to say, you know, your app doesn't stop
running right, So your running app becomes your design surface.
So we essentially suspend the app and we open it
up in a mode in which you can tweak the UI.
We give you a toolbox of all the UI that
you can drag and drop. You know, Zamal apps are
known for having, you know, complex visual trees. That's how
enterprise you know, complex apps work, so full visibility as
to what the parent child relationship, where exactly is that
piece of UI that you are tweaking, and then being
able to change all of the properties you know on
the fly. But then the key piece for us is
something we call the dev server. Is while you're doing
all of that fun stuff, you can still interact with
the app on the design surface. But once you're happy
with your EUI tweaks, you can come back to a
regular running app and all of your code changes just
make it back to your ID, so the ID and
the design surface always remain insane.
Speaker 1: So you you mentioned contextual AI tooling, is that using
the MCP specifically so that you really never have to
develop UI. You can just say, hey, build me a
form that takes these models and saves them to a
data base or whatever.
Speaker 4: Jerome already started talking about it, and you know, we
have been having a lot of fun off lates. So
here's what we announced actually going with dot ne conf
in twenty twenty five. A lot of updates to you know,
our tooling that bring in contextual AI, and updates to
a platform studio which is now a two point zero,
So a couple of key foundational things in here. When
we look at AI today, it's amazing what most of
the large language models can do, especially with coding. And again,
like our experiences are different, like GPTs or sonnets or Gemini,
whatever is that that you want to choose. We want
to be agnostic to the OS, to the ID and
the AI agent that you're using, because again, everyone bring
your own tools. So we are big fans of Model
context Protocol. And you know Jeral was talking about how
this whole thing is about a year old. It shows
the need that Anthropic started something and then everybody is
wanting to perfect this because everyone wants that standard. Everyone
sees the need. So this as of now is the
most flexible way for AI agents and models to talk
to somebody else who knows what they're talking about and
not just hallucinate and guess all over the place, you know,
not dealing with timestamp knowledge documentation that is old. We want,
you know, the latest thing, greatest things, and most importantly,
we want context of what you are doing. Sure you
can look up docs as an LLM, but while your
app is running, what's my visual tree?
Speaker 2: Like?
Speaker 4: Can you actually see what I'm building? Can you click
on a button? Can you paste a piece of text
in here? Those are the things that are really hard
to do and without those, you know, we developers sometimes
don't have as much confidence in some of the AI tools.
So we have written up quite a bit of MCP tooling.
This is all Jerome and the engineering team here. Two
MCP servers. One is kind of what we call una
platform remote MCP or just MCP, and then there's an
app MCP. So the remote MCP is meant to bring
the context of all of our docs and how you
fetch you know, things about a certain topic, like tell
me about mvux and it, you know, looks up all
of our docks and tells you all the right things,
or bring me a certain page that talks about just
one particular piece of UI. So we do all of
that and we kind of pry the AI agents to say,
you know, here you have all of this tool please
stop guessing, use the tools. So how you you know,
set up a new app just by you know, the
best practices.
Speaker 2: And all of that.
Speaker 4: So that's all the app you know, or the platform MCP,
and then the app MCP comes in. Once your app
is running, where are all my target frameworks? Can you
see my app? Can you see my UI? Can you
click on this? Does my navigation work? And you know,
does my data context work on that AI? So two
full blown MCP servers that are very easy to work
with on whichever be of your ide of your choice
or AI agent you know, surface of your choice. So
full flexus.
Speaker 1: So in a sense, could you do testing with the
app MCP? It sounds less. That's what you're really doing
is testing all the That's what it is endploy to
make sure they're working.
Speaker 3: So it's actually two scenarios. The there's the just uh,
you know, replace the developer in a sense that make
me my feature. But the model doesn't see exactly what
it's doing. So it's generating code but it doesn't exactly
know what it's doing. So the idea is that the
model is going to generate that code, build a code,
and then run the code. And then after that, you know,
if you don't give it a way to do anything else,
then it will stop. It will just look at the logs.
And that's it. What we're bringing with this is the
ability for the for the model to see what it's
actually doing. So if it's developed a page navigation or
form or anything like that, it will be able to
go and go and about and click around, you know,
test the validation, see that navigation is working properly, things
like that, and then ensure that at the end, you know,
it's actually done the right thing. So if it doesn't
behave the right way, it will stop the app or
just use hot reload. You know, it can do use
hot reload as well. That's the that's the cool thing.
Make the modifications iterate again, test again, and then if
it's done pretty much like what the developer would do,
it's you know, it's testing the same way we're when
we're developing, well launching the app. See if it actually
does what we think it should do. Then if it doesn't,
we start again and then we loop. That way is
doing the same thing, and that's the developer flow. Now
there's a second flow, which is actual UI testing in
the same way that you have Playwright doing that. So
you have the MCP for play right that does that
the exact same way, except that it's against HTML. But
our app MP's pretty much be heaving the same way.
It's providing the same kind of tools you know, to type, click,
you know, take screenshot, take snapshot, things like that.
Speaker 1: Great for generating documentation.
Speaker 3: Exactly, yes, exactly. So it's a it can be used
either way. You can be full UI testing QA validation anyway,
or it just can be replicate the developer behavior.
Speaker 1: That's cool. So just in general I want to reiterate
this that you can bring your own agent here. Right,
you're not replacing an agent. You're not replacing GitHub Copilot
or you know, the stuff that's built into any of
these IDEs. What you are doing is allowing that agent
to access your MCP. So now you can ask the
agent to you know, questions about your app or about
you know, what the MCP specialty is, the documentation for example.
Speaker 2: That's correct.
Speaker 1: Yeah, I find there's confusion there.
Speaker 4: Yes, you're right, but there are you know, more things
we can do. You have full flexibility with the you
know agentic workflows, so you you know, not too developers
do the exact same thing or their workflow, so you know,
start this up however you want. So if you want
just to start from a CLI, because you know, people
who use Cloud are big fans of you know, that
CLI experience or codecs, you want to start up everything
and then you want to you know, you know, build
up your dream app. You create a brief of what
your app needs to be, and then you hand it
off to the agents to go actually build the app.
So that's a flow. A lot of dotinent developers are
just used to maybe visual Studio file new or vs
code build me a new app. In that case, you
have an empty app. But then you do have copilot.
You do have you know, Cloud inside of vs code
or you know, any other AI agent that you can
think of that you know, Copilot will call into those
other models and there you have the flexibility of you know,
choosing whichever AI model that works the best for you
or our agent, and then you start. However you are
like I, you know, start from an empty app and
then I start building up the UI. But if you
want to have the agent create the app in the
first place. Then that's that's fine too.
Speaker 1: So let's talk about greenfield versus brown field apps. Where
do you think who know shines.
Speaker 3: It's actually both? So one one one key one key example. Uh,
you know we've been talking about that those migration scenarios
and and you were mentioning, you know, all the apps
that dene migration of net six four six two. What
we've been trying is experiment with migration migration paths from
from previous apps and models are pretty good at mapping
and translating. And if you think about it, you know,
what's translating from English to French that's different from translating
from uh, you know, uh WPF to when you are
it's pretty much it's close. Let's say it's it's the
English from England friend, and you know, and the difference
with the English from the US. You know, it's close,
but not exactly. It's their variants. You need to translate
a few things, but it's translation pretty much to US.
So so we've been we've been testing that out and
and uh, we've we've migrated a few, migrated a few apps,
you know, one from w PF that you know, there
was a kind of a notepad made made by potherot
so it made a notepad app h a few years back,
and we just took that up and asked it as
the model just translate that app from one to the other.
So that that's clearly you know, it's more than brown field,
it's just no field. So we're just yeah, so so
we're just migrating from one to the other. And and
the model is able to you know, assisted by our
our docs mcp that that takes our documentation to the latest,
assisted by Microsoft docs as well as sted by all
sorts of m cps that you can find that that
can make it understand the code bays properly. Then you
can migrate from one to the other. So so that's
the that's the brownish field, and that that you can
get and further new apps. But it's pretty much the
same way. I mean, uh, you can create new apps
from blank completely or from our wizard. We have just
a few set of scenarios that get there or just
start for something else. You know, you have samples that
are there. You just ask the model to refractor the
app and and make it yours pretty much, and and
that that can work as well in that context. Uh,
it's it's amazing to see the models being able to
grasp deeply the apps that that we're giving them to
be able to uh to manipulate them and and and
do the right things. Uh, not from the get go,
but almost. You know, you still have to be there
to to guide a little bit. But it's it's able
to understand quite a bit.
Speaker 2: Trying to envision a case where you might want to
introduce another m c P, like you bring in a
library or something that comes its own MCP as well,
and you could just add it to the equation like
you're you're already running your app MCP and your platform
MCP separately. Just I'm just thinking through, like what's the
pattern here long term.
Speaker 3: For more mcps?
Speaker 2: You mean, do we need more mcps or do just
expect the agents to be able to interpret the code
that already exists and be able to figure out what
to do from there.
Speaker 3: There are two sides from this, you know, thinking about it,
and it's I mean, this is all fair and new.
We were talking about mcps and everything like that, you know,
I remember in the MVP some mean we were talking
about mcps that will all the rangel you know, we
need to do something about it, and then just six
months later we have something everyone is having. It's always
the own MCP for doing things like that. But I
see mcps are as two things that kind of you know,
extend models in some way. The first one is knowledge,
because the cutoff of the knowledge from the model is
not you know, it's what it is. And then it's
always going to stale in the same way that once
you write documentation it's out of date. You know, it's
pretty much in the same way that you can think
about it. So giving it access to something that's more
recent and probably dynamic in a sense that that's probably best.
But the second thing is your model cannot do anything
on its own. So you know, with our platform MCP
app MCP giving access to the app is one thing,
but can be something like you know, manipulating Azure, manipulating uh,
you know, some database in the back or some payment
system and third party tools that you would access in
some other way. So with security in mind, you know,
if you don't want the model to delete your your
your old production as a result, but still there's things
like that that that will be you know. That's the
two aspects that I do see of importance for models
that don't know everything.
Speaker 1: I can give you my experience with third party tools
and the agents. Generally, it's pretty good at going out
on the Internet and finding the documentation for a third
party control or whatever and being able to configure it
and use it correctly. You know, if I say I
want to use this particular control to do something, pretty
good about going out finding the documentation even though there's
no MCP for it. You know, it's it's Internet information.
It's out there. So that's been my experience.
Speaker 4: It is, and you know, these experiences can be a
little different, and models are getting smarter. There are times
when even though you have all of these mcps wired up,
it may choose not to you know, invoke so sometimes,
like we joke that you always got to be polite
with the AI agency, got to say, hey, look, you
do have those tools, please use them because sometimes they
will choose not to. So, yeah, they will, you know,
they can be doing some cashing. They will pull up docs,
but so docs are not you know, that's the you know,
low hanging fruit. Yes, you can do an internet search
and bring the docs, but what if you needed more,
what if you needed those you know, unique use cases
about changing up one thing in your UI that unless
you read through a lot of forums, you just don't know.
And unless you have that deep platform expertise, you just
don't know. And to your own's point, like if you
really wanted to tell a model like I need you
to run this app and take five screenshots and compare,
it just doesn't know how to do some of those
actions right right, So again, like mcps are shining, and
you know, still early days we are seeing multiple, you know,
registries come up. So you know, people have it very
easily from whatever ideas that you have as your choice
to bring in the mcps. And again you can check
things on and off. So just like you know, you
have different workloads and ways of working with the Vision studio,
maybe when you're doing Azure development or when you're doing development,
you don't need the other mcps, so in asients can
be smart to turn things on and off.
Speaker 2: I certainly talk to folks who are getting into the
mindset of there's a deployment MCP that follows the guidelines
of our organization and points to this is our cloud,
this is our pre prod prod QA configuration. Like they're
they're trying to get into consistent behavior with that and
using the MCP, I guess is a way to box
any given agent unto you must follow my policies essentially.
Speaker 3: Absolutely, this is a given access to the world. You
scope it to what it can.
Speaker 2: Do because the theory you would be able to do
that with a prompt, but we're finding that they don't
always follow the prompts.
Speaker 3: Yeah, it's true, that's completely true.
Speaker 4: And it takes a lot to write those prompts. So yeah,
we are fans of instructions, you know, copilot instructions or
agents MD, and those are the guard rails, but it
takes a long time to write up those guardrails, those
system prompts to you know, make sure they stay on course.
So that's where mcps kind of bring all of that
from the get go because it's already wired.
Speaker 1: So it happened again, Richard, we turned a perfectly saying
talk about UNO into an AI show.
Speaker 3: Well there, Well, I can give you some about that.
We did started it. But one of the things that
were I think we have talked about that one. So
one of the m cps that exist, or even no
MCP at all, is the ability for the for the
models to be able to generate u I properly, but
from an image, and that's something that's that's quite amazing.
It understands quite a few things.
Speaker 2: Well, you guys always said that Sigma interface that I
thought was wildly cool.
Speaker 3: Yeah it is.
Speaker 4: Yeah, we still still do. It's it's a design to code,
so you can start from a Pigma design and you know,
we generate C sharpened ZAMO. And now to to Jerome's point,
now you've got Figma m CPS to bring over that
thing to our MCPS, so agents have all of that
deep knowledge as to how you build your UI.
Speaker 1: That's cool, Mike, and I said this before on the show,
but my only experience with Figma it hard coded pixel
wits and stuff like that. It did not generate responsive CSS,
and it probably was my fault. I probably didn't have
a setting somewhere correctly.
Speaker 4: But Figma is not not for kids. It's very busy,
it's for sure. It's it's for designers who know.
Speaker 1: Goog Goog got Google.
Speaker 3: It's changed quite a bit. You get models are are
pretty good. You know, the bigger ones, like the premium
ones like gpt E T five or you know Sonnet
or others and Jimini three to the most important extent
you give you give it an image and it will
figure out how the structure is built. You give something
to you that's pretty close to your to the original, uh,
you know, and and fig I is able to give
a the internal structure of what that design is. And
then if you if if the the agent is able
to mix both, it's able to figure out you know,
the colors, the structure, the flow and everything like that
and just generate in our case, some exammle that do
make that does make sense in a in a very
fast way.
Speaker 1: Uh.
Speaker 3: And you know, you know, if your design just moves up,
you know, give it another image and it will figure
out what's to change and then then adjusted visually. It's
it's remarkable, you know. As a result, it.
Speaker 2: Is how far are we from a tool, you know,
harnesses something like play right that navigates through an old
asp dot net web forms app screen shotting along the
way and then feed those screenshots to this tool to
spit out simuno app.
Speaker 3: I'm pretty sure it's just the single from to say,
just play right you take the I was talking about
the WPF thing, that migration that we did we give it.
You know, we said to the AI, this is the
folder that that contains the previous app. Make it, you know, translated,
and make it run inside of that all the folder
that contains the app. Right, there's no difference, you know
if you if you do the same thing, you could say, well,
I'm giving you a ur l use a prey rite
m CP to figure out what the website is doing.
Make it again, you know in my app. It's that
simple in a sense. You know, it might not be
able to figure out all the business roles, but because
you know, it's not able to figure out everything, but
to a certain extents, it's able to figure out at
least what the visible behavior of of the app and
replicate something that that can be funnctional for sure.
Speaker 4: So to that point, Richard, we have been having. You know,
I have not had this much fun and that I've
had in the last one month. And I have not
written a single line of ZAMO because I feel like
I don't need to anymore.
Speaker 2: So the God.
Speaker 4: I love my but sure it gets a little bit.
Speaker 2: Does love you XML?
Speaker 3: That's for sure? And then do love XML? That's an
important thing, you know, They they do they understand the
beginning and the end. It's better than Jason or anything
like that. It's so it's pretty cool what they do.
Speaker 1: So one after all, right, step one put down the
crack pipe.
Speaker 3: XML for models. It's something that is better understood, uh
than Jason or anything else. And and the main thing
is that the tag at the beginning and the end
give context into what's before and after, which is very
different from Carlie.
Speaker 1: Branches don't do that.
Speaker 3: No, they don't. For so it has to go backtrack
and everything. You know, and even if you're writing documentation
with headers and everything like that, it's not the same.
You will see that major prompts that have been developed
by teams are using kind of fake XML syntax when
they they make sections of the prompts based off XML
to say this is the beginning of your personality. This
is the beginning of beginning and then of personality beginning
and end of restrictions and output and everything like that.
So in a sense for us, because Examal's XML, it
kind of makes sense for understanding that context.
Speaker 1: It's if you think about it, HTML is XML.
Speaker 4: It is it is it is it is. Yeah, but
you know copilot or Claude or Sonnet. They all do
a phenomenal job at understanding this. So you know, in
the last one month or so, we have had a
few you know, we have thrown it up to the
developer community, like DEF two is a vibrant community. We
you know, threw up a challenge to say, show us
what you can build. Bring your creativity. We have twelve
days of Christmas because that's the season. Let's build some
amazing apps. And it's mind blowing to see what we
can build, you know, like a matrix reign of you know,
digital numbers, win amp uh, you know our you know,
our thing that we grew up with with skins and
so on, which well, you know, any of those will
take like weeks and weeks to get the ZAMO right.
It's a matter of minutes because you know AI again,
don't trust it blindly, but you know, damn it's a
good starting point to get that UI out of the door.
Based on a couple of prompts.
Speaker 1: Okay, it's cool. Is there anything we missed, guys, anything
that you want to talk about.
Speaker 4: One last thing, and this is all the MCP stuff.
This is all meant to bring more context and you know,
grounding to the AI agents that you are using. But
what if we could do more out of the box.
What if you just want to open up an empty
platform app and not do anything else to it. Just
see the running app. You you maybe you come from
a non deav background. You just want to see the
running app, and then you have an agent right there.
That's something we call the heart Design agent. So heart
Design again is our visual tool that lets you tweak UI.
But now you just move over to one tab over.
Now you have an agent running right there with your
app and it works the same way across you know,
Windows browsers and mobile. It's always there. And that has
some very key features where it can generate UI. Like
if you are on a blank screen, you can say,
build me the next login app, build me a next
you know X or whatever it is that you're building,
and it'll take stabs and compared to the agents in
the ide where you based on your prompt, it's going
to start, you know, making code changes for you. And
sure you can you know, approve things a few times.
But then what if you wanted to go back in
time and say, now, what I had like five iterations
back was kind of better so we kind of maintain
a history off the UI, so you get to churn
and churn and see what the ai is agent is generating,
and then once you're happy with a particular one, then
you say apply. Then we're going to come in and
change up the zamal not just in your in a
running app, but all the way back to your ID.
So that's a hot design agent and that's something we
have been working on, so expect more things out of it.
Speaker 2: Cool, very cool.
Speaker 1: Well, thank you guys, it's always enlightening talking to you,
and well, thank you. Yeah, congratulations on the new stuff,
and everybody go check out Who Know and we'll talk
to you next week on dot netros. 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.
Speaker 5: 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.
Speaker 1: 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 2: You got Vans
Speaker 1: And