WEBVTT

1
00:00:01.080 --> 00:00:05.679
How'd you like to listen to dot
NetRocks with no ads? Easy? Become

2
00:00:05.679 --> 00:00:09.839
a patron for just five dollars a
month. You get access to a private

3
00:00:10.000 --> 00:00:14.279
RSS feed where all the shows have
no ads. Twenty dollars a month,

4
00:00:14.279 --> 00:00:18.839
we'll get you that and a special
dot NetRocks patron mug. Sign up now

5
00:00:18.879 --> 00:00:23.519
at Patreon dot dot NetRocks dot com. Hey, Carl and Richard here with

6
00:00:23.600 --> 00:00:28.399
your twenty twenty four NDC schedule.
Will be at as many NDC conferences as

7
00:00:28.399 --> 00:00:32.200
possible this year, and you should
consider attending no matter what. The Copenhagen

8
00:00:32.240 --> 00:00:37.079
Developers Festival happens August twenty sixth through
the thirtieth. Early bird discount ends April

9
00:00:37.079 --> 00:00:44.759
twenty sixth. Tickets at Cphdevfest dot
com. Ndcporto is happening October fourteenth through

10
00:00:44.759 --> 00:00:51.240
the eighteenth. The early bird discount
ends June fourteenth. Tickets at Ndcporto dot

11
00:00:51.280 --> 00:01:07.079
com. And we'll see you there, we hope. Hey, guess what

12
00:01:07.200 --> 00:01:10.760
it's dot net rocks Live from Bild. Okay, not live from bill but

13
00:01:10.799 --> 00:01:14.319
we're at build. I'm Carl Franklin, Beth Massy is here with us.

14
00:01:14.319 --> 00:01:18.200
We're gonna be talking to her in
a minute. But first, the weather

15
00:01:18.239 --> 00:01:23.400
report from Seattle, gray, cloudy, situation normal, Well it was northwest,

16
00:01:23.400 --> 00:01:29.200
lots of rain, it's mild,
it's very much. The sun did

17
00:01:29.239 --> 00:01:30.799
come out for a brief moment yesterday, Yeah, for a little while.

18
00:01:30.920 --> 00:01:34.159
Yeah, and then it's like just
kidding, Yeah, listen, we value

19
00:01:34.239 --> 00:01:38.840
when sun does show up, we
go outside because it doesn't happen very much.

20
00:01:38.000 --> 00:01:44.359
Right, anyway, let's jump right
into my better noa framework, all

21
00:01:44.439 --> 00:01:53.159
the crazy music. All right,
what do you got? Well, this

22
00:01:53.239 --> 00:02:00.879
is a nod to how long the
three of us have been in the profession.

23
00:02:00.040 --> 00:02:04.519
Oh my goodness. Some of you
remember Vim? Oh sure, yeah,

24
00:02:04.560 --> 00:02:07.199
the editor? Yeah, the editor. Well, now there's Neo VIM,

25
00:02:07.800 --> 00:02:13.280
NEOVIM dot io. Is it the
one? It's the new Vim,

26
00:02:14.000 --> 00:02:20.120
Yeah, the one hyper extensible VIM
based text editor. Oh no, So

27
00:02:20.199 --> 00:02:27.280
the API is first class discoverable version, documented message pack, structured communication,

28
00:02:27.439 --> 00:02:32.800
enables extensions in any language. Remote
plugins run as coprocesses safely, and they

29
00:02:32.879 --> 00:02:38.560
synchronously and the list goes on and
on. Is this like, you know,

30
00:02:39.319 --> 00:02:46.919
congratulations on making the ultimate console based
text editor. They really went nuts,

31
00:02:46.759 --> 00:02:50.759
right with all the features. Yeah, yeah, you know, editors

32
00:02:50.800 --> 00:02:53.680
became when VS Code came along and
sort of said, ah, here you

33
00:02:53.680 --> 00:02:55.639
go here, I have an editor. Yeah, works everywhere. So I

34
00:02:55.680 --> 00:02:59.599
think it's and it made a difference. Yeah, a good editor does make

35
00:02:59.599 --> 00:03:01.639
a difference. And then you know
it's well received. Well, the bigger

36
00:03:01.680 --> 00:03:06.000
thing here is the book exiting VIM, right, Like that's one real thing?

37
00:03:06.599 --> 00:03:09.879
Is it? Colon w Q Yeah, yeah, something like that.

38
00:03:09.960 --> 00:03:14.879
I don't know. Hey, it
brought about us trying to use vim on

39
00:03:15.039 --> 00:03:16.240
you know. So I think it
was Don Box who was like, you

40
00:03:16.280 --> 00:03:19.719
know, Vim, that's what I
used, and I tried it and I'm

41
00:03:19.719 --> 00:03:24.120
like, reminds me of word perfect. Yeah, from the nineties. Yeah,

42
00:03:24.360 --> 00:03:28.159
don't do that. That's so funny. All right, all right,

43
00:03:28.199 --> 00:03:30.479
I love it. That's what I
got. If you're interested, go for

44
00:03:30.520 --> 00:03:34.080
it. He was talking to us
today. Rich Ah grabbed a common Healf

45
00:03:34.159 --> 00:03:37.240
show eighteen thirty three, the one
we did back in February of twenty three

46
00:03:37.719 --> 00:03:42.879
when we were in Sweden Sweat Hug
and Stockholm, and we grabbed Orton Now

47
00:03:42.879 --> 00:03:47.080
and Maddie, the two troublemakers of
Maui to talk about the state of Maui

48
00:03:47.120 --> 00:03:50.520
because coast things have been moving pretty
quickly. Yeah, and I think that

49
00:03:50.560 --> 00:03:53.280
was the first time we ever talked
about Blazer Highbred. Yeah right, and

50
00:03:53.319 --> 00:03:55.879
I think we're probably going to go
there today too, So it only made

51
00:03:55.919 --> 00:03:59.719
sense. And Rob Gardner had his
comment, admittedly from a year ago.

52
00:03:59.719 --> 00:04:01.639
He said, I can confirm that, yes, you can put a Maui

53
00:04:01.680 --> 00:04:05.759
and Blazer wads a app in the
same solution and share controls in a Razor

54
00:04:05.759 --> 00:04:10.960
class library. Then you can employ
to pretty much everything except maybe Xbox.

55
00:04:12.599 --> 00:04:15.520
It should be a little employed.
I'm okay with that. It's coming to

56
00:04:15.560 --> 00:04:17.959
my default way of building applications.
You never be sure you won't want that

57
00:04:18.000 --> 00:04:23.120
web app to include a phone app
later down the line, so you know,

58
00:04:23.279 --> 00:04:26.240
just not blocking your options. If
I go this way, then whatever

59
00:04:26.279 --> 00:04:29.399
happens later, I can make that
for other devices. Really, this is

60
00:04:29.399 --> 00:04:30.439
great, he said it all.
We don't even have to interview back.

61
00:04:30.399 --> 00:04:34.800
It's like, don't you Samuel use
Blazer and the end of story. Thanks

62
00:04:34.839 --> 00:04:42.160
for playing faces on stunt kirkout.
Yeah we come a piece. You can

63
00:04:42.240 --> 00:04:47.879
laugh, Oh, Rob, thanks
so much for your coved. We're you

64
00:04:47.879 --> 00:04:50.279
know, it's the last day of
build. We're all a little a little

65
00:04:50.319 --> 00:04:54.319
silly at this point. So thanks
again for your comment, and a copy

66
00:04:54.319 --> 00:04:56.199
of music codey is on its way
to you. And if you'd like a

67
00:04:56.240 --> 00:04:58.600
copy of music go by. I
write a comment on the website at donnat

68
00:04:58.639 --> 00:05:00.399
Rocks dot com or on the facebooks. You publish every show there, and

69
00:05:00.399 --> 00:05:02.600
if you comment there and I read
it on the show, we'll send your

70
00:05:02.600 --> 00:05:06.399
comed mused to go by. Yeah, and if you can follow us on

71
00:05:06.800 --> 00:05:12.360
x you can Twitter. It used
to be Twitter x Twitter. That's what

72
00:05:12.360 --> 00:05:15.839
we'll call it, because it used
to be you can follow us on x

73
00:05:15.920 --> 00:05:18.959
Twitter. We've been there for a
long, long, long long time.

74
00:05:19.279 --> 00:05:23.800
But the cool kids are hanging out
on macedon. I'm at Carl Franklin at

75
00:05:23.800 --> 00:05:26.879
tech Hub dot social, and I'm
rich Campbell at macedon dot so, and

76
00:05:26.879 --> 00:05:29.800
of course you can get in touch
with me millions of ways by going to

77
00:05:29.839 --> 00:05:34.839
Carl Franklin dot com. Okay,
let's bring back our good friend Beth Massi.

78
00:05:34.959 --> 00:05:38.480
She's been on the show several times. I don't have the number in

79
00:05:38.519 --> 00:05:40.959
front of me, but Richard probably
will look it up by the time I'm

80
00:05:41.040 --> 00:05:45.720
done interviewing her for reading her bio. Beth is a product manager on the

81
00:05:45.720 --> 00:05:49.680
dot net MAUI team at Microsoft and
is responsible for making native device and hybrid

82
00:05:49.759 --> 00:05:58.040
web development in Visual Studio a delightful
experience. Formerly the marketing director and community

83
00:05:58.079 --> 00:06:00.480
manager for dot Net, as well
as serving on the Board of Directors for

84
00:06:00.519 --> 00:06:04.959
the dot Net Foundation, she has
spent her career helping dot net developers be

85
00:06:05.079 --> 00:06:09.480
successful. Boy, ain't that the
truth? Yeah? Welcome back back,

86
00:06:09.680 --> 00:06:13.399
Thank you guys. Seventh visit to
dot net rocks. But hey, first,

87
00:06:13.639 --> 00:06:19.600
most importantly, how's fox pro doing? You know, I still talk

88
00:06:19.600 --> 00:06:24.600
about fox Pro at work sometimes because
I do a lot of querying with Coupstone,

89
00:06:24.759 --> 00:06:27.680
so that stopped me a lot.
You know, relational database theory.

90
00:06:27.680 --> 00:06:30.319
You never forget it. It's always
It's always there, isn't it. Yeah,

91
00:06:30.800 --> 00:06:33.319
we're all And I was always a
clipper guy when you were. I

92
00:06:33.360 --> 00:06:41.000
started clipper yeah back in the day. dBase Yeah, legit, dBase two

93
00:06:41.120 --> 00:06:45.319
on the Apple too, with the
sixties with the Z eighty zlog board plugged

94
00:06:45.319 --> 00:06:47.600
into it. So now that we've
established for all the same age with them,

95
00:06:47.720 --> 00:06:53.600
very old with vim yeah, Remax
I think was Don Box's favorite text

96
00:06:53.680 --> 00:06:59.480
editor. Man. Oh wow,
okay, so somebody just asked me this

97
00:07:00.079 --> 00:07:03.240
at Mary Joe's thing. Right,
We're sitting talking to some geeks and somebody

98
00:07:03.279 --> 00:07:09.199
said, you know, I see
that you're a proponent of using Blazer in

99
00:07:09.279 --> 00:07:13.519
Maui when you're building Maui apps.
You know, what do you think of

100
00:07:13.680 --> 00:07:18.360
using xamal? And they said,
don't. I have to admit I'm in

101
00:07:18.360 --> 00:07:24.240
that camp too. I've just never
really grocked zamal. Ever. Yeah,

102
00:07:24.319 --> 00:07:30.480
I think more importantly is that Microsoft
has to do everything in zamble and make

103
00:07:30.519 --> 00:07:36.879
it work everywhere that CSS works now
and works well across all platforms because the

104
00:07:36.920 --> 00:07:41.480
market made it that way, you
know, over many years, right,

105
00:07:41.839 --> 00:07:46.920
and so they have to do all
that themselves. It's a powerful language if

106
00:07:46.920 --> 00:07:50.560
you if you grock it right,
you know. But yeah, but just

107
00:07:51.079 --> 00:07:56.439
I had never really had the patience
I think for it. Well. I

108
00:07:56.519 --> 00:08:01.120
did some some classes in it,
of course, and i'm classes, I

109
00:08:01.160 --> 00:08:05.439
mean teaching, And there was a
situation where I think it was a list

110
00:08:05.439 --> 00:08:11.120
of view or whatever. The you
know, zamar informs come Maui version of

111
00:08:11.120 --> 00:08:15.319
that is. And when you have
these nested things and blocks and stuff,

112
00:08:15.319 --> 00:08:18.639
it just fell down on iOS,
worked great on Android, fell down on

113
00:08:18.680 --> 00:08:20.920
iOS. And that's where it dawned
on me. It's like, you know,

114
00:08:22.720 --> 00:08:26.759
this is a big challenge Microsoft has
to make this work everywhere whereas you

115
00:08:26.800 --> 00:08:31.560
know, CSS is done. That's
correct. And you know, I'm a

116
00:08:31.600 --> 00:08:37.759
big proponent of Blazer Hybrid obviously.
Actually, Maui hybrid. I'm gonna talk

117
00:08:37.799 --> 00:08:39.200
to you guys about you know,
some things we're going to do for dot

118
00:08:39.240 --> 00:08:45.240
at nine that's not Blaser only.
Yeah, so Maui hybrid full stop,

119
00:08:45.360 --> 00:08:48.279
like hybrid with other things just Blazer
correct, great, that's interesting. Correct

120
00:08:48.320 --> 00:08:52.960
with other JavaScript frameworks we're going to
bring bring through. Yeah. I just

121
00:08:52.039 --> 00:08:54.320
for a minute there, I thought
you were advocating, you were saying good

122
00:08:54.360 --> 00:08:58.159
things about CSS, and I'm like, who are you, Carl Franklin's pretty

123
00:08:58.200 --> 00:09:01.240
strange. I mean, I don't
do great things with CSS, but there's

124
00:09:01.279 --> 00:09:03.720
a lot of people that do,
and it's easy to find them, you

125
00:09:03.759 --> 00:09:07.080
know. So that's it. And
you know, the simple things that I

126
00:09:07.120 --> 00:09:11.559
wanted to do, I could do
very easily. And there's just so much.

127
00:09:11.600 --> 00:09:15.759
There's so much, you know,
do a search and find exactly what

128
00:09:15.799 --> 00:09:18.639
you need. Yeah, exactly.
Yeah. Actually we're doing a lot of

129
00:09:18.679 --> 00:09:22.759
cool stuff with co Pilot too,
and and and Maui. So yeah,

130
00:09:22.799 --> 00:09:26.879
a lot of tools. I'm on
the tooling side too, So we got

131
00:09:26.600 --> 00:09:31.080
what what does it mean to have
a cool stuff and co pilot for Maui.

132
00:09:31.279 --> 00:09:37.279
So like, imagine asking co pilot
to just design your application and write

133
00:09:37.279 --> 00:09:41.200
the xamal for you, right,
So like actually that in that case,

134
00:09:41.200 --> 00:09:45.960
and I'm like, Okay, I
don't need to write right exactly unless the

135
00:09:46.039 --> 00:09:48.360
exam is fundamentally broken, right,
And so that's what we have to do.

136
00:09:48.399 --> 00:09:52.720
We have to train the co pilot
to understand the Maui flavor of zammal,

137
00:09:52.879 --> 00:09:56.240
right, because it's a different flavor. Yeah. Well, I'm,

138
00:09:56.279 --> 00:10:00.519
like I said, I'm a big
fan anytime that I'm creating Maui app Now

139
00:10:00.559 --> 00:10:03.600
I'm using Blazer because I've been and
I've been doing this now since Blazer came

140
00:10:03.639 --> 00:10:09.840
out, right, and arguably I
wasn't the best assp neat web forms developer

141
00:10:09.919 --> 00:10:13.840
when it came to design. I
just made things work. Yeah, but

142
00:10:13.919 --> 00:10:16.679
I really got into it at Blazer. Yeah, And I mean we're making

143
00:10:16.679 --> 00:10:22.840
it like a lot simpler to just
build apps that allow you to reuse your

144
00:10:22.919 --> 00:10:26.200
code across the web, Blazer,
Web and Mali at the same time.

145
00:10:26.279 --> 00:10:33.320
So next month we'll release Next month
and done at nine Preview five will release

146
00:10:33.320 --> 00:10:37.840
a solution Tamblet that allows you to
just start with project and sets up all

147
00:10:37.840 --> 00:10:39.840
the glue for you so that you
have a Razor class library you could put

148
00:10:39.879 --> 00:10:45.080
all your UI and a shared interfaces
you're using to do the functionality of that

149
00:10:45.200 --> 00:10:48.799
UI. Actually that's my demo here
at build I have a little demo theater,

150
00:10:48.000 --> 00:10:50.320
you know kind of thing, and
it's like a twelve minute demo and

151
00:10:50.440 --> 00:10:54.320
yeah, and I show how to
you know, you can even like multi

152
00:10:54.320 --> 00:10:56.720
target the Razor class library, so
you can turn on and off UI depending

153
00:10:56.759 --> 00:11:01.240
on the platform. The only challenge
you have there is you have different hosting

154
00:11:01.279 --> 00:11:05.000
models. You know that you kind
of have to you have to have different

155
00:11:05.000 --> 00:11:07.600
implementations. And is that what if
this comes down to in general, full

156
00:11:07.639 --> 00:11:11.879
stop, right is whether you want
to be on a mobile device, whether

157
00:11:11.879 --> 00:11:13.919
you want to be on it as
a web page or you want to be

158
00:11:13.960 --> 00:11:16.279
as a desktop app. It's just
a hosting model. You're trying to write

159
00:11:16.320 --> 00:11:20.960
one set of code that all these
models can pick up and make a reasonable

160
00:11:20.960 --> 00:11:24.799
looking client for in that form factor. Well, Maui does a lot of

161
00:11:24.799 --> 00:11:28.879
that abstraction for you, you know, and when you're using blazers that you

162
00:11:28.919 --> 00:11:33.440
are you're really just but you're still
using Maui, like the non visual parts

163
00:11:33.440 --> 00:11:35.759
of Maui, right, So it
does. It does eliminate a lot of

164
00:11:35.759 --> 00:11:39.639
the code that you would have to
write for each of the platforms. That's

165
00:11:39.639 --> 00:11:41.840
the whole point of Maui. However, if you start with Maui and you

166
00:11:41.879 --> 00:11:46.759
take advantage of the platform APIs right, don't expect to be able to publish

167
00:11:46.799 --> 00:11:48.480
that on the web, right,
because exactly have those things there. But

168
00:11:48.519 --> 00:11:52.039
if you build it for the web, right, and then that will move

169
00:11:52.159 --> 00:11:54.600
obviously with JavaScript in or op and
all that stuff, and you can mix

170
00:11:54.639 --> 00:11:58.519
a match. You can do native
and web techn act. That's a really

171
00:11:58.559 --> 00:12:03.519
good important point that you don't have
to choose one thing for the whole application

172
00:12:03.639 --> 00:12:07.200
RT right, correct, Yeah,
you can mix the man well, And

173
00:12:07.320 --> 00:12:11.480
thinking about Rob's comment too about he's
it sounds like he's actually building a web

174
00:12:11.519 --> 00:12:13.559
app or a desktop app, and
he's just hedging his bets that he might

175
00:12:13.679 --> 00:12:16.840
need to build a phone app.
Because my instincts have always been the use

176
00:12:18.720 --> 00:12:20.759
Yeah, you're building you're using Maui
because you need a phone app. Yeah,

177
00:12:20.799 --> 00:12:22.720
and then it's like, oh,
I'd also like a web app and

178
00:12:22.759 --> 00:12:28.360
a desktop app, and I'd argue
that that was the weak part, right,

179
00:12:28.399 --> 00:12:31.320
that it was really good at building
one code base for both iOS and

180
00:12:31.320 --> 00:12:35.399
Android, and then the web app
was okay, and that's not bad voice.

181
00:12:35.960 --> 00:12:39.600
Yeah, I mean sometimes you just
want the store distribution and reach,

182
00:12:39.919 --> 00:12:43.919
you know, so like instead of
you know, having to advertise a u

183
00:12:43.039 --> 00:12:46.440
ur L, sometimes it's easier just
to get into the stores and have people

184
00:12:46.519 --> 00:12:50.879
like install it. He's yeah,
that's what p WA's are for. Man,

185
00:12:50.879 --> 00:12:54.279
here's your icon let your cell phone. Yes, too. That must

186
00:12:54.360 --> 00:12:58.279
be a common question for you.
Should I just do a Blazer PWA or

187
00:12:58.320 --> 00:13:01.120
should I make a mau app.
It's just a depends on what you want.

188
00:13:01.240 --> 00:13:03.679
I mean, Uh, some things
are just really hard or impossible to

189
00:13:03.720 --> 00:13:07.240
do in web only. So you
do need a native you need a native

190
00:13:07.279 --> 00:13:11.080
shell, or you need a native
like controls, or you need a native

191
00:13:11.159 --> 00:13:13.799
thing you needn't access the file system
like and you need to do I don't

192
00:13:13.799 --> 00:13:16.480
know, because you know, the
web is pretty powerful. I have to

193
00:13:16.519 --> 00:13:20.080
admit, you know what I mean. These days you can do almost anything,

194
00:13:20.120 --> 00:13:22.720
but just some things are just hard. And check out that deployment model

195
00:13:22.799 --> 00:13:26.080
right, Like that's like local storage
on a Blazer web assembly. It is

196
00:13:26.120 --> 00:13:28.440
a pain. Yeah, bar in
light and this is the wrestling match I

197
00:13:28.440 --> 00:13:33.759
have these days when I get to
where my you know, senior architects had

198
00:13:33.840 --> 00:13:37.159
and sissedmin had, It's like,
really, you want me to deploy software

199
00:13:37.200 --> 00:13:41.159
again? Like it's hard to justify. Yeah, a desktop client app because

200
00:13:41.200 --> 00:13:46.960
it's you. It puts a lot
of costs. Some apps have to be

201
00:13:46.240 --> 00:13:52.279
like so rich though, and so
like the experiences have to be so on

202
00:13:52.279 --> 00:13:56.000
on or you just need Ali app
then because that you know, when you

203
00:13:56.159 --> 00:13:58.679
when I talk about your rich desktop
apps, it's straight WPF these. Yeah,

204
00:13:58.720 --> 00:14:01.960
but if you want to if you
want to target Mac and Windows and

205
00:14:01.960 --> 00:14:05.559
don't and don't have like two teams
to do that, that's the win r

206
00:14:05.600 --> 00:14:09.840
Yeah exactly you can get Yeah,
because I'm not gonna argue with you on

207
00:14:09.879 --> 00:14:13.159
that. That a number of max
in the workplace these days. It's big.

208
00:14:13.279 --> 00:14:18.000
Yeah, it's not consumer app.
You got to you gotta have that

209
00:14:18.320 --> 00:14:22.039
clients. Yeah, yeah, Okay, I am persuaded. Well, you

210
00:14:22.039 --> 00:14:26.320
know, on the what are the
downsides? Right, let's we talked about

211
00:14:26.320 --> 00:14:28.960
some of them. But you know, why would you Let's just stick with

212
00:14:30.039 --> 00:14:33.080
Zamal and Blazer because I've only made
an aesthetic argument here. I have not

213
00:14:33.240 --> 00:14:35.519
talked about a feature problem. Yeah, why would you Aside from what I

214
00:14:35.840 --> 00:14:39.960
mentioned with zammeal and that you if
you run into problems, why what is

215
00:14:41.000 --> 00:14:45.080
the is there any benefit of using
Zamal over Blazer. Well, so you

216
00:14:45.120 --> 00:14:48.320
know, some argue that native experiences
are the best experiences, and so depending

217
00:14:48.360 --> 00:14:52.320
on your application, you may,
like, especially if it's a consumer application

218
00:14:52.440 --> 00:14:58.679
and you're you're betting on beautiful,
deep, rich experiences that you want the

219
00:14:58.720 --> 00:15:01.480
Android app to look like Android and
feel like Android. You want iOS to

220
00:15:01.559 --> 00:15:05.120
feel look and feel like with a
Blazer, you know, everything looks the

221
00:15:05.120 --> 00:15:09.960
same because you're just using the platform
web view or render the UI more memory.

222
00:15:09.039 --> 00:15:11.639
Well, you guys have to the
edge control a little more memory.

223
00:15:11.720 --> 00:15:15.679
Yeah, and I mean then you
have then you have like then you're doing

224
00:15:15.720 --> 00:15:18.519
CSS tricks, right, Like I
like Ionic, does you know they have

225
00:15:18.600 --> 00:15:22.960
a really nice you know, nice
styling depending on what you know, platform

226
00:15:24.000 --> 00:15:28.200
you're on, and it really does
kind of look like the app. Because

227
00:15:28.200 --> 00:15:31.159
they can't make that argument for corporate
apps. They want them all the same.

228
00:15:31.360 --> 00:15:33.000
Yeah, and some people want that, right, So yeah, Malady

229
00:15:33.039 --> 00:15:37.879
doesn't like draw controls like they are
in the native control. So that's like

230
00:15:37.919 --> 00:15:41.200
the you have two options, right, you know. There that's the strength,

231
00:15:41.679 --> 00:15:43.000
there's a strength. That's a very
good point. And do you think

232
00:15:43.039 --> 00:15:50.279
that people still want to have an
iOS looking app versus an Android looking app?

233
00:15:50.360 --> 00:15:54.200
Or they just want I mean most
line of business, large enterprises those

234
00:15:54.200 --> 00:15:58.320
types of apps. Probably not when
you go it's a retail app. Yeah,

235
00:15:58.360 --> 00:16:03.519
when it's like an summer But there's
a lot less of those out there

236
00:16:03.600 --> 00:16:07.279
than there are business as. I
think it depends what the what the company

237
00:16:07.399 --> 00:16:08.720
doing, right, Like you know, you're in the banking business and you

238
00:16:08.799 --> 00:16:12.200
want to climb it's something for your
customers. At that point, you might

239
00:16:12.279 --> 00:16:17.600
have enough resources that will just go
fully native and just have multiple code bases.

240
00:16:17.639 --> 00:16:19.200
I just don't know if that's worthwhile. You know, one of the

241
00:16:19.200 --> 00:16:25.039
things I've talked to teams where they
have native you know, native developers for

242
00:16:25.080 --> 00:16:26.720
both stacks, right, and one
of the things they really focus on is

243
00:16:26.759 --> 00:16:30.559
releasing simultaneously, right, because their
customers get really angry when an iOS feature

244
00:16:30.559 --> 00:16:33.159
shows up before an Android feature.
I am. And so you know,

245
00:16:33.200 --> 00:16:37.279
the nice thing about the common codebase
is like you know you're going to release

246
00:16:37.320 --> 00:16:41.759
together. Although now now it's down
to even the store delays or a problem.

247
00:16:41.799 --> 00:16:44.120
Yeah, yeah, yeah, you
never know when the store is going

248
00:16:44.159 --> 00:16:47.639
to when it's a week, it's
two weeks, Like you just don't know,

249
00:16:48.120 --> 00:16:51.240
right, you said that, you
know, Ionic does some CSS tricks

250
00:16:51.279 --> 00:16:56.320
to make up the platform look more
platform me. Are there other things that

251
00:16:56.519 --> 00:17:03.480
you would recommend that we can use
in Maui Blazer hybrid apps too? So

252
00:17:03.559 --> 00:17:06.880
right now we're kind of playing with
fluent right now. So the Fluent you

253
00:17:06.920 --> 00:17:10.640
know, I can, but like
a lot of commercial components are really powerful

254
00:17:10.680 --> 00:17:15.480
too, you know, like yeah, I personally I talk to more customers

255
00:17:15.480 --> 00:17:18.799
that are you know, building line
of business enterprise, and they they are

256
00:17:18.839 --> 00:17:25.720
not as concerned with that. But
there's a ton of library like CSS is

257
00:17:25.759 --> 00:17:29.279
so you know everywhere, yeah,
you know, and you can do any

258
00:17:29.400 --> 00:17:30.880
you know, whatever you can do
on the web, you can do in

259
00:17:32.160 --> 00:17:36.640
the web view, right Yeah,
I mean I love fluent UI, but

260
00:17:36.680 --> 00:17:41.200
for a long time it was really
a win UI thing right first and foremost.

261
00:17:41.319 --> 00:17:42.599
Yeah, and then you know you
can kind of do with WPF,

262
00:17:42.680 --> 00:17:45.880
but it's better now. Yeah,
I mean we have we have there's the

263
00:17:45.920 --> 00:17:52.440
fluent UI maintainer. You know,
it's because open source has examples for Blazer

264
00:17:52.480 --> 00:17:56.119
and we're one of our engineers is
working on one for Hybrid and so yeah,

265
00:17:56.519 --> 00:18:02.119
there's controls for React for iOS or
Android for mac os like yeah,

266
00:18:02.200 --> 00:18:06.240
and that's what's kind of cool because
we're talking also to a lot of customers

267
00:18:06.240 --> 00:18:11.319
that have like dot Net customers that
already have major JavaScript framework investments like React

268
00:18:11.400 --> 00:18:17.400
or view or Angular, right,
because you know, before Blazer, that's

269
00:18:17.519 --> 00:18:19.200
kind of what we had to do, like right a sp dot Net was

270
00:18:19.240 --> 00:18:23.160
really just the back end, right, Yeah, And so what we want

271
00:18:23.160 --> 00:18:29.160
to do is we want to be
able for them to use those frameworks also

272
00:18:29.519 --> 00:18:33.839
in Maui. So we're building a
hybrid WebView control. So like the Blazer

273
00:18:33.880 --> 00:18:37.640
WebView control that's in Maui today,
this will just be a hybrid WebView that'll

274
00:18:37.640 --> 00:18:42.440
allow you to communicate between JavaScript and
c sharp, right, So that'll be

275
00:18:42.480 --> 00:18:48.480
an option for folks that you know, sometimes you have like third party components

276
00:18:48.519 --> 00:18:52.599
that you want to pull in and
they don't offer a dot Net library,

277
00:18:52.680 --> 00:18:56.440
but they have a JavaScript thing.
So you can go ahead and pull that

278
00:18:56.480 --> 00:19:02.240
in. I would be remiss if
I didn't bring up Blaze ions Blaze icons

279
00:19:02.279 --> 00:19:04.400
dot com. I already put it
in as a link. Basically, this

280
00:19:04.519 --> 00:19:10.119
is a Blazer component where you can
multiple Blazer components that you can pick whatever

281
00:19:10.359 --> 00:19:15.279
icon set you want. Bootstrap dev
Icon, Fluent, UI, Fluent UI

282
00:19:15.319 --> 00:19:22.759
filled font awesome, regular and solid, Google material round sharp, filled,

283
00:19:22.880 --> 00:19:29.440
outline, solid, whatever, two
tone ion icons, lu seed and material

284
00:19:29.440 --> 00:19:33.279
design icons. So they basically wrap
them all up. You pick which one

285
00:19:33.319 --> 00:19:36.759
you want and then use a Blazer
component to show the icon. That's amazing.

286
00:19:37.160 --> 00:19:41.240
Yeah, yeah, that's it's a
strong community around, like it's not

287
00:19:41.359 --> 00:19:45.920
just it. This is like the
whole JavaScript and you know HGML community right,

288
00:19:45.119 --> 00:19:48.160
like it's big boy. You're really
running out excuses to make on ugly

289
00:19:48.200 --> 00:19:52.319
web page, aren't you, Yeah, because you can just drop things in

290
00:19:52.400 --> 00:19:56.079
and yeah, there's just no reason
they here they are, just drop them

291
00:19:56.079 --> 00:20:00.200
in and go. Yeah, you
know you don't have to think that much

292
00:20:00.480 --> 00:20:04.200
as a developer who doesn't like to
design anything. It's pretty nice. Well

293
00:20:04.799 --> 00:20:08.240
to me, it also is,
and don't impair the designer when they do

294
00:20:08.319 --> 00:20:12.200
show up and want to apply a
design to right. So it's like you

295
00:20:12.279 --> 00:20:15.960
can use tools that they're you know, really happy with, like Figma or

296
00:20:15.000 --> 00:20:19.359
whatever, and like, you know, give you that debt designs. I

297
00:20:19.400 --> 00:20:22.359
was always question of is it both
ways? Like if I've gone certain path

298
00:20:22.519 --> 00:20:26.839
down a path building something, then
the designer appears like have I impaired them

299
00:20:26.880 --> 00:20:33.519
with what I can? Yeah?
I've certainly had that experience, right stuck,

300
00:20:33.559 --> 00:20:37.000
I put bootstrap in. What more
do you want? You got to

301
00:20:37.000 --> 00:20:40.519
go through the whole app and change
your CSS exactly? Yeah, all right,

302
00:20:41.079 --> 00:20:45.319
I mean it's it's an interesting space
to be and to just think through

303
00:20:45.359 --> 00:20:48.359
all of these variations of you know, what do you need? You know

304
00:20:48.720 --> 00:20:52.640
again call back to Rob. I'm
building the desktop app, but I might

305
00:20:52.680 --> 00:20:55.599
need a phone, so I'm going
to stay in this in this library.

306
00:20:55.960 --> 00:20:59.799
Or I'm building phone apps, but
some people want the web. Yeah,

307
00:21:00.039 --> 00:21:03.039
And we're also building a lot of
tools to help you quickly build like some

308
00:21:03.079 --> 00:21:07.400
of these these types of things.
So like MAUI is you know, we

309
00:21:07.519 --> 00:21:11.480
got the Maui extension for vs code
right, it's in pre release. It's

310
00:21:11.240 --> 00:21:18.160
eminently gun to ga. We know
we've got some really I think we've got

311
00:21:18.200 --> 00:21:21.880
some really cool tooling coming in just
Visual Studio proper. I'm more of a

312
00:21:21.960 --> 00:21:26.400
Visual Studio user myself, and uh
and you know, I see a lot

313
00:21:26.400 --> 00:21:30.079
of you know a lot of customers, enterprise customers, a lot you still

314
00:21:30.160 --> 00:21:33.079
use Visual Studio, and so we
are investing a lot in the tooling there

315
00:21:33.079 --> 00:21:36.880
too. Some cool things I think, uh, we like to we'd like

316
00:21:37.000 --> 00:21:41.160
to do uh in in the like
done at nine timeframe, uh in Visual

317
00:21:41.200 --> 00:21:44.480
Studio, just to make kind of
you know, working with hybrid apps a

318
00:21:44.519 --> 00:21:48.240
little bit more delightful, like actually
having a live preview that will you know,

319
00:21:48.839 --> 00:21:52.319
allow you to kind of select into
the WebView itself and get at the

320
00:21:52.400 --> 00:21:56.400
razor components we're looking at that.
If that's possible to do, I think

321
00:21:56.440 --> 00:22:02.079
that would really help kind of speed
up, like just investigating where the razor

322
00:22:02.119 --> 00:22:03.640
components are and the layouts and that
sort of thing, so that you don't

323
00:22:03.759 --> 00:22:08.680
necessarily have to look at the rendered
content. You know, on the once

324
00:22:08.759 --> 00:22:14.599
you go into the the F twelve
developer tools in Edge or Chrome or whatever,

325
00:22:14.920 --> 00:22:17.519
you know, you're kind of already
looking at the rendered page. You

326
00:22:17.559 --> 00:22:19.559
know, you're not looking at the
components that created it, right, So

327
00:22:19.559 --> 00:22:22.759
we're trying to figure out how to
make that experience better too. So it's

328
00:22:22.799 --> 00:22:26.160
all good news. Yeah. You
know. One of the announcements that happened

329
00:22:26.160 --> 00:22:30.759
this week and build was the Snapdragon
machines. Of course they're focusing on that

330
00:22:30.799 --> 00:22:36.119
being copile a PC, but it's
like that's Windows on ARM. Yeah again

331
00:22:36.400 --> 00:22:38.920
it's back and and somebody asked her, we're gonna make a Dona Rocks about

332
00:22:38.920 --> 00:22:42.680
this, and like, there's nothing
to say. It's just gonna work.

333
00:22:44.480 --> 00:22:48.240
I don't think you're gonna need to
recompile, right, use it? Okay,

334
00:22:48.319 --> 00:22:51.400
we're done. Yeah, I mean
that's what we did a lot of

335
00:22:51.400 --> 00:22:53.160
work in visual studio to get a
visual studio on ARM. Like so if

336
00:22:53.200 --> 00:22:56.880
you're running like visuals, I mean
I have a I have a macim one

337
00:22:56.880 --> 00:23:00.319
and I'm running parallels and that's in
it. That's an ARM you know base,

338
00:23:00.880 --> 00:23:03.759
so you know what you're doing through
emulation that way. Yeah, I

339
00:23:03.839 --> 00:23:07.200
know one, So flip them fast? What do you care? Right?

340
00:23:07.279 --> 00:23:08.839
It is really fast and a lot
I mean a lot of I see a

341
00:23:08.839 --> 00:23:14.480
lot of you know, users using
a Mac that way because you can build

342
00:23:14.519 --> 00:23:17.319
for all of the platforms at once, you know, with one machine,

343
00:23:17.359 --> 00:23:19.880
it tends to be you're you're all
versatile. Yeah, you U seemingly parallels,

344
00:23:19.920 --> 00:23:23.200
but then you compare to your own
Mac, and you know, use

345
00:23:23.319 --> 00:23:29.079
the emulators and and you can you
have like your your Android emulators, you

346
00:23:29.079 --> 00:23:33.039
have your simulators for you know,
through x code. There you just pair

347
00:23:33.119 --> 00:23:36.079
that way. So I see,
I see some people doing that. Not

348
00:23:36.359 --> 00:23:40.039
not a ton We're making the Paradomac
experience hopefully better, so that when you

349
00:23:40.079 --> 00:23:42.519
pair to the Mac, you actually
pair to the Mac Catalyst and the desktop

350
00:23:42.559 --> 00:23:48.279
two. I basically use get ub
as my thing, right, I push,

351
00:23:48.440 --> 00:23:51.359
I push it to get up,
I go over to my Mac,

352
00:23:51.400 --> 00:23:52.519
I pull it down, and I
run out there you go. It just

353
00:23:52.559 --> 00:23:56.319
works, Yeah, but also speaks
to the reality of its two machines,

354
00:23:56.400 --> 00:24:00.279
right yeah, I think that's two
platforms to machines. Yeah, are using

355
00:24:00.279 --> 00:24:06.240
the extension for vs code vs code. Okay, so your studio a vs

356
00:24:06.319 --> 00:24:07.720
code when I need to for a
demo or something. Okay, Yeah,

357
00:24:08.000 --> 00:24:11.960
it's getting a lot better. Sure, Yeah, I mean like you like,

358
00:24:11.000 --> 00:24:15.720
don't even like I think Wendy was
showing kind of in the context of

359
00:24:15.759 --> 00:24:19.279
a spire yesterday, but there's a
lot of just like now, I don't

360
00:24:19.319 --> 00:24:22.000
need to know, like all the
commands, I can like actually click a

361
00:24:22.000 --> 00:24:25.440
button to create a new project.
You know. So if you're a Visual

362
00:24:25.480 --> 00:24:29.680
Studio user and you want to like, you know, build a Maui app

363
00:24:29.960 --> 00:24:32.559
on your Mac, like, that's
kind of the path you're going to need

364
00:24:32.599 --> 00:24:34.720
to go. Yeah, the Visual
Studio for the Mac is no more.

365
00:24:34.839 --> 00:24:40.079
Yeah, it's it'll be out of
support in August. Yeah. Yeah,

366
00:24:40.400 --> 00:24:45.720
I have used uh, visual Studio
code to do things like there's easy ways

367
00:24:45.759 --> 00:24:49.440
to deploy a static web app,
you know, uh, and you can

368
00:24:49.720 --> 00:24:55.000
create the project and do everything right
on GitHub and pull it down and press

369
00:24:55.000 --> 00:24:57.400
a button in Visual Studio Code and
it's running. That's that's the idea is

370
00:24:57.400 --> 00:25:00.599
to make sure that the solution and
the projects are all compatible. Yeah.

371
00:25:00.640 --> 00:25:04.200
I love that. Yeah, that's
all good stuff. Now, it's impressive.

372
00:25:04.200 --> 00:25:10.480
And then dev kit in vs code
really took you know, now you

373
00:25:10.559 --> 00:25:15.240
forget that studio's job is also a
project manager, right and then but dev

374
00:25:15.319 --> 00:25:18.519
kit really brought that to code now
that yeah, yeah, the solution explorer

375
00:25:18.559 --> 00:25:25.599
experience there yeah yeah, well,
and I certainly talked to teams where they've

376
00:25:25.599 --> 00:25:30.680
got a set of devs who are
only in code, right mostly web dev

377
00:25:30.119 --> 00:25:33.480
and so they were just weren't able
to see a lot of the project.

378
00:25:33.480 --> 00:25:34.599
At the time, they didn't even
think in the terms of the project.

379
00:25:34.799 --> 00:25:37.079
But then dev kit came along that
it was last year. Now I think,

380
00:25:37.200 --> 00:25:41.480
yeah, I did release last year, and so suddenly they're, oh,

381
00:25:41.519 --> 00:25:42.759
there's a whole bunch of other stuff
going on. It's like, welcome

382
00:25:42.799 --> 00:25:47.759
to the project. You actually have
a view of what's going on in this

383
00:25:48.000 --> 00:25:51.960
right. It just makes the I
don't know, the context switch between Visual

384
00:25:52.000 --> 00:25:55.920
Studio and vs code so much easier
because you're like, oh, here's my

385
00:25:55.960 --> 00:25:59.400
project, here's my solution. It's
a good year, here's my debugger,

386
00:25:59.759 --> 00:26:02.720
here's hot reload. But I mean
they've added all of that, so it's

387
00:26:02.720 --> 00:26:06.400
pretty cool. Yeah. Yeah.
It just makes me wonder how long Studio

388
00:26:06.480 --> 00:26:08.759
has, you know, I think
it has a long future. I mean,

389
00:26:08.799 --> 00:26:15.880
honestly, there are so many more
tools that I think are critical personally,

390
00:26:17.079 --> 00:26:19.880
Like hot reload is awesome, but
like if you don't have like that

391
00:26:21.079 --> 00:26:26.599
live you know, view of your
app, it's kind of just yeah,

392
00:26:26.599 --> 00:26:30.640
it's warm. It's like yeah,
right, and we're and like I said,

393
00:26:30.720 --> 00:26:33.759
like, you know, we're just
trying to make the tooling experience a

394
00:26:33.759 --> 00:26:38.400
little bit more richer, I guess, and in Visual Studio as that's kind

395
00:26:38.440 --> 00:26:44.160
of where that's where traditionally where everything
really is. And you know the value

396
00:26:44.200 --> 00:26:47.880
of Visual Studio is a lot of
in that that kind of tooling when it's

397
00:26:47.880 --> 00:26:51.680
not like you guys don't push out
an update to Visual Studio like every month.

398
00:26:51.759 --> 00:26:55.200
Yeah, we're monthly, monthly release. I mean vis Code is weekly

399
00:26:55.839 --> 00:27:00.680
pre release, Visual Studio proper is
is monthly. Where recording this, it's

400
00:27:00.720 --> 00:27:06.000
seventeen ten, right, seventeen eleven
P one released this week and yeah,

401
00:27:06.720 --> 00:27:10.559
yeah, seventeen ten gad this week. So seventy ten is GA now,

402
00:27:10.559 --> 00:27:14.680
but seventeen eleven is underway, like
it is a continuously updated product. Yeah,

403
00:27:14.720 --> 00:27:17.880
And as a as a product manager, who's you know, trying to

404
00:27:17.880 --> 00:27:21.920
get stuff in the SDK, trying
to get stuff in you know, dev

405
00:27:22.000 --> 00:27:25.960
Kit, vis Co extension or Mali
extension is trying to get stuff like working

406
00:27:26.000 --> 00:27:30.480
across all of these trains. Yeah, it's it's it's time. I've been

407
00:27:30.480 --> 00:27:33.359
on the team for two years and
I still don't know which ones which sometimes.

408
00:27:33.400 --> 00:27:36.680
But yeah, there's multiple wiki pages
to go look at schedules and things

409
00:27:36.680 --> 00:27:38.119
like that, And not to be
a heretic, but it's like, why

410
00:27:38.160 --> 00:27:41.319
would we want a new version of
Visual Studio. Well, we got it's

411
00:27:41.319 --> 00:27:45.160
continuously updated. We kind of know
where things are. We just got the

412
00:27:45.200 --> 00:27:48.960
new copilot interface in like, oh, like a Visual Studio twenty twenty five

413
00:27:48.039 --> 00:27:52.079
or whatever. Yeah, what would
we make a major version? What would

414
00:27:52.079 --> 00:27:56.880
that even do? Yeah, I
mean I don't, like, I don't

415
00:27:56.000 --> 00:27:59.839
know who, Like I know who
probably makes the decision, but I don't

416
00:27:59.880 --> 00:28:07.039
know when it's not me that makes
that decision, like win a major version,

417
00:28:07.519 --> 00:28:10.880
major version, and for what?
Right? Because it's disruptive too,

418
00:28:11.079 --> 00:28:14.359
right, Like, yeah, I
mean, but usually when I'm like,

419
00:28:14.440 --> 00:28:17.720
think about your own software. When
you when you do a major version upgrade,

420
00:28:17.759 --> 00:28:21.039
there is something major breaking changes,
right, that's the usual thing.

421
00:28:21.079 --> 00:28:23.480
And hey, nobody who wants breaking
changes? Yeah, you or you add

422
00:28:23.680 --> 00:28:27.440
some very significant feature to it or
something like that, right, well,

423
00:28:27.480 --> 00:28:30.279
copile it's pretty significant. Yeah.
Hey, we got to break for a

424
00:28:30.319 --> 00:28:37.759
moment for this very important message.
We're back. It's dot net Rock's amateur

425
00:28:37.799 --> 00:28:42.039
Campbell. Let's call Franklin hanging with
our friend Beth Massey. Hey, and

426
00:28:42.079 --> 00:28:45.440
hey, if you down in love
with the ads that we're getting these days

427
00:28:45.440 --> 00:28:48.119
because we've been working hard to try
and get better ads. But you know,

428
00:28:48.119 --> 00:28:51.359
there's limits to the systems that I'm
afraid, and we're still working away

429
00:28:51.400 --> 00:28:53.480
at it. There is another option
that is to become a patron on Patreon

430
00:28:55.000 --> 00:28:57.720
and you will get ad free versions
of the show Patreon dot dot NetRocks dot

431
00:28:57.720 --> 00:29:04.359
com. There you go. Yeah, well you hinted about a hybrid mode

432
00:29:04.720 --> 00:29:08.920
beyond Blazer, yes, Maori for
all the things. Yeah, so we

433
00:29:10.359 --> 00:29:12.519
one of our engineers along Lipton.
If you've never had him on the show,

434
00:29:12.559 --> 00:29:15.640
you should probably get him on the
show. He's amazing. He's been

435
00:29:15.680 --> 00:29:19.279
at Microsoft forever. Yeah, and
I chat with him on a regular basis,

436
00:29:19.319 --> 00:29:22.880
so I sometimes forget we should probably
put him on the show. Put

437
00:29:22.920 --> 00:29:26.200
him on the show. He's awesome, an amazing engineer. He does all

438
00:29:26.279 --> 00:29:30.920
things hybrid. He's the original driver
for MVC back in the day. Yeah,

439
00:29:30.000 --> 00:29:34.440
he's been all around sp dot net
forever. Yeah. So he has

440
00:29:34.480 --> 00:29:40.119
an experiment that I think it's been
a while. I think last last year

441
00:29:40.160 --> 00:29:44.759
at MVP Summit, we kind of
wanted to get more feedback about it.

442
00:29:44.799 --> 00:29:48.200
So it's been it's been an experiment
for over a year. Now it's a

443
00:29:48.200 --> 00:29:52.440
new get package. It's called Hybrid
Malle Hybrid WEBEW and we have customers using

444
00:29:52.440 --> 00:29:56.200
it today and so what we we've
gotten enough feedback where where we really think

445
00:29:56.240 --> 00:30:00.880
that it's time to bring it in
to the Maui repository and get it as

446
00:30:00.920 --> 00:30:04.839
a control in Mali itself. Yeah, this also speaks to a very cool

447
00:30:04.920 --> 00:30:08.000
thing. It's in Alion's repository right
now. Yeah, right, so this

448
00:30:08.079 --> 00:30:11.359
is alions experiment. I think other
people who contributed to it. Yeah,

449
00:30:11.400 --> 00:30:14.839
yeah, we Yeah, a lot
of people have contributed to created a pull

450
00:30:14.880 --> 00:30:18.720
request, even some Microsoft employees in
other divisions. And then and then it

451
00:30:18.759 --> 00:30:22.079
becomes a conversation of should we put
this in the product, like right,

452
00:30:22.519 --> 00:30:25.319
yeah, that's exactly right, And
then you know, yeah, and then

453
00:30:25.440 --> 00:30:27.599
you know and I you know,
we have actual customers, you know,

454
00:30:27.759 --> 00:30:32.240
using it, and that's when we're
like, okay, now we know like

455
00:30:32.480 --> 00:30:37.200
their use cases. We can kind
of outline what a minimum viable product would

456
00:30:37.279 --> 00:30:41.119
look like right there. Now,
if you go into the Mali repository,

457
00:30:41.240 --> 00:30:44.880
you will see Hybrid WebView. You'll
see Alan like you know, issue like

458
00:30:44.920 --> 00:30:48.880
issues he's created so he has work
items and he defines kind of what we're

459
00:30:48.920 --> 00:30:51.640
going to when we're going to get
in there for Dottin at nine. So

460
00:30:51.720 --> 00:30:56.240
with a hybrid WebView, is it
opinion opinionated about which framework you use?

461
00:30:56.519 --> 00:31:00.240
Is it just completely open end,
completely open ended? So a developer does

462
00:31:00.400 --> 00:31:03.440
the same thing, then, yeah, so you you actually have to build

463
00:31:03.480 --> 00:31:08.200
your app. You build your JavaScript
frame whatever whichever however you do that right,

464
00:31:08.599 --> 00:31:15.000
whether it's React or view or Angular
or just plain old javascripts, whatever

465
00:31:15.079 --> 00:31:21.200
you want, right, and you
stick that into like the raw resources raw

466
00:31:21.279 --> 00:31:26.160
folder in in Maui so that it
it'll deploy with it, and then you

467
00:31:26.200 --> 00:31:30.680
basically similar very similar to Blaser,
right, except laser Laser has a whole

468
00:31:30.680 --> 00:31:33.720
project system for and everything right where
it does this for you, right,

469
00:31:33.759 --> 00:31:37.920
but has like dub dub root for
you and all that. So when you

470
00:31:37.960 --> 00:31:41.200
in just like the Blazer WebView,
you point, you point the hybrid we

471
00:31:41.319 --> 00:31:44.720
view at where the index is or
where the starts, where your start h

472
00:31:44.759 --> 00:31:48.559
tmail is and then just that's it
takes off from there. So that's like

473
00:31:48.559 --> 00:31:52.359
a brain especially if you already have
an app that's built. Right exactly you're

474
00:31:52.359 --> 00:31:56.079
talking about wrapping existing software if you
want just to give you all those options

475
00:31:56.119 --> 00:32:00.480
exactly, and it's all it's all
like, it's all static, you know,

476
00:32:00.519 --> 00:32:04.119
this is like all client side.
I mean, obviously you can make

477
00:32:04.279 --> 00:32:06.759
calls to the server and that kind
of thing if you need to. But

478
00:32:07.480 --> 00:32:09.160
the whole idea is just to like, you know, if you have existing

479
00:32:09.319 --> 00:32:14.759
uy in another framework, you can
render that through Mali too. Don't have

480
00:32:14.799 --> 00:32:19.519
to rebuild it or anything, just
render it through good feature. Well done.

481
00:32:19.720 --> 00:32:22.720
Yeah, well so we buy nine
time frame? Maybe? Yeah?

482
00:32:22.759 --> 00:32:25.720
So I'll you know, now,
I know you've got to go home and

483
00:32:25.799 --> 00:32:29.759
tell alone that I told the whole
world about this and they better get it

484
00:32:29.799 --> 00:32:35.240
in. You're admitted now we don't. But I mean the reality is,

485
00:32:35.240 --> 00:32:37.279
if you want to use it,
you can't. It's sitting one. I

486
00:32:37.279 --> 00:32:39.240
mean, right, we don't make
it for some reason. There's still a

487
00:32:39.279 --> 00:32:43.440
new get package available that you can
use. Yeah. Yeah, I can't

488
00:32:43.440 --> 00:32:46.640
imagine why you wouldn't. But things
happen, too, right, things happen.

489
00:32:47.039 --> 00:32:51.920
The world is a strange place.
The solution template is in I saw

490
00:32:51.960 --> 00:32:54.079
the pull request. It is in. It is in dot at nine preview

491
00:32:54.200 --> 00:32:58.400
five, which will release next month. Oh wow, okay, so are

492
00:32:58.400 --> 00:33:00.680
there other new things in Mali we
should be thinking about. Yeah, so

493
00:33:00.720 --> 00:33:07.000
what we're really focused this year on
Zamoran migration. Right, So, Zamoran

494
00:33:07.039 --> 00:33:10.720
reached end of life. The SDKs
are and out of support as of May

495
00:33:10.920 --> 00:33:17.880
first, and so we've been laser
focused on helping our existing Zamoran user base

496
00:33:19.240 --> 00:33:22.039
migrate forward. Okay, so actually
I talked to a few, you know,

497
00:33:22.160 --> 00:33:27.359
few folks at the conference today and
asked how everything's going. We have

498
00:33:27.519 --> 00:33:30.920
a you know, an email if
you're struggling right now, it's Mali Dash

499
00:33:31.039 --> 00:33:35.519
Upgrades at Microsoft dot Com. We're
on the other end listening and trying to

500
00:33:35.559 --> 00:33:39.960
help. It's really important that people
migrate because not only is the SDK's out

501
00:33:40.000 --> 00:33:44.039
of support now, we're not servicing
that anymore. The tools are still in

502
00:33:44.119 --> 00:33:46.279
Visual Studio. They're marked as legacy
and you can still install them if you

503
00:33:46.359 --> 00:33:51.559
have to just copilot know how to
do this. We have an upgrade assistant

504
00:33:51.559 --> 00:33:53.839
that will help you get started.
Okay, So the upgrade Assistant does a

505
00:33:53.839 --> 00:33:58.160
lot of things like not just zamor
into Mali migrations, but it does like

506
00:33:58.240 --> 00:34:00.880
you know, Donne framework to Core
and like it does it does a different

507
00:34:00.920 --> 00:34:05.400
workloads, like you know, but
yeah, there is an upgrade assistant that's

508
00:34:05.440 --> 00:34:08.119
a visual studio add in as well
as a command line that will kind of

509
00:34:08.119 --> 00:34:12.360
help you walk through the process.
But this depends on you know, how

510
00:34:12.400 --> 00:34:16.199
many bindings, third party bindings you
were using that may not be available today

511
00:34:16.360 --> 00:34:20.119
and things like that. So it's
not going to be like, oh,

512
00:34:20.360 --> 00:34:22.079
fifteen minutes, you know kind of
thing. You're really going to need a

513
00:34:22.079 --> 00:34:25.559
plan in migration and depending on how
large your app is, and so we've

514
00:34:25.559 --> 00:34:31.239
been really focused on making sure that
the compatibility is there, Like the SDK

515
00:34:31.360 --> 00:34:36.119
quality is very important. You know, maybe you work with the third party

516
00:34:36.159 --> 00:34:40.159
tool developers to make sure that the
you know, yeah some some like some

517
00:34:40.440 --> 00:34:44.559
you know, it's like we don't
want to maintain all these bindings anymore.

518
00:34:44.599 --> 00:34:47.079
As the Maui team, we just
can't do it. Zamor in the company

519
00:34:47.119 --> 00:34:51.840
could, but like we just don't
have that kind of you know, bandwidth

520
00:34:51.840 --> 00:34:54.920
to be honest, and we're looking
at different you know, binding, like

521
00:34:55.000 --> 00:35:00.679
different style of bindings. David Art
now probably like we're talking off about what

522
00:35:00.679 --> 00:35:05.440
they're thinking about that. But then
the other option is this hybrid hybrid WebView.

523
00:35:05.440 --> 00:35:07.599
I've seen some customers decide you know, hey, we don't have a

524
00:35:07.639 --> 00:35:10.559
dot Net bindings for you know,
this library that we were using, and

525
00:35:10.599 --> 00:35:15.239
we're just going to use the JavaScript
version of this. But so that's where

526
00:35:15.239 --> 00:35:22.400
we're really focused on. The stores
will stop accepting Zamoran submissions. I think

527
00:35:22.480 --> 00:35:25.960
Apple probably in a year, and
we might be able to give you a

528
00:35:27.000 --> 00:35:30.840
little more like Google might give you
a little more time than that, but

529
00:35:30.360 --> 00:35:32.920
you know, like you really need
to be focusing on this year. So

530
00:35:32.920 --> 00:35:36.480
that's what we've been trying to really
do. So we've been so as a

531
00:35:36.480 --> 00:35:38.280
as a broader team, you know, and especially on the SDK SI,

532
00:35:38.320 --> 00:35:43.840
we've been focusing a lot on iOS
and Android. Okay, so because of

533
00:35:43.920 --> 00:35:50.280
the Zamoran folks stuff for time exactly
exactly, I'm still very you know,

534
00:35:51.320 --> 00:35:54.519
I'm still looking very heavily at desktop
scenarios by the way though, because from

535
00:35:54.559 --> 00:35:59.079
the Blazer Hybrid side, we see
a lot of desktop. Sure people want

536
00:35:59.519 --> 00:36:01.920
contemporary Yeah, you know, we
work with our partners in Windows and the

537
00:36:01.960 --> 00:36:06.599
whin u I team, and you
know that those that the partnership is still

538
00:36:06.599 --> 00:36:09.800
there and they're still committed to when
u I guy's part of Maui. But

539
00:36:09.920 --> 00:36:14.559
there's announcement this week about when U
I and WPF. Yeah, and they're

540
00:36:14.559 --> 00:36:16.400
also investing in WPF as well,
So yeah, tell me, tell me

541
00:36:16.400 --> 00:36:19.639
more. I knew when you I
was, you know, when U I

542
00:36:19.679 --> 00:36:22.239
three is early there, you know
kind of thing that's that's where all new

543
00:36:22.400 --> 00:36:29.440
modern Windows native Windows apps when U
I three correct. But what's the deal

544
00:36:29.480 --> 00:36:32.559
with WPF. So WPF there's just
a lot of customers like they have WPF

545
00:36:32.679 --> 00:36:37.320
right, and they want a modern
look and feel and they want some of

546
00:36:37.360 --> 00:36:40.559
those modern you know UI concepts that
when U I three has two and so

547
00:36:40.679 --> 00:36:45.639
they and because the Windows I'm not
going to speak on behalf of Windows,

548
00:36:45.639 --> 00:36:49.199
but like I know this part of
the story, they are investing in both

549
00:36:49.199 --> 00:36:52.159
of those stacks. Okay, I'm
in developer division, and I don't like

550
00:36:52.199 --> 00:36:55.079
to talk about Microsoft is all these
divisions, but it is kind of like

551
00:36:55.159 --> 00:36:59.880
helpful sometimes to realize, like,
hey, we rely on teams across micros

552
00:37:00.119 --> 00:37:04.639
and actually it comes to Hybrid.
It's even more because the WebView team is

553
00:37:04.760 --> 00:37:07.559
edge right, so that's you know, another team that we rely on that

554
00:37:07.599 --> 00:37:13.119
so all of these pieces work together. But yeah, from the MAUI teams

555
00:37:13.280 --> 00:37:17.519
perspective, like we're really, we
really are trying to help our Zamoran customers

556
00:37:17.599 --> 00:37:22.239
be successful moving to moving to Maui. It's really important and we've seen like

557
00:37:22.719 --> 00:37:27.800
so much growth in Maui. It's
been really exciting to see since dot Net

558
00:37:27.800 --> 00:37:31.760
eight release, there's you know,
one hundred and sixty percent more apps in

559
00:37:31.840 --> 00:37:37.840
the app store at this point that
are Maui based. And like you know,

560
00:37:37.000 --> 00:37:40.440
depending on you know where you're coming
from, if you're brand new or

561
00:37:40.440 --> 00:37:45.199
you're coming from from Zaman, we're
having we're seeing more success. We're with

562
00:37:45.239 --> 00:37:47.519
our customers now, so I think
we're in a much better place than we

563
00:37:47.519 --> 00:37:51.079
were like a year ago. Well, we have a dot net Rocks Maui

564
00:37:51.159 --> 00:37:53.239
Blazer hybrid app out in the app
stores. Cool, but it needs to

565
00:37:53.280 --> 00:37:57.960
be updated, so that's on me. I haven't updated it since I did

566
00:37:58.039 --> 00:38:00.840
a whole bunch of bug fixes and
things. Okay, well, I mean

567
00:38:00.880 --> 00:38:05.119
in the announcement this week was really
about that when UI and WPF are both

568
00:38:05.119 --> 00:38:07.360
first class citizens and Windows and the
main thing they said, they said the

569
00:38:07.400 --> 00:38:12.960
thing that I always focus on,
which is what is Microsoft using to build

570
00:38:13.000 --> 00:38:19.079
Windows apps? And that's when UI
three primarily correct and so those are the

571
00:38:19.079 --> 00:38:22.199
way things are going to be updated. But they did make a specific point

572
00:38:22.199 --> 00:38:28.840
about WPF getting updates to be able
to make Win eleven looking apps because When

573
00:38:28.880 --> 00:38:31.480
eleven has an aesthetic correct, And
I just feel like, you know,

574
00:38:31.760 --> 00:38:35.519
WPI has had a lot of love
in a while. We also have investments

575
00:38:35.519 --> 00:38:37.400
in wind Forms too, By the
way, that that's a developer division side,

576
00:38:37.480 --> 00:38:42.079
it's an open source and you know
Mary and Klaus, so I don't

577
00:38:42.079 --> 00:38:45.079
know if you have ever talked to
Klaus on this, He's awesome. So

578
00:38:45.119 --> 00:38:47.159
getting back to this Windows thing,
I just want to make sure everybody who's

579
00:38:47.199 --> 00:38:52.239
listening knows that you can build a
MAUI app that targets when UI, but

580
00:38:52.360 --> 00:38:57.719
you can also just build a WPF
app and use Blazer in it. Correct,

581
00:38:58.519 --> 00:39:02.679
Yes you can. You're not you're
not building across platform applications anymore maybe

582
00:39:02.719 --> 00:39:07.280
web web and Windows only, right, But yes, that is absolutely true,

583
00:39:07.280 --> 00:39:09.719
and actually you could do it in
wind Forms as well. Yep.

584
00:39:09.880 --> 00:39:14.960
In fact, I did a demo
here with Don Weba from dev Express using

585
00:39:15.119 --> 00:39:20.480
a Windows Forms app having Windows Forms
UI and then adding Blazer UI. Yeah.

586
00:39:20.519 --> 00:39:22.679
I watched that. It was cool
having them talk together. Yep.

587
00:39:23.159 --> 00:39:27.280
Cool it's all WebView. At the
end of the day, it's the same.

588
00:39:27.320 --> 00:39:30.320
It's on Windows, it's web U
two, So that is the edge

589
00:39:30.360 --> 00:39:32.320
team that runs that, right.
Yeah, I'll include a link to the

590
00:39:32.800 --> 00:39:38.159
when building with win Ui three in
dot net, just because I think most

591
00:39:38.199 --> 00:39:40.360
people just think of it as O
C plus plus library, right. They

592
00:39:40.360 --> 00:39:45.639
don't really know that it's available in
the dot net much less. So you

593
00:39:45.639 --> 00:39:49.960
could tie it in through about Maui
as well. Are there any limitations doing

594
00:39:50.000 --> 00:39:54.840
when Ui with Maui as opposed to
doing win Ui directly and bi directly,

595
00:39:54.880 --> 00:40:00.360
I mean not with Mali. Nice, So the Zamal flavor is different,

596
00:40:00.559 --> 00:40:07.400
you know, so Mali you know
kind of you know, abstracts things across,

597
00:40:07.440 --> 00:40:12.199
standardizes, right, standardizes it across. So I am not like we

598
00:40:12.280 --> 00:40:15.559
started. I am not a xamal
developer, So I'm going to say,

599
00:40:15.599 --> 00:40:19.559
I don't know, maybe fair enough. Yeah, it's fair anything else we

600
00:40:19.599 --> 00:40:22.679
should know. Being here at build, I know, it's just so awesome

601
00:40:22.719 --> 00:40:24.199
to see you guys, good to
hang out. Yeah. Really, it's

602
00:40:24.280 --> 00:40:29.280
like I feel like, so my
career has come full circle. I think,

603
00:40:29.400 --> 00:40:30.760
you know, I have never been
a feature PM, so this was

604
00:40:30.800 --> 00:40:35.599
like my last you know Horizon.
You know, like this was like the

605
00:40:35.639 --> 00:40:38.400
fast fast challenge in my life.
You know, we were all very happy

606
00:40:38.400 --> 00:40:42.480
when you led marketing for Dona.
Yeah, I mean I loved it.

607
00:40:43.000 --> 00:40:45.159
Yeah, I loved it. It
was it was fun. But to be

608
00:40:45.199 --> 00:40:49.239
honest with you, you know,
I am a computer science major. I've

609
00:40:49.280 --> 00:40:52.239
been a programmer. I started Microsoft
like when I was in my thirties.

610
00:40:52.280 --> 00:40:57.079
I was already in the industry doing
software, building software, and uh,

611
00:40:57.119 --> 00:40:59.519
you know, I came to the
team to because I was an MVP.

612
00:40:59.679 --> 00:41:01.360
I came to the team is like
you know, community manager and you know,

613
00:41:01.480 --> 00:41:06.760
like developer advocate basically is what I
was, right. But we literally

614
00:41:06.800 --> 00:41:13.320
went open source ten years ago.
Crazy year I got married. Yeah,

615
00:41:13.360 --> 00:41:16.519
and and that was like I don't
need to do this community management thing anymore

616
00:41:16.519 --> 00:41:20.800
because it was social engineering just changed, you know. We were like zero

617
00:41:20.920 --> 00:41:22.760
distance to the customers now. Yeah, and so when I joined marketing,

618
00:41:22.800 --> 00:41:28.119
it made sense. But I remember
telling myself when I was younger, because

619
00:41:28.119 --> 00:41:30.840
my sister was in marketing, and
I was like, man if I ended

620
00:41:30.920 --> 00:41:34.360
up in marketing, kill me.
And I ended up in marketing. So

621
00:41:34.440 --> 00:41:37.000
I was like, what, I
also think you've had a very rounded career

622
00:41:37.039 --> 00:41:40.239
too, because you've been over there, you've been in IC and now you're

623
00:41:40.320 --> 00:41:45.199
PM. Yeah yeah, Les and
so so product management was this last challenge

624
00:41:45.239 --> 00:41:49.079
for me. Like I remember when
I joined mycro stoft, I don't think

625
00:41:49.119 --> 00:41:52.199
I could do this a team yeah, and uh, you know, I

626
00:41:52.239 --> 00:41:57.119
mean I'm not a manager like of
people. But product management is just a

627
00:41:57.280 --> 00:41:59.559
constant challenge. You know, you
have to be on top of what your

628
00:41:59.559 --> 00:42:01.000
competitor are doing. You have to
be on top of what your customers are

629
00:42:01.039 --> 00:42:05.119
asking for. You have to be
on top of what your engineers are able

630
00:42:05.159 --> 00:42:09.320
to do. You know how you
prioritize, you know, like the scheduling

631
00:42:09.440 --> 00:42:14.760
part is it's just but it's fun
because I'm so close to the engineering now

632
00:42:14.840 --> 00:42:17.079
and I get to write code every
day and you know, it's just I

633
00:42:17.119 --> 00:42:21.480
get to test things and and I
get to like look at the end to

634
00:42:21.559 --> 00:42:24.639
end. What's funny is you know, I mean Microsoft isn't a cloud company.

635
00:42:24.639 --> 00:42:28.320
They're an AI company now, right, we are, right, and

636
00:42:29.039 --> 00:42:34.079
I'm I'm like on the client right. It's and it feels like it feels

637
00:42:34.119 --> 00:42:39.480
like maybe like we have a little
extra like I don't know, startup kind

638
00:42:39.480 --> 00:42:43.320
of attitude to ourselves, you know
what I mean, because you know,

639
00:42:43.480 --> 00:42:49.159
we're we're kind of like the client
is so important to the user experience on

640
00:42:49.239 --> 00:42:51.800
the other end, you know,
and so it is. It is part

641
00:42:51.840 --> 00:42:53.880
of like the whole end to end
of an application. But we're glad that

642
00:42:53.920 --> 00:42:59.599
you were marketing, yeah, rather
than somebody who didn't understand it, right.

643
00:42:59.599 --> 00:43:01.000
And that's the thing I mean,
that's that's kind of I brought.

644
00:43:01.159 --> 00:43:06.159
I brought like the technical aspect of
it. I learned a lot about storytelling

645
00:43:06.280 --> 00:43:09.000
and marketing. And when you're a
product manager, you're just doing storytelling and

646
00:43:09.079 --> 00:43:13.079
at kind of like your level,
like focused on your focused, yeah,

647
00:43:13.159 --> 00:43:15.159
focused. So so I do a
lot of I do. I help I

648
00:43:15.199 --> 00:43:19.280
help the rest of the team do
some of that too. So I I

649
00:43:19.320 --> 00:43:21.719
love being on the dot net team
and love being around dot net. You

650
00:43:21.719 --> 00:43:24.159
guys know that. I like that
forever. So it's like Fox were only

651
00:43:24.159 --> 00:43:29.679
different. Fox Brow taught me how
to how to love a community though.

652
00:43:29.719 --> 00:43:32.639
Yeah you know it was an amazing
community and an amazing product for its time.

653
00:43:32.719 --> 00:43:37.440
Yeah, certainly. Yeah. And
on that note, I guess we'll

654
00:43:37.440 --> 00:43:40.199
call a show. Thank you so
much. Hey again, I love you

655
00:43:40.239 --> 00:43:43.880
guys, all right, you too, and we'll talk to you next time

656
00:43:44.239 --> 00:44:08.559
on dot net rocks. Dot net
Rocks is brought to you by Franklin's Net

657
00:44:08.639 --> 00:44:14.519
and produced by Pop Studios, a
full service audio, video and post production

658
00:44:14.639 --> 00:44:19.280
facility located physically in New London,
Connecticut, and of course in the cloud

659
00:44:19.880 --> 00:44:23.920
online at pwop dot com. Visit
our website at d O T N E

660
00:44:24.000 --> 00:44:29.880
t R O c k S dot
com for RSS feeds, downloads, mobile

661
00:44:29.920 --> 00:44:34.159
apps, comments, and access to
the full archives going back to show number

662
00:44:34.159 --> 00:44:37.440
one, recorded in September two thousand
and two. And make sure you check

663
00:44:37.440 --> 00:44:42.440
out our sponsors. They keep us
in business. Now go write some code,

664
00:44:42.840 --> 00:45:00.239
see you next time. Got Jamdlevans
and this is

