1
00:00:04,040 --> 00:00:08,160
Hey there, this is Jeff Fritz, the Purple Blazer guy from Microsoft,

2
00:00:08,599 --> 00:00:12,880
letting you in on a little secret
about my friend Carl Franklin. You know,

3
00:00:13,000 --> 00:00:17,000
the guy who started dot net Rocks, the first podcast about dot net

4
00:00:17,199 --> 00:00:21,399
way back in two thousand and two. The guy who's been teaching Blazer on

5
00:00:21,440 --> 00:00:26,839
YouTube since twenty twenty. Yeah,
that Carl Franklin. Well, Carl has

6
00:00:26,920 --> 00:00:32,079
joined up with Codina Castle to teach
a week long hands on Blazer class this

7
00:00:32,200 --> 00:00:38,079
September. And get this, it's
at a castle slash villa in Tuscany.

8
00:00:38,640 --> 00:00:43,399
It's sort of a luxury vacation with
Blazer learning built in. He's calling it

9
00:00:43,479 --> 00:00:48,679
the Blazer master Class. You'll learn
Blazer from the ground up, finishing the

10
00:00:48,719 --> 00:00:54,000
week with the ability to build and
deploy Blazer applications. Now, Carl did

11
00:00:54,000 --> 00:00:57,799
this class last year and it was
a huge success. You can watch the

12
00:00:57,880 --> 00:01:02,200
awesome video from twenty twenty three on
the website, which I'll share in just

13
00:01:02,240 --> 00:01:06,879
a few seconds. Since the training
happens for only four hours in the morning

14
00:01:06,920 --> 00:01:10,560
over six days, you can bring
your significant other with you, and you

15
00:01:10,680 --> 00:01:15,640
should. This part of Italy is
absolutely beautiful. There's so much to see

16
00:01:15,640 --> 00:01:21,359
and do and Larry and Marco from
Code and a Castle are organizing daily activities

17
00:01:21,400 --> 00:01:26,439
both at the castle and in the
area. The castle is in the Maremma,

18
00:01:26,760 --> 00:01:30,599
a less tourist dy region of Tuscany, offering both classic Tuscan hill country

19
00:01:30,840 --> 00:01:37,000
as well as easy access to the
Etruscan Riviera, with sublime local food,

20
00:01:37,519 --> 00:01:42,200
wine and olive oil around every corner. Breakfast is included every day. There

21
00:01:42,200 --> 00:01:47,519
will be two communal dinners at the
castle, bookending the experience, and most

22
00:01:47,519 --> 00:01:52,840
other meals in all activities are included
and did I mention you'll learn Blazer in

23
00:01:52,920 --> 00:01:57,159
person from Carl Franklin. Space is
limited and for good reason. This is

24
00:01:57,200 --> 00:02:06,200
a quality training experience in beautiful setting. Go to Codeinnecastle dot com slash Blazer

25
00:02:06,480 --> 00:02:13,800
twenty twenty four that's b l a
zo R two zero two four to take

26
00:02:13,800 --> 00:02:19,639
advantage of this amazing opportunity to join
Carl in Tuscany for an unforgettable week of

27
00:02:20,000 --> 00:02:37,199
ladocha vita while advancing your programming skills
in this important new technology. Hey Carl

28
00:02:37,240 --> 00:02:40,280
and Richard here with your twenty twenty
four and DC schedule. We'll be at

29
00:02:40,319 --> 00:02:45,879
as many NDC conferences as possible.
This year, and you should consider attending

30
00:02:45,919 --> 00:02:51,159
no matter what. The Copenhagen Developers
Festival happens August twenty sixth through the thirtieth.

31
00:02:51,599 --> 00:02:57,879
Tickets at Cphdevfest dot com. NDC
Porto is happening October fourteenth through the

32
00:02:57,919 --> 00:03:02,719
eighteenth. The early discount ends June
fourteenth. Tickets at Ndcporto dot com.

33
00:03:02,759 --> 00:03:19,560
We'll see you there, we hope. Hello, and welcome back to dot

34
00:03:19,680 --> 00:03:23,319
NetRocks. I'm Carl Franklin and I'm
Richard Campbell. We're here again for the

35
00:03:24,120 --> 00:03:30,319
nineteen hundred and sixth time. There
you go. Well, let's be clear,

36
00:03:30,360 --> 00:03:31,840
I'm the new guy. I didn't
become co host. I'll show one

37
00:03:31,919 --> 00:03:37,439
hundred okay, eighteen hundred and six
shows. You'd had two co hosts before

38
00:03:37,439 --> 00:03:38,960
that. I remember thinking to myself, it's fifty shows. What's the big

39
00:03:39,080 --> 00:03:43,400
deal. It's gonna be easy.
Had fifty shows. What's the matter with

40
00:03:43,520 --> 00:03:46,199
us anyway, don't it? I
just got back from twenty six days on

41
00:03:46,199 --> 00:03:50,080
the road, man like wow,
which not actually a good idea. That

42
00:03:50,159 --> 00:03:55,919
was too long? Wow, so
long time six stops total three comm Yeah,

43
00:03:57,080 --> 00:04:00,840
you know you can't complain. Get
a chance to the folks who listen

44
00:04:00,840 --> 00:04:02,599
to the show and talk to all
our friends and there's you know, the

45
00:04:02,680 --> 00:04:06,000
other speakers and things. And I
got to visit with our friend Remy.

46
00:04:08,039 --> 00:04:12,159
I was that's right, he's got
a little baby, got a little seven

47
00:04:12,199 --> 00:04:15,879
month old. That's so cool.
Yeah. So and I did some fishing

48
00:04:15,919 --> 00:04:18,519
with our friend Huckabee. Oh yeah, that's right. Yeah. Was that

49
00:04:18,560 --> 00:04:23,959
in Montana? It was in Montana. That was on the Dolan Flats west

50
00:04:23,959 --> 00:04:27,759
of Missoula. It was Brad Pitt
with you guys. No, no,

51
00:04:28,560 --> 00:04:32,160
Robert Redford, absolutely, but no
Brad Pitt. Uh. The guys who

52
00:04:32,199 --> 00:04:35,639
run that place are fantastic. And
it is you know, I find fly

53
00:04:35,720 --> 00:04:40,279
fishing vaguely daft, because you know, we're throwing everything back, like we're

54
00:04:40,279 --> 00:04:42,480
catching a lot of fish, but
we're putting them all back. It's an

55
00:04:42,519 --> 00:04:45,759
excuse to stand in the water and
drink beer. Yeah, let's be clear.

56
00:04:45,800 --> 00:04:48,959
Actually it is drinking and partying with
your friends, interrupted occasionally by floating

57
00:04:48,959 --> 00:04:55,560
in a boat. We had We
had a great time. And yeah,

58
00:04:55,600 --> 00:04:59,399
my cast is getting better according to
the outfitter. So oh that sounds great.

59
00:04:59,519 --> 00:05:01,360
There you go. Well, I
don't really have much to say after

60
00:05:01,439 --> 00:05:04,680
that, so let's just roll the
music for better not a framework. All

61
00:05:04,759 --> 00:05:17,360
right, what do you got so
at build? I did this video with

62
00:05:18,639 --> 00:05:24,160
Don Weeba from dev Express, and
it's called May the Forms Be with You?

63
00:05:24,560 --> 00:05:27,399
I love it. You're such a
geek. I didn't name it.

64
00:05:27,800 --> 00:05:30,800
I can't take credit for that.
I think that was Don. But basically,

65
00:05:30,839 --> 00:05:36,279
it's a wind forms hybrid app that
uses both wind Forms and Blazer at

66
00:05:36,319 --> 00:05:42,160
the same time. You're seeing wind
forms, not web forms. Wind forms.

67
00:05:42,279 --> 00:05:46,240
You're crazy. I know. This
is really cool. It's a Windows

68
00:05:46,240 --> 00:05:49,160
form app. It has like a
Windows Forms Dev Express grid, and then

69
00:05:49,199 --> 00:05:55,240
it has a some other stuff that's
built with Blazer and they interact with each

70
00:05:55,279 --> 00:05:59,360
other and it's very cool. Okay, So I thought I would post that

71
00:05:59,480 --> 00:06:02,199
in This is nineteen oh six.
You can go to nineteen oh six dot

72
00:06:02,560 --> 00:06:08,480
pwop dot me and that'll take you
there, or you could just google bing

73
00:06:08,720 --> 00:06:13,360
May the Forums Be with You Microsoft
Build. Yeah, awesome, dude.

74
00:06:13,560 --> 00:06:16,240
So that's what I got. Richard, who's talking to us? Grab a

75
00:06:16,240 --> 00:06:21,199
comment off of show seventeen fifty five
when we did with one Joseph Finnie talking

76
00:06:21,240 --> 00:06:24,800
about building text Grab. I don't
know, have you ever heard of it.

77
00:06:24,800 --> 00:06:27,600
It's in the power toys and it
turns out you can make a power

78
00:06:27,639 --> 00:06:31,959
toy. They'll make an MVP.
Yeah, and Talon Kincaid had his comments

79
00:06:31,959 --> 00:06:35,759
a few months ago now we said
text grab revolutionized online classes for me,

80
00:06:36,040 --> 00:06:41,439
professor's notes and the ability to make
notes through OCR. I appreciate this developer's

81
00:06:41,519 --> 00:06:46,959
problem solved over at Christmas break.
Thanks for Finn. That's talent, kN

82
00:06:46,040 --> 00:06:48,480
Kate, very cool. I got
nothing more to say than that. It's

83
00:06:48,519 --> 00:06:53,720
like you know, and I hope
Joe feels the same way. It's like

84
00:06:53,920 --> 00:06:58,040
you make something, people use it
and they are grateful. This is the

85
00:06:58,040 --> 00:07:00,120
best part of our job. True, absolutely, yeah, it really is,

86
00:07:00,199 --> 00:07:03,519
especially with small, little purpose built
utilities like that. Yeah. Yeah,

87
00:07:03,560 --> 00:07:05,920
so talent, thank you so much
for your comment, and a copy

88
00:07:05,959 --> 00:07:09,040
music codey is on its way to
you. And if you'd like a copy

89
00:07:09,079 --> 00:07:11,600
of music Coobe. I read a
comment on the website at dot net rocks

90
00:07:11,600 --> 00:07:14,199
dot com on the facebooks. You
publish every show there, and if you

91
00:07:14,199 --> 00:07:15,959
comment there and not reading on the
show, we'll send you copy music COBA

92
00:07:16,120 --> 00:07:19,079
and you can follow us on x
Twitter, which is what I'm calling it

93
00:07:19,120 --> 00:07:23,879
now Twitter x Nope, ex Twitter. It was Twitter? Now is Twitter?

94
00:07:23,920 --> 00:07:28,240
Now? Is on Twitter? An
ex Twitter? You can follow us

95
00:07:28,279 --> 00:07:30,879
there at Carl Franklin and at Rich
Campbell. However, the cool kids are

96
00:07:30,879 --> 00:07:35,360
hanging out on Macedon. I'm at
Carl Franklin at techcub dot Social, and

97
00:07:35,399 --> 00:07:40,560
I'm Rich Campbell at macedon Social.
Send us a tuote you never know?

98
00:07:41,120 --> 00:07:43,759
How about that for a tagline?
Send us a tute you never know?

99
00:07:43,839 --> 00:07:49,040
It's like that. All you need
is a dollar and a dream. All

100
00:07:49,120 --> 00:07:54,240
right, Well, let's introduce formally
Joe Finney. By day, he's a

101
00:07:54,240 --> 00:08:01,600
mobile product owner and MVP and builds
productivity apps for Win Windows at night and

102
00:08:01,639 --> 00:08:07,519
when he's not programming, he's birding, running and enjoying tasty coffee and beer

103
00:08:07,920 --> 00:08:11,720
in Milwaukee. Hey Joe, Hey, how's it going going to have you

104
00:08:11,800 --> 00:08:16,199
back? Man? Ye, it's
good to be back and talk about really

105
00:08:16,639 --> 00:08:22,639
surprising but exciting stuff. You pinged
me on this show and I just said,

106
00:08:22,759 --> 00:08:24,279
yes, where do you want to
go? Friend? What are you

107
00:08:24,360 --> 00:08:28,000
talking about? So? The big
build news, I think for a lot

108
00:08:28,040 --> 00:08:35,480
of Windows developers was that WPF is
back. Did it ever really go away?

109
00:08:37,080 --> 00:08:43,559
WPF is officially back? How's that
Yeah, it's I think this is

110
00:08:43,600 --> 00:08:48,519
one of those announcements to your point, Richard, that everyone was happy to

111
00:08:48,559 --> 00:08:54,879
see more of an acknowledgment because it
never went away. No, but this

112
00:08:54,720 --> 00:08:58,279
it felt like the spend was was
just like housekeeping. They were keeping a

113
00:08:58,320 --> 00:09:05,440
patch for secure but you word seeing
features and the another hot topic of this

114
00:09:05,519 --> 00:09:09,039
show is frequently open source and you
know, how do you manage that?

115
00:09:09,159 --> 00:09:13,960
How do you support it? And
WPF was open sourced years ago, and

116
00:09:15,039 --> 00:09:16,759
so that was I mean, I
don't know when that actually happened, but

117
00:09:18,080 --> 00:09:22,200
you know it's been open source for
several years. But if you look at

118
00:09:22,200 --> 00:09:26,000
the contributions and like how it's actually
being managed, it's not like a traditional

119
00:09:26,080 --> 00:09:31,440
open source you know, repository.
You know, before we go any further

120
00:09:31,480 --> 00:09:35,200
with WPF, I got to acknowledge
the couple of people who left comments on

121
00:09:35,240 --> 00:09:41,559
the website about our talk with Beth
Massey and you know, Carl, here's

122
00:09:41,639 --> 00:09:45,559
Carl dissing zamble again, right,
because you know, I'm kind of cranky

123
00:09:45,639 --> 00:09:50,559
sometimes but not really, I'm The
thing is is that I did a lot

124
00:09:50,639 --> 00:09:54,840
of zamal and then I you know, then the web sort of took over

125
00:09:54,879 --> 00:09:58,720
my life, and I learned Blazer, and I just love the binding model

126
00:09:58,720 --> 00:10:05,919
and all that stuff, and and
uh, when I could do WPF applications,

127
00:10:05,960 --> 00:10:09,200
I chose to do them in Blazer
with Blazer Hybrid. And like I

128
00:10:09,279 --> 00:10:13,200
was talking in the in the beginning, the web forms in Blazer is also

129
00:10:13,200 --> 00:10:18,519
a nice combination. So yeah,
and and you know, it's my opinion.

130
00:10:18,799 --> 00:10:22,720
I'm kind of entitled to my opinion. Everybody's got an opinion. I

131
00:10:22,759 --> 00:10:28,159
don't. But you know, this
isn't a training session on Zamal. You

132
00:10:28,159 --> 00:10:31,440
know, it's this isn't the dot
Ne Rocks is just we just talk,

133
00:10:31,320 --> 00:10:35,639
you know. So there's plenty of
people who love Zamal. And Billy Hollis

134
00:10:35,639 --> 00:10:39,639
comes to mind. He and I
are really good friends, and he even

135
00:10:39,720 --> 00:10:43,639
likes Blazer too. So you know, it's not that I'm down on Zamal.

136
00:10:45,039 --> 00:10:48,919
It's just that I personally am doing
more Blazer than Zamal these days.

137
00:10:50,480 --> 00:10:52,360
Makes you happy, Blazer makes me
happy. But but I just wanted to

138
00:10:52,360 --> 00:10:56,159
get that out of the way.
But I'm really curious to find out because

139
00:10:56,159 --> 00:11:01,440
I didn't read about this, and
I didn't see anything about it to build

140
00:11:01,480 --> 00:11:05,679
because I wasn't really watching but so
tell us what's new in WPF that's so

141
00:11:05,720 --> 00:11:09,399
exciting. Well, I really do
think, as Richard said, the attention

142
00:11:09,919 --> 00:11:13,879
is hopefully changing. I think that's
kind of the major element that spent a

143
00:11:13,879 --> 00:11:18,080
big problem for a lot of people
for a long time, which was you

144
00:11:18,159 --> 00:11:22,000
have these major projects, you have
these huge apps that people are building,

145
00:11:22,720 --> 00:11:26,039
and Microsoft was telling everyone to you
know, first they were saying, oh,

146
00:11:26,120 --> 00:11:35,600
stop building that and build wuwp And
obviously that was a bit too far

147
00:11:35,759 --> 00:11:37,639
for most people to do, and
it didn't work, and it cut out

148
00:11:37,639 --> 00:11:41,679
a bunch of stuff, and it
was a whole new flavor of Examle and

149
00:11:41,879 --> 00:11:45,200
the whole model was totally different,
you know, focus on mobile devices,

150
00:11:45,480 --> 00:11:50,759
and so people did not jump.
People stayed in WPF. And then they

151
00:11:50,799 --> 00:11:54,720
said, okay, when you I
you know, Reunion, when UI and

152
00:11:54,759 --> 00:11:58,759
now the win FSDK, that's the
new thing. And for a couple of

153
00:11:58,799 --> 00:12:01,960
years they were like, this is
our platform, this is the only thing

154
00:12:03,000 --> 00:12:07,879
we're supporting. Again, they open
source WPF and wind forms. Years ago

155
00:12:07,480 --> 00:12:11,759
was when they open source WPF.
Okay, so it's been open source for

156
00:12:11,759 --> 00:12:16,320
a while, but I would say
mainly it's there to track issues. There

157
00:12:16,360 --> 00:12:22,240
have been some major community contributions,
but major in the uh, you know,

158
00:12:22,360 --> 00:12:24,879
it's amazing that they did it,
and they were kind of big,

159
00:12:24,879 --> 00:12:28,960
but they were not fixing some of
the major kind of pain points that you

160
00:12:30,000 --> 00:12:33,840
would have if you were going to
make a new WPF app today, which

161
00:12:33,639 --> 00:12:39,000
as the what is it a spaceship
our battleship gray When you make a new

162
00:12:39,120 --> 00:12:43,919
WPF app today, it looks like
a WPF app, And so I would

163
00:12:43,960 --> 00:12:46,840
say that was the number one,
you know challenge, one of the major

164
00:12:46,919 --> 00:12:52,279
challenges that a lot of people had
with the platform, which is it does

165
00:12:52,320 --> 00:12:56,600
a lot of stuff that it's really
the only or the best way to do

166
00:12:56,679 --> 00:13:00,279
it. It's the main tool that
most people are using to make the really

167
00:13:00,320 --> 00:13:05,279
complicated Windows apps. Microsoft's not investing
in it, they're not focusing on it,

168
00:13:05,000 --> 00:13:07,559
and it's a lot of work to
try to get it to look like

169
00:13:07,639 --> 00:13:13,720
it fits in Windows and Windows eleven. And so that was actually recently they

170
00:13:13,720 --> 00:13:20,639
announced that the theming is all changing, so you can add a new line

171
00:13:20,679 --> 00:13:28,399
to your application zamo file to use
a new fluent design resource and boom you

172
00:13:28,480 --> 00:13:33,000
have all the rounded corners, all
the fluenty things. And so your old

173
00:13:33,039 --> 00:13:37,679
school WPF app now looks like it
belongs in a part of Windows, which

174
00:13:37,720 --> 00:13:41,919
was always a big challenge of how
do you make this old framework look and

175
00:13:41,960 --> 00:13:46,559
behave new and so there were a
lot of independent, kind of open source

176
00:13:46,600 --> 00:13:50,960
frameworks to do that work, but
they were very open source. They were

177
00:13:50,000 --> 00:13:54,240
maintained by community members and it's a
lot of work. There are a lot

178
00:13:54,240 --> 00:13:58,679
of controls. And so now Microsoft
has acknowledged, okay, that we have

179
00:13:58,799 --> 00:14:05,080
two major play platforms if you're going
to build Windows apps, WPF and win

180
00:14:05,200 --> 00:14:09,440
FSDK. So they've kind of acknowledged
the reality that those are the two platforms,

181
00:14:09,559 --> 00:14:13,200
but they didn't say when UI.
Well, when UI is the UI

182
00:14:13,360 --> 00:14:18,159
layer of win fsdk, right,
so I would say it's under that that

183
00:14:18,240 --> 00:14:24,080
tent. So win FSDK is definitely
it's the APIs the platform, and then

184
00:14:24,159 --> 00:14:26,039
when UI is the UI for it? Are we talking about it? More?

185
00:14:26,120 --> 00:14:30,519
Essential? Gives them here, Joe, because when U I and the

186
00:14:30,519 --> 00:14:37,039
win FSDK comes from the Windows team
and WPF comes from dev dip. Yeah,

187
00:14:37,080 --> 00:14:41,519
that's a great point. I mean, this is a Conway's law situation.

188
00:14:41,080 --> 00:14:46,720
Actually, you have two different teams
that are writing UIs, that are

189
00:14:46,759 --> 00:14:52,399
creating a user interface to a platform. You're going to get two. Yeah.

190
00:14:52,639 --> 00:14:56,159
No, I mean it's definitely a
challenge, and I think it's it's

191
00:14:56,440 --> 00:14:58,039
when you look at the priorities of
the Windows team, which is like moving

192
00:14:58,080 --> 00:15:03,320
forward and doing more new modern things
with devices and everything they're doing with ARM

193
00:15:03,919 --> 00:15:07,080
and performance there. If you want
to do those kinds of cool things,

194
00:15:07,759 --> 00:15:13,480
that's all one FSDK. So there
were a lot of announcements at around one

195
00:15:13,639 --> 00:15:18,240
FSDK at build about what you can
do and now you can do ahead of

196
00:15:18,279 --> 00:15:20,879
time compile. Now you can do
a bunch of like really cool stuff,

197
00:15:20,879 --> 00:15:24,919
and there's a lot of new controls, and it's way more modern as far

198
00:15:24,960 --> 00:15:28,679
as like if you want to touch
the device and pinch and zoom those things,

199
00:15:28,480 --> 00:15:31,399
one STDK. That's out of the
box. That's really easy. You

200
00:15:31,440 --> 00:15:35,519
don't have to worry about it.
Like when UI controls are amazing, they

201
00:15:35,559 --> 00:15:41,279
feel modern, they look modern.
WPF is classic. It's the classic flavor.

202
00:15:41,639 --> 00:15:43,960
So if you're doing a lot of
keyboard and mouse, it's right there

203
00:15:45,000 --> 00:15:48,600
with you and that's kind of what
it's tailored to and that's what it's been

204
00:15:48,679 --> 00:15:52,440
tailored to, and that's what a
lot of these huge apps that you know,

205
00:15:52,000 --> 00:15:56,559
big companies all over the place.
That really, I mean sure there

206
00:15:56,559 --> 00:16:03,279
are elements of well, isn't Visual
Studio WPF unusual exception? Right? That

207
00:16:03,399 --> 00:16:10,639
was a very specific attent by Jason
Xander in twenty ten to put WPF to

208
00:16:10,679 --> 00:16:15,000
work inside of Microsoft application for the
first time ever. And it costs studio

209
00:16:15,000 --> 00:16:18,240
if anybody remembers Studio twenty ten,
like it was delayed by a month for

210
00:16:18,320 --> 00:16:23,480
performance reasons. On the other hand, the WPF got wildly better because they

211
00:16:23,679 --> 00:16:30,360
needed to. They pounded on it
for performance. They pounded on the calm

212
00:16:30,399 --> 00:16:33,919
interrop like there was all those problems. And again I'm going back fourteen years

213
00:16:33,919 --> 00:16:40,559
because I get to do that,
but I really feared for WPF back in

214
00:16:40,559 --> 00:16:42,399
those days. It had been four
years as they launched it in two thousand

215
00:16:42,440 --> 00:16:47,480
and six as a fallout of Vista, and it really it should have been

216
00:16:47,759 --> 00:16:52,840
implemented an office immediately. But because
that's your best val validation. You know,

217
00:16:52,919 --> 00:16:56,120
if you're a microsmart Microsoft watcher,
you look at what Microsoft is using

218
00:16:56,639 --> 00:17:00,440
because that's the products that are going
to persist. For crying out, the

219
00:17:00,519 --> 00:17:03,359
VB six run time is still shipped
in Windows eleven. I'll tell you there's

220
00:17:03,799 --> 00:17:11,519
a WPF app a commercial app that
I use a lot for streaming that's written

221
00:17:11,519 --> 00:17:18,000
in WPF. Yeah, and it's
it's called v mix. Nice. V

222
00:17:18,119 --> 00:17:26,319
mix is written and get this vb
net in WPF and it's all I l

223
00:17:26,400 --> 00:17:30,599
on the hood. Baby, it's
a app, like it really is awesome.

224
00:17:30,079 --> 00:17:33,279
It's great. Yeah, I think
that's kind of I mean, if

225
00:17:33,319 --> 00:17:37,680
we go all the way back to
the beginning of this discussion about a utility

226
00:17:37,720 --> 00:17:40,799
that does a job, I think
that's kind of at the end of the

227
00:17:40,880 --> 00:17:44,240
day, that's what we're doing,
like software, not for software's sake.

228
00:17:44,480 --> 00:17:48,119
We're here to build tools. And
WPF has been around for a long time,

229
00:17:48,279 --> 00:17:52,039
which means when you run into a
problem a WPF and you google it,

230
00:17:52,559 --> 00:17:56,519
there's an answer, there's an answer, and it is very useful.

231
00:17:56,799 --> 00:18:00,880
Let's get to twenty twenty four here
we're going to ask chat GPT. Really

232
00:18:00,640 --> 00:18:06,279
that's man, that's funny that you
say that you want to go very modern.

233
00:18:06,440 --> 00:18:14,359
So one, it's really funny whenever
GitHub co pilot suggests APIs that you

234
00:18:14,400 --> 00:18:17,920
want to call and you see it
in a little preview and the great text

235
00:18:17,920 --> 00:18:19,319
and you're like, oh, that's
exactly what I want. You hit tab

236
00:18:19,839 --> 00:18:23,200
and then the rech squigglies come and
they say, that's not a real ABI,

237
00:18:25,279 --> 00:18:29,640
that's what you want, what you
want in your dream. Yeah,

238
00:18:29,680 --> 00:18:33,160
so then you search it in GitHub
news say is this actually real? Why

239
00:18:33,200 --> 00:18:36,920
did this get recommended? And you're
like, oh no, it's something that

240
00:18:36,960 --> 00:18:41,400
somebody eln't made to make you happy. I went around with I'm going around

241
00:18:41,440 --> 00:18:45,880
with chat GPT recently trying to solve
a problem, and it became clear after

242
00:18:45,960 --> 00:18:51,920
about I don't know, twenty or
thirty minutes that it really didn't have the

243
00:18:52,599 --> 00:18:56,119
necessary means to solve the problem,
and just a quick search on stack overflow

244
00:18:56,279 --> 00:19:02,160
I found the answer immediately. Yeah, you know, I am surprised,

245
00:19:02,200 --> 00:19:06,400
to go with, I'm surprised that
the data is not better because there's a

246
00:19:06,440 --> 00:19:11,720
lot of WPF questions and answers on
stock overflow and they're really high quality and

247
00:19:11,759 --> 00:19:15,920
they're really good, and they ask
basic questions that you know you're going to

248
00:19:15,000 --> 00:19:18,319
run into if you're developing an app, and if you ask the same thing

249
00:19:19,200 --> 00:19:23,039
in you know, when FSDK,
you're lucky if you get an answer.

250
00:19:23,200 --> 00:19:27,119
I mean, for example, I
make an app that basically generates icon files

251
00:19:27,680 --> 00:19:33,079
because I needed to make icon files
for my other apps, and I couldn't

252
00:19:33,079 --> 00:19:36,960
find an easy way to do it. And so what I wanted I want

253
00:19:36,960 --> 00:19:41,240
to be able to zoom in and
see the pixel perfect preview of that with

254
00:19:41,319 --> 00:19:45,359
no anti leasing, no blurring,
no smoothing. Yeah it alone, right,

255
00:19:45,799 --> 00:19:48,839
I know it's sixteen by sixteen pixels. Show me the sharp lines.

256
00:19:49,160 --> 00:19:52,680
You can see those in visual studio? I think, yep, yeah,

257
00:19:52,720 --> 00:19:56,799
you can in visual studio that is. But if you it's a little weird.

258
00:19:56,880 --> 00:20:02,319
Visual studio previewer for images can be
a little funk. But when f

259
00:20:02,400 --> 00:20:03,759
SDK, when you zoom in,
I was like, I just want to

260
00:20:03,759 --> 00:20:08,680
turn off this thing and all the
solutions I found. We're a WPF because

261
00:20:08,680 --> 00:20:12,680
there are a lot of solutions out
there, but there are a lot of

262
00:20:12,720 --> 00:20:17,359
re WVF because it's been around,
it's you know, it's battle tested,

263
00:20:17,640 --> 00:20:22,480
well you want it's been abstracted from
the platform the whole time. There's no

264
00:20:22,680 --> 00:20:26,799
direct platform dependencies. I mean,
let's be clear here. Win app SDK

265
00:20:26,039 --> 00:20:30,759
is what the Windows teams use to
build parts of Windows. It's C plus

266
00:20:30,799 --> 00:20:37,480
plus first and foremost. It supports
dot Net C sharp act all. But

267
00:20:37,599 --> 00:20:41,880
does it like I could see where
there be you know what their first language

268
00:20:41,920 --> 00:20:45,720
is. Their first language is C
plus plus and so every saw you know,

269
00:20:45,759 --> 00:20:48,720
sometimes you look at a call inside
of when when you I go,

270
00:20:49,279 --> 00:20:52,160
you know, if I was a
C plus plus person, that would be

271
00:20:52,240 --> 00:20:55,799
awesome, but I'm a C sharp
person and ah am I going to do

272
00:20:55,880 --> 00:21:02,279
this well exactly And the new the
brand new again build announcement. I think

273
00:21:02,279 --> 00:21:06,319
it was co pilot run time.
Is that the name of it? Which

274
00:21:06,359 --> 00:21:11,000
is the new all the models that
they're going to bring, the different mL

275
00:21:11,079 --> 00:21:15,039
models to win PSDK. Right.
I was looking at these saying, you

276
00:21:15,119 --> 00:21:18,079
know what, I have an Apple
context grab that would love to have some

277
00:21:18,119 --> 00:21:23,519
really updated OCR capabilities. And they're
like, here's how you implement it in

278
00:21:23,599 --> 00:21:30,680
C plus plus and I'm right,
can I That's this happened with in the

279
00:21:30,720 --> 00:21:33,160
early days of dot net, with
C sharp and VB dot net. The

280
00:21:33,240 --> 00:21:37,240
first samples were always written in C
sharp right, and the VB dot Net

281
00:21:37,240 --> 00:21:40,480
people were understandably annoyed. It's like, come on, made me switch?

282
00:21:40,839 --> 00:21:42,400
Yeah, well, I had the
big My problem was that I was so

283
00:21:42,480 --> 00:21:45,440
used to writing VB that I kept
forgetting it was VB dot net when I

284
00:21:45,440 --> 00:21:48,799
was writing C sharp. You knew
you were writing, You really did know,

285
00:21:49,200 --> 00:21:52,960
so your brain made the context switch, but you know you hit on

286
00:21:53,039 --> 00:21:57,480
it. It's a C plus plus
first API. As much as they and

287
00:21:57,519 --> 00:22:02,119
I appreciate them doing this, try
to make it friendly for dot net folks

288
00:22:02,200 --> 00:22:06,240
that's not his native language. I
think of these two platforms though, as

289
00:22:06,279 --> 00:22:11,839
serving different you know, customers.
I think of Adobe, you know,

290
00:22:11,000 --> 00:22:17,000
using the win app API for their
applications, you know, because they're all

291
00:22:17,079 --> 00:22:22,240
C plus plus you know, maximum
performance kind of things. Whereas business software,

292
00:22:22,839 --> 00:22:26,160
you know, and software that we're
writing for ourselves. You don't want

293
00:22:26,160 --> 00:22:30,000
to have to do all that,
you know, the you need to be

294
00:22:30,079 --> 00:22:36,519
productive, and that's where WPF really
shines absolutely. And WPF is great for

295
00:22:36,519 --> 00:22:40,680
forms over data. It has a
visual designer, It has a huge toolbox

296
00:22:40,680 --> 00:22:45,880
of controls. It has a huge
supported ecosystem of companies who build controls,

297
00:22:45,960 --> 00:22:51,000
who offer contracts, and people who
know how to how the system works and

298
00:22:51,039 --> 00:22:53,519
can jump in and fix it and
they know the common pitfalls. I'm sorry,

299
00:22:53,559 --> 00:22:57,480
did you just casually say visual designer? Does it? Is that design?

300
00:22:57,519 --> 00:23:02,640
I mean, if you're as person
like I came to appreciate that the

301
00:23:02,680 --> 00:23:07,319
wind Forms designer was the exception.
There's that every other attempted designer couldn't hold

302
00:23:07,319 --> 00:23:11,039
a candle to what wind Forms did. That's true, but WPF has a

303
00:23:11,119 --> 00:23:17,680
visual designer and the number one request
of ONEPSTK and when UI is a visual

304
00:23:17,720 --> 00:23:21,839
designer and what's going on, the
team has not built it yet, it's

305
00:23:21,880 --> 00:23:25,359
not as because it's not easy.
Look at how long it took the WPF

306
00:23:25,400 --> 00:23:27,319
team to make what is usable like, it's hard. It's hard, you

307
00:23:27,359 --> 00:23:30,799
know. It seems like we have
this conversation Richard every once a year or

308
00:23:30,799 --> 00:23:34,119
two years or so, and you
bring up the same point and I come

309
00:23:34,160 --> 00:23:40,240
back with the same comeback, which
is Windows Forms is pixel based, yep,

310
00:23:40,599 --> 00:23:45,920
and designers are easy when it's pixel
based, but not of the UI

311
00:23:45,039 --> 00:23:51,720
isn't flexible like it is in sample
and so that just by nature you don't

312
00:23:51,720 --> 00:23:55,000
have like, have you ever seen
a web designer that was close to Windows

313
00:23:55,000 --> 00:23:56,440
Forms, No, because it's not
pixel based either. Well, and I

314
00:23:56,480 --> 00:24:00,079
point out that wind Forms isn't pixel
based anymore either since three dot one SDK

315
00:24:02,039 --> 00:24:06,279
now they're doing interpolation for high resolution, which is why it wasn't pixel perfect

316
00:24:06,279 --> 00:24:10,480
to switch over to it but you
know, point well taken. And let's

317
00:24:10,480 --> 00:24:17,240
face it, I rarely want to
manipulate the designer. I want that continuous

318
00:24:17,319 --> 00:24:19,920
view as i'm editing code. What
I mean by pixel based Richard is if

319
00:24:19,920 --> 00:24:23,880
you put a button, you have
a location which is pixel based. Whether

320
00:24:23,920 --> 00:24:27,960
it gets scaled it is a different
thing. But you start with a grid,

321
00:24:29,559 --> 00:24:32,039
you know, and you have the
X and y. Are you know

322
00:24:32,119 --> 00:24:34,680
one hundred and one hundred that that's
where it is? Yeah, on the

323
00:24:34,720 --> 00:24:38,960
page a bit more thing might scale
and move around depending on the you know,

324
00:24:40,119 --> 00:24:44,720
flow layout or whatever. But it
is it's interesting how the tools are

325
00:24:44,759 --> 00:24:47,720
adapting, even design tools. I
mean stuff like Pigma. I don't know

326
00:24:47,759 --> 00:24:52,759
how familiar. Oh yeah where yeah
I got bit by Figma. Yeah,

327
00:24:52,839 --> 00:24:56,799
Pigma is a really interesting isn't it? And where's a lot of the energy

328
00:24:56,839 --> 00:25:00,279
and wears a lot of the cool
stuff built? Is it like auto layout

329
00:25:00,640 --> 00:25:04,480
which is not pixel perfect? You
know, those controls float and they resize

330
00:25:04,519 --> 00:25:08,400
and they you know, they fill
the space in weird dynamic ways and it's

331
00:25:08,400 --> 00:25:15,559
hard to do, but it's It's
also interesting because WPF with the visual designer.

332
00:25:15,920 --> 00:25:18,519
I think initially you might think,
oh, I'm going to be looking

333
00:25:18,559 --> 00:25:21,960
at the whole app with all of
your child components and all of this stuff,

334
00:25:22,039 --> 00:25:22,680
and you're like, wow, that's
a lot. You know, that's

335
00:25:22,720 --> 00:25:26,680
a lot of stuff to visually display. But really what I find the visual

336
00:25:26,720 --> 00:25:30,720
designer handy for is I want to
look at a small little component because you

337
00:25:30,759 --> 00:25:33,640
know, I'm building a little button
and I'm building a little screen page,

338
00:25:34,039 --> 00:25:38,599
and I just want to see my
little component as I'm updating it and maybe

339
00:25:38,599 --> 00:25:41,279
I forget to put some property on
there and it's all the way to the

340
00:25:41,359 --> 00:25:45,039
side and not you know, whatever
it is. I want to be able

341
00:25:45,119 --> 00:25:48,119
to design these little components and then
you bring all the components together, you

342
00:25:48,200 --> 00:25:51,519
run the app and you see how
it flows, and you see how it

343
00:25:51,559 --> 00:25:53,480
you know, works as a running
app. But I think that's kind of

344
00:25:53,480 --> 00:25:56,799
where it is really convenient. Yeah, And to that point, it's like,

345
00:25:56,839 --> 00:26:00,359
we're also no longer in the land. If everybody has a desktop PC,

346
00:26:02,000 --> 00:26:04,359
you're expected to make this stuff look
good on a tablet and on a

347
00:26:04,400 --> 00:26:10,079
phone and everywhere else. And these
new design tools are way more capable of

348
00:26:10,119 --> 00:26:15,000
that. There's nothing certain, of
course, but you know capable. And

349
00:26:15,200 --> 00:26:21,480
when UI has I think UWP introduced
it UWP's zambo. But there's like these

350
00:26:21,559 --> 00:26:25,880
view states where you can have breakpoints, which it's so nice when you have

351
00:26:25,920 --> 00:26:29,400
a window that you can shrink down, and the UI kind of adapts and

352
00:26:29,480 --> 00:26:33,519
compacts so that you can have a
little column and your you know, navigation

353
00:26:33,640 --> 00:26:37,079
view changes or your UI moves around
so that you can still hit the buttons.

354
00:26:37,400 --> 00:26:40,960
And some of these old school to
WPF apps, you resize that window.

355
00:26:41,359 --> 00:26:44,119
Yeah, you can't use the app
anymore. You are sav Yeah,

356
00:26:44,759 --> 00:26:48,160
buttons are gone, right like,
well, I guess I'm not allowed to

357
00:26:48,200 --> 00:26:52,160
have it like that. And so
I think that's kind of the thinking here

358
00:26:52,200 --> 00:26:55,720
is if you want to build more
of a modern dynamic app, there are

359
00:26:55,759 --> 00:27:00,240
tools for you. But if you
are supporting an old WFPP or a very

360
00:27:00,400 --> 00:27:07,559
purpose built utility, WPF is here
and Microsoft is doing some big investments to

361
00:27:07,599 --> 00:27:12,440
make it better. I'm looking at
the contributors for the past few months in

362
00:27:12,960 --> 00:27:18,799
on GitHub repository, and the maestro
bot has been pushing code constantly. M

363
00:27:19,000 --> 00:27:23,759
hm. So you know, just
again, you know that proofs in the

364
00:27:23,759 --> 00:27:27,119
pudding. It's like, there's no
better example than there is new code going

365
00:27:27,160 --> 00:27:32,720
into WPF right now. Yep,
yeah. I think the two big announcements

366
00:27:32,759 --> 00:27:37,599
that came out of build was the
Windows eleven styling yeah, and hyphen based

367
00:27:37,680 --> 00:27:45,559
ligature support. So get excited.
Iphen based what ligatures? I'm sorry,

368
00:27:45,519 --> 00:27:51,640
so excited? Yeah, I'm tell
me about that. Honestly, it's not

369
00:27:51,640 --> 00:27:55,839
a future I use Richard. I
don't even know what it means. Sorry,

370
00:27:55,880 --> 00:27:57,319
I'm going to have to that's something
Mike in Google, Dang after the

371
00:27:57,359 --> 00:28:00,880
show. It's just a yeah,
it's the way that lay out on the

372
00:28:00,920 --> 00:28:06,519
page based on Okay, so yeah, but it's been it's been an open

373
00:28:06,519 --> 00:28:11,400
issue for since twenty eighteen. Has
opened right away, yep, so that's

374
00:28:11,400 --> 00:28:12,920
getting fixed. Yeah, No,
it's it's this is a yeah. So

375
00:28:14,000 --> 00:28:17,920
this is about the features of This
is a C plus plus approach to coding,

376
00:28:18,039 --> 00:28:19,160
right, m m. So it's
how do you how do you pass

377
00:28:19,200 --> 00:28:26,079
these things? All? Right?
I mean it's you know that now now

378
00:28:26,119 --> 00:28:29,359
that we talk about this way,
I realize, hey, you know this

379
00:28:29,519 --> 00:28:32,839
is all the same problem from working
on it for different teams. You need

380
00:28:32,880 --> 00:28:36,759
to think about the origins of UWP
was Microsoft was supposed to have a phone

381
00:28:36,759 --> 00:28:38,160
and a tablet and a PC,
and they wanted to make it easy for

382
00:28:38,240 --> 00:28:41,680
us to code for all of them, and the Windows team tried to drive

383
00:28:41,720 --> 00:28:45,759
that that's the original concept of UWP, and it's spun up to become the

384
00:28:45,799 --> 00:28:52,440
win FSDK. And the same issue
existed with from Zamorin and from Zammal and

385
00:28:52,599 --> 00:28:56,319
from silver Light. Like ZAMA was
very fragmented for a long time there until

386
00:28:56,680 --> 00:29:02,480
the last few years where they've kind
of brought all the zamble back together because

387
00:29:02,519 --> 00:29:06,359
they were in a state. But
we were all struggling with the same essential

388
00:29:06,400 --> 00:29:10,920
problem, which is that the age
of the thing, the client machine is

389
00:29:10,960 --> 00:29:15,559
the same as the dev machine has
been dead for a long time. Did

390
00:29:15,599 --> 00:29:18,960
they really bring all the amals back
together for them? Was I sleeping through

391
00:29:18,960 --> 00:29:23,000
that? It's essentially if you think
about what is MAUI, that's Maui.

392
00:29:23,359 --> 00:29:29,839
It's no, it's just another flavor
of Sammel. I agree, but it's

393
00:29:29,920 --> 00:29:33,400
the it's supposed to be the dominant
flavor. It's supposed to be but not.

394
00:29:33,039 --> 00:29:37,359
I don't think I'm with you.
It's definitely that was the mission.

395
00:29:37,559 --> 00:29:41,720
There's a few others in the process. I kind of think that's the way

396
00:29:41,759 --> 00:29:45,759
with everything, though. You know, when UI UWP was supposed to be

397
00:29:45,799 --> 00:29:48,039
the one xamal to rule them all. Yeah. I mean, but they

398
00:29:48,079 --> 00:29:52,880
but they they have this thing called
backward compatibility that they can't break. So

399
00:29:52,960 --> 00:29:56,359
these ammals are going to last forever. Yeah, yeah, they really are.

400
00:29:56,480 --> 00:30:02,400
And I think ultimately when you see
Microsoft do these big jumps and turn

401
00:30:02,440 --> 00:30:06,240
around and look at their developers and
say all right, follow me, follow

402
00:30:06,279 --> 00:30:11,079
me to UWP, and I think
they have a Microsoft. Their biggest problem

403
00:30:11,119 --> 00:30:15,920
is that all of their developers and
the people working with them are really,

404
00:30:15,960 --> 00:30:22,119
really smart. Yeah, so they
don't always follow directions and they think,

405
00:30:22,519 --> 00:30:25,000
let me do the math, let
me see where that works for me and

406
00:30:25,039 --> 00:30:27,440
my business and my apps. They're
not just going to jump. They's too

407
00:30:27,480 --> 00:30:32,200
smart for that. And also they've
been bit in the past. So you

408
00:30:32,240 --> 00:30:37,240
have all these developers who's who look
at the UBP and they say, okay,

409
00:30:37,480 --> 00:30:40,359
what's my trade off? I spend
a bunch of time investing in this,

410
00:30:40,440 --> 00:30:44,960
what do I get? And the
answer wasn't super clear. It was

411
00:30:45,039 --> 00:30:48,079
like, oh, you get a
different app that's touch friendly for devices that

412
00:30:48,119 --> 00:30:52,279
are not you know, super broad. Yeah, it's not touch. But

413
00:30:52,319 --> 00:30:55,880
when you look at Maui, you
say, oh, you can use your

414
00:30:56,240 --> 00:31:00,359
language, your platform that you know, and you can push it on iphonees.

415
00:31:00,000 --> 00:31:03,480
I think people go, okay,
yep, I see the trade off.

416
00:31:03,640 --> 00:31:07,559
I will learn a new you know, a new flavor of examle because

417
00:31:07,920 --> 00:31:11,000
getting your dot net app on an
iPhone is a big deal. That's a

418
00:31:11,039 --> 00:31:14,480
big deal and it's really hard to
do. And I'm not going to learn

419
00:31:14,599 --> 00:31:18,400
HTML. Sorry, Carl, I'm
not doing CSS. No, No,

420
00:31:18,400 --> 00:31:22,759
that's fine, and I'll reciprocate.
I think that once you learn zamal of

421
00:31:22,799 --> 00:31:26,759
any type, you know, doing
the other flavors of xamal isn't that big

422
00:31:26,799 --> 00:31:30,160
a deal. They're just keywords,
you know, right, once you know

423
00:31:30,200 --> 00:31:36,119
the I mean, I don't know
really if the I know, the binding

424
00:31:36,559 --> 00:31:41,559
syntax in WPF is really sophisticated.
I'm not so sure it's as sophisticated in

425
00:31:41,680 --> 00:31:47,079
the other flavors of xamal, but
I wouldn't know. Yeah, it's it

426
00:31:47,160 --> 00:31:49,400
is actually really sophisticated. And some
of the things that make that binding and

427
00:31:49,480 --> 00:31:53,599
win APSDK that I've in some of
my apps that I've made that's really really

428
00:31:53,680 --> 00:32:01,119
nice is a little tool that Microsoft
builds in the community toolkit called MVVM Toolkit.

429
00:32:01,359 --> 00:32:05,200
I think it is. Yeah,
yeah, and that makes it really

430
00:32:05,240 --> 00:32:08,759
easy to do, like property change
and you just add that little attribute to

431
00:32:08,799 --> 00:32:14,799
the top of your properties and it
rights source generates all of the code for

432
00:32:14,880 --> 00:32:17,680
you. And so that makes binding
and updating and keeping everything in sync and

433
00:32:17,680 --> 00:32:22,079
binding it to the view model super
easy. Like it's not even a problem

434
00:32:22,119 --> 00:32:25,559
anymore. Everything is up to date, everything is fast and quick. Yeah,

435
00:32:25,599 --> 00:32:30,960
that's an amazing tool. It is
no important, like you're seeing a

436
00:32:30,960 --> 00:32:35,240
way forward years just nothing as simple. It's been a while since, say

437
00:32:35,240 --> 00:32:38,839
you see MBAVM toolkit. But if
there was one of these things that required

438
00:32:38,880 --> 00:32:45,960
you to your models to inherit from
a base class, maybe it was the

439
00:32:45,039 --> 00:32:49,839
view model that inherits from a base
class. But I really don't like model

440
00:32:49,920 --> 00:32:54,839
having to inherit base classes in models. I can't remember which one that was

441
00:32:54,880 --> 00:33:00,160
though, Yeah, i'ld have to
pull it my repounded. Yeah. I

442
00:33:00,200 --> 00:33:01,880
don't know if you have to make
it astruct or what, but it is.

443
00:33:02,359 --> 00:33:06,839
It's really nice to be able to
drop that attribute on things and just

444
00:33:06,880 --> 00:33:09,200
say, okay, I agree,
can you handle this complexity for me?

445
00:33:09,279 --> 00:33:14,000
I'm focused on solving a business need
right now. Yeah, right, It

446
00:33:14,119 --> 00:33:15,920
sures out to be always the truth. Mm hmm. Yeah, Hey guys,

447
00:33:16,440 --> 00:33:21,559
hold that thought for just this moment, for these very important messages.

448
00:33:21,599 --> 00:33:27,359
We'll be right back. Hey,
Carl here, tired of the debugging grind,

449
00:33:27,880 --> 00:33:31,960
Let's talk about a breakthrough that's here
to help. Raygun's AI error resolution

450
00:33:32,319 --> 00:33:37,240
isn't just another tool. It's like
having a seasoned developer right by your side,

451
00:33:37,359 --> 00:33:44,359
suggesting fixes and explaining errors in real
time. If you're curious as to

452
00:33:44,359 --> 00:33:47,839
how it can smooth out your debugging
day, visit raygun dot com, slash

453
00:33:47,920 --> 00:33:52,839
dot net rocks that's raygun, r
A y g u n dot com slash

454
00:33:53,160 --> 00:33:58,279
d O t n E t r
o c ks for your free fourteen day

455
00:33:58,319 --> 00:34:05,359
trial to explore the way ray gun
is revolutionizing debugging. You know, it's

456
00:34:05,440 --> 00:34:12,639
common for business application to contain fifteen
percent repetitive code just because of metaprogramming limitations

457
00:34:12,639 --> 00:34:16,519
in the c Sharp language. Why
write boilerplate manually when a machine could generate

458
00:34:16,559 --> 00:34:22,559
it for you? Enter Metalama,
the code generation and Verification toolkit for C

459
00:34:22,719 --> 00:34:28,199
Sharp. Their c Sharp to c
Sharp template language is simply amazing. Logging

460
00:34:28,480 --> 00:34:35,880
caching memento observable if it's repetitive Metaalama
can automate it. Visit metalama dot net

461
00:34:35,920 --> 00:34:39,679
today and learn to automate your code
patterns with their free edition. Remember it's

462
00:34:39,800 --> 00:34:47,079
Metalama with one L me E T
A L A m A dot net And

463
00:34:47,239 --> 00:34:51,840
we're back. I'm Carl Franklin,
That's Richard Campbell, hey, and that's

464
00:34:51,920 --> 00:34:55,000
Joe Finny, and we're talking WPF. It's getting a facelift or an update,

465
00:34:55,079 --> 00:35:01,119
or an upgrade or something. It
give Karen eating caring attention. Definitely

466
00:35:01,199 --> 00:35:06,440
a facelift if you want it.
So if you're if you're a WPF developer

467
00:35:06,480 --> 00:35:10,679
and you want your WPF app to
look like Windows eleven, then you can

468
00:35:10,719 --> 00:35:15,280
add in a little resource dictionary to
your app and the boom, you got

469
00:35:15,360 --> 00:35:19,159
all that UI for you. I'm
going to sound like an old man here,

470
00:35:19,199 --> 00:35:22,920
but is there a Is there a
tool to make Windows eleven look like

471
00:35:22,960 --> 00:35:28,639
Windows ten? That would be cool? It's called Yeah. I'm sure there's

472
00:35:28,639 --> 00:35:30,519
somebody who sells something out there that
does that. Great. Can I just

473
00:35:30,559 --> 00:35:37,440
complain a minute here? When you
write click on a file and you expect,

474
00:35:37,719 --> 00:35:43,400
like a ZIP file for example,
you expect properties and you know on

475
00:35:44,880 --> 00:35:47,039
whatever, undo this? You know
what am I trying to say on zip.

476
00:35:47,440 --> 00:35:51,719
Yeah, not on zip, but
you want properties, you have to

477
00:35:51,760 --> 00:35:55,960
go to more properties to get the
to get the things that you want,

478
00:35:57,079 --> 00:36:01,000
Like they're trying to hide things from
you. Hey, yeah, it's the

479
00:36:01,039 --> 00:36:06,719
taskbar settings. Why do I have
to do three extra clicks now to hide

480
00:36:06,719 --> 00:36:10,639
my taskbar and unhide it? No, that's it's definitely a challenge. And

481
00:36:12,280 --> 00:36:17,400
to Richard's point earlier about how fast
WPF grew up whenever Visual Studio started taking

482
00:36:17,440 --> 00:36:22,440
it and using net, I think
the same thing is happening with win fsdk

483
00:36:22,920 --> 00:36:29,440
because the file Explorer in Windows eleven
is built in win fsdk. I believe

484
00:36:30,760 --> 00:36:32,639
that was the word I was looking
for. Sorry on block Okay, yeah,

485
00:36:32,719 --> 00:36:39,199
it's and it is a definitely there's
a lot of attention on the file

486
00:36:39,239 --> 00:36:45,159
Explorer in Windows eleven and the reight
click menu and how performant things are and

487
00:36:45,199 --> 00:36:47,280
what it can do and how it's
different from Windows ten. And I think

488
00:36:47,280 --> 00:36:51,119
the team is getting a lot of
feedback and a lot of the challenges that

489
00:36:51,159 --> 00:36:55,599
they had with performance, where win
fsdk challenges because it's so low level,

490
00:36:55,639 --> 00:37:00,480
it needs to be super performant,
and so hopefully in dot Net nine with

491
00:37:00,679 --> 00:37:06,159
AOT and all of those fancy things. Hopefully they are listening and building and

492
00:37:06,159 --> 00:37:10,679
responding. But it's yeah, it's
hard whenever you have such an ingrained user

493
00:37:10,719 --> 00:37:14,360
base who really knows how to get
things done, and then you move their

494
00:37:14,440 --> 00:37:17,800
cheese under a show more button.
Does this imply that the win FSDK to

495
00:37:17,880 --> 00:37:22,920
that is the low level library to
Windows ends, and that win WPF will

496
00:37:22,920 --> 00:37:27,519
sit over top of that and just
give you access to all those capabilities.

497
00:37:27,599 --> 00:37:30,760
I don't. I don't necessarily think
so. I think WPF is not.

498
00:37:30,159 --> 00:37:32,960
I don't think the role that it's
serving is going to change. I think

499
00:37:34,000 --> 00:37:36,960
it's still going to sit in its
own little like this. You know,

500
00:37:37,000 --> 00:37:42,199
you build apps in these vertical stacks. You can already today. I think

501
00:37:42,199 --> 00:37:45,239
they're like giving your WPF a package
identity. You can kind of wrap it

502
00:37:45,400 --> 00:37:52,719
in a package, and then you
can access those win rt APIs So you

503
00:37:52,760 --> 00:37:55,280
can do that today. You've actually
been able to do that for a while

504
00:37:55,320 --> 00:38:00,480
now, and they are that's kind
of where they're investing. That's where the

505
00:38:00,559 --> 00:38:05,000
team is investing a lot of those
interesting models and doing some of that weird

506
00:38:05,000 --> 00:38:07,239
stuff, and so you can do
all that well, I mean they're talking

507
00:38:07,239 --> 00:38:12,360
about servicing the Win eleven controls and
look not to me sounds like you're just

508
00:38:13,199 --> 00:38:17,760
putting access to the API into WPF. I think it's styling. I don't

509
00:38:17,760 --> 00:38:22,360
think that they are sling. Yeah, I think that they're bringing just the

510
00:38:22,400 --> 00:38:25,719
look and feel. I don't think
that there's any sort of OS level injection

511
00:38:25,960 --> 00:38:31,280
into WPF. I mean, you
just described how the file menu in File

512
00:38:31,360 --> 00:38:36,239
Explorer in Windows eleven is different because
it's built against the wind app a SDK.

513
00:38:37,559 --> 00:38:39,639
So you know the fact that if
I could do that in WPF,

514
00:38:39,719 --> 00:38:44,360
now that would mean okay, there's
I have access to win FSDK without using

515
00:38:44,360 --> 00:38:49,079
it directly. No, I do
think that WPF new UI is mainly just

516
00:38:49,280 --> 00:38:53,159
UI. So they're when it.
Actually the announcement came in like two steps,

517
00:38:53,440 --> 00:38:59,239
so before build, I think in
like February maybe, Yeah, Microsoft

518
00:39:00,039 --> 00:39:07,280
announced that the open source library WPFUI. Yeah, it was collaborating with Win

519
00:39:07,320 --> 00:39:12,320
eleven, was collaborating with the team, and Microsoft is going to make this

520
00:39:13,039 --> 00:39:15,639
the UI of WPF officially. Yeah, that was December of twenty three.

521
00:39:15,840 --> 00:39:19,639
Okay, it was December well ahead
of build, but you know, so

522
00:39:20,000 --> 00:39:22,719
that's where they announced, Hey,
look we are we're going to use this

523
00:39:22,760 --> 00:39:25,079
as the because they were a couple
out there. I think it was there

524
00:39:25,119 --> 00:39:32,159
was modern modern WPF, like you're
speaking to the same problem though that WPF

525
00:39:32,199 --> 00:39:37,920
apps are looking dated, right,
And so this developer made a really popular

526
00:39:37,960 --> 00:39:43,960
repository. It was being used by
the Power Toys team for a couple of

527
00:39:43,960 --> 00:39:47,920
their utilities and actually contributing back and
I think really gauging the health and the

528
00:39:49,480 --> 00:39:52,840
vitality of that project. And then
Microsoft announced, hey, we're going to

529
00:39:52,920 --> 00:39:57,440
partner with them. And then in
build they showed off the WPF gallery preview

530
00:39:57,519 --> 00:40:01,400
app and how easy it is to
basically add one line to your app sammele

531
00:40:01,840 --> 00:40:06,760
and boom everything. Your app looks
like it's Windows eleven. But I do

532
00:40:06,800 --> 00:40:09,599
believe that that's a big distinction.
It looks like it, right, it

533
00:40:09,679 --> 00:40:15,079
is not when UI three. Okay, it looks like when UI three.

534
00:40:15,199 --> 00:40:17,679
It is not when UI three from
what I understand I would know. I

535
00:40:17,679 --> 00:40:22,920
think that's an important distinction too,
because that is again a theming thing versus

536
00:40:22,920 --> 00:40:27,679
a functionality thing. Yes, yeah, and stuff like aot you know,

537
00:40:27,840 --> 00:40:31,239
like compiling your app at a time, all of that great stuff. One

538
00:40:31,280 --> 00:40:39,079
ap SDK, so right, now
there's no trimming, there's no all of

539
00:40:39,119 --> 00:40:43,440
that stuff does not exist in WPF. It's just the way that it's built.

540
00:40:44,159 --> 00:40:47,199
Trimming support, I think is yeah, is not trim compatible. Very

541
00:40:47,239 --> 00:40:52,840
popular, well requested future in WPF, and the team has not announced that

542
00:40:52,880 --> 00:40:55,239
they are going to make it trim
compatible. And so when you make a

543
00:40:55,280 --> 00:41:00,079
self contained WPF app, it it
holds the whole framework with that. It's

544
00:41:00,119 --> 00:41:04,400
big, it's you know, it's
all there, which is good, but

545
00:41:04,480 --> 00:41:08,119
also that's just what you expect when
you want to take a dependency on WPF.

546
00:41:08,840 --> 00:41:13,280
That's how it is, right,
Okay, I mean, yeah,

547
00:41:13,400 --> 00:41:16,960
this is it's very interesting, and
I'm stunned to see that that Power Toys

548
00:41:17,000 --> 00:41:20,239
was kind of at the center all
of this, right that in a lot

549
00:41:20,239 --> 00:41:23,320
of ways, I'm looking at the
various messages and stuff that they always reference

550
00:41:23,360 --> 00:41:30,679
Power Toys like you're the folks you
work with and you contributed to were exemplars

551
00:41:30,719 --> 00:41:36,840
of ways to modernize WPF apps into
Win eleven, right, Yeah, to

552
00:41:36,880 --> 00:41:39,599
the point where they've actually adopting it. Yeah, this is the how do

553
00:41:39,719 --> 00:41:46,239
you actually do agile at a company
like Microsoft with a product like Windows,

554
00:41:46,679 --> 00:41:50,719
Right, how do you do that? Without like how do you make these

555
00:41:50,760 --> 00:41:53,239
smaller bets and experiment with these different
platforms? And I think the way you

556
00:41:53,280 --> 00:41:58,639
do it is you experiment where you
can. And Power Toys was very much

557
00:41:58,719 --> 00:42:04,480
a heavy feedback tool, like if
you do something to the Windows team,

558
00:42:04,599 --> 00:42:07,800
very deeply connected to the Windows team, but also to the community. So

559
00:42:07,000 --> 00:42:14,840
the open source community is vibrants.
There are over five thousand issues open and

560
00:42:15,079 --> 00:42:16,360
I don't even know, I don't
even want to know how many have been

561
00:42:16,400 --> 00:42:22,039
closed, and so it's a very
popular repository. So it is kind of

562
00:42:22,079 --> 00:42:24,320
the like tip of the spear for
what are we doing? What? How

563
00:42:24,360 --> 00:42:29,719
can we unblocked developers? How can
we make people more productive? And set

564
00:42:29,719 --> 00:42:34,320
with a utility like text extractor and
power Toys the only way to do like

565
00:42:34,360 --> 00:42:38,639
a big full screen overlay with transparent
windows. That was WPF because you would

566
00:42:38,679 --> 00:42:43,360
have thought it would have been win
appasedly k you maybe would think that,

567
00:42:43,440 --> 00:42:47,719
but Nope, Nope, it was
WPF. Is there anything Joe in the

568
00:42:47,760 --> 00:42:52,159
new WPF that you think they got
wrong? No, I don't think so.

569
00:42:52,320 --> 00:42:55,039
Right now. I think they're they're
taking a very cautious approach. I

570
00:42:55,039 --> 00:43:00,400
mean, I think it's anything you
don't like not yet. I mean again,

571
00:43:00,440 --> 00:43:07,320
it's still in preview, so I
think I want to see some of

572
00:43:07,360 --> 00:43:10,360
the like interactivity stuff come forward,
like being able to pinch and zoom and

573
00:43:10,400 --> 00:43:14,079
interact with it in a much like
if you have a scroll viewer and you

574
00:43:14,079 --> 00:43:17,559
could just flick it with your finger
on your surface laptop or whatever. Right.

575
00:43:17,719 --> 00:43:22,159
Yeah, that's really nice, and
it doesn't seem like that is really

576
00:43:22,199 --> 00:43:24,599
on the road map today, so
it really is a look and feel.

577
00:43:24,960 --> 00:43:29,639
So that is kind of the trickiness
there where you can have two apps that

578
00:43:29,800 --> 00:43:34,320
maybe look very similar, but under
their hood used two very different technologies and

579
00:43:34,440 --> 00:43:37,920
end up behaving differently from a user
standpoint. So part of me thinks,

580
00:43:38,039 --> 00:43:42,000
well, it's great they look the
same. But also in the same way

581
00:43:42,039 --> 00:43:46,920
that USBC can be challenging because it
communicates universal a universal form factor, but

582
00:43:47,079 --> 00:43:52,400
it is not universal. No.
Yeah, it's just shape on each end

583
00:43:52,559 --> 00:43:55,519
and the cable all three have us
say, right, which would at least

584
00:43:55,519 --> 00:44:00,800
to too many. Yeah, So
that's kind of my only has tation is

585
00:44:00,360 --> 00:44:06,239
Okay, you've done this, yeah, and now the people doesn't work right,

586
00:44:06,280 --> 00:44:08,119
Yeah, And these little things apps
look the same and one flicks and

587
00:44:08,159 --> 00:44:12,199
one doesn't hm, and you say, well why is that? And they

588
00:44:12,199 --> 00:44:14,760
go, well, how much time
do you have? Sit down? Right

589
00:44:15,159 --> 00:44:16,840
here we go, Yeah, it's
a nuanced dancer. I'm going to bring

590
00:44:16,840 --> 00:44:23,079
in Windows Vista so back in.
Yeah. Yeah, but it also speaks

591
00:44:23,119 --> 00:44:25,920
to a roadmap then too. It's
like, you know what it could do

592
00:44:27,159 --> 00:44:30,039
implement flick right, Yeah, And
I think that's kind of the again,

593
00:44:30,119 --> 00:44:35,679
how do you implement something like this
at such a big old product. You

594
00:44:35,719 --> 00:44:37,400
don't just say you have to use
it. So if you make a new

595
00:44:37,559 --> 00:44:42,920
VPF deep today, it's going to
look you know, it's got that battleship

596
00:44:42,960 --> 00:44:45,239
gray. That's it's not going to
look at any different. You have to

597
00:44:45,320 --> 00:44:47,840
opt in. So I think you're
still going to see a lot of people

598
00:44:47,880 --> 00:44:52,679
who do not use the new UI
and a lot of apps that even though

599
00:44:52,719 --> 00:44:54,920
this is there, people are not
going to use it, they're not going

600
00:44:54,920 --> 00:45:00,679
to opt into it. So mainly
I would say I would be interested to

601
00:45:00,719 --> 00:45:06,199
see how big of an EFFECTUS has
going forward, because how many new WPF

602
00:45:06,199 --> 00:45:10,159
apps are being created, right,
I'm not sure, but yeah, yeah,

603
00:45:10,159 --> 00:45:14,679
they demonstrated a conversion of an existing
app. I think they went back

604
00:45:14,719 --> 00:45:19,360
to the picture viewer sample that was
built way back in the day, and

605
00:45:19,400 --> 00:45:22,039
they added one line and said,
hey, look theming support, lightmode,

606
00:45:22,119 --> 00:45:29,960
dark mode support, stuff like that. So hopefully developers are updating their apps.

607
00:45:30,400 --> 00:45:34,280
Yeah, I'd be more interested in. I've been using modern WPF and

608
00:45:34,360 --> 00:45:37,239
it's starting to get a little stale. Now how do I roll out modern

609
00:45:37,320 --> 00:45:42,360
WPF and roll in this new capability
and add your magic line? Hey,

610
00:45:42,400 --> 00:45:44,639
you know, speaking of upgrades.
I got to take him minute here and

611
00:45:44,679 --> 00:45:50,119
thank my buddy Richard, because I
have this old ATX case that had a

612
00:45:50,119 --> 00:45:57,280
power supply, like you know,
from the Clinton administration, and it was

613
00:45:57,320 --> 00:46:00,000
so noisy. I was using it
as an unraid server and I was like,

614
00:46:00,480 --> 00:46:04,159
Richard, this thing is so loud
and I have to put it in

615
00:46:04,239 --> 00:46:08,000
the studio. Do you know,
find me a quiet ATX power supply.

616
00:46:08,079 --> 00:46:10,920
He's like, this is what you
want. I think. I was in

617
00:46:10,960 --> 00:46:14,920
an airport too, literally walking and
just went, wait a sec, little,

618
00:46:15,360 --> 00:46:19,400
you're so quiet. I can't even
hear it. Yeah, it's so

619
00:46:19,679 --> 00:46:22,639
nice. It's a thermal take.
Okay, I's going to say say who

620
00:46:22,679 --> 00:46:27,679
it is? Yeah, proper pre
and I think we deliberately oversize it.

621
00:46:27,719 --> 00:46:30,239
So the fan never even spun up. Yeah, you're burning about five hundred

622
00:46:30,239 --> 00:46:32,559
wats put in the eight hund w
the final leave ever even turn on.

623
00:46:32,960 --> 00:46:38,800
Yeah. So now I have a
fifty terabyte fifty terabyte RAID server. You

624
00:46:38,840 --> 00:46:43,360
can't even hear ye expect the hard
drives to be the loudest thing in it.

625
00:46:43,639 --> 00:46:45,199
Yeah, I know that's right.
I was actually sitting having dinner and

626
00:46:45,199 --> 00:46:49,840
I'm like, what is that thumping? Do you hear that? At least?

627
00:46:49,880 --> 00:46:53,039
Like that's your computer, you idiot. That's although all those arms start

628
00:46:53,079 --> 00:46:55,559
stroking at the same time, you're
going to generate some noise. Yeah,

629
00:46:55,880 --> 00:47:00,519
copying files well anyway, Yeah,
it's about making things old new, and

630
00:47:01,320 --> 00:47:06,280
that's that's what we're doing, whether
it's hardware software, everybody's got to do

631
00:47:06,360 --> 00:47:08,840
that at some point with their software
hopefully. Yeah. I think I feel

632
00:47:08,840 --> 00:47:15,000
like we're boxes problem. They The
problem here is that you always want to

633
00:47:15,039 --> 00:47:19,000
use the code that people are using
and so not on the surface level you

634
00:47:19,000 --> 00:47:20,480
say, oh, well, win
app SDK is the way to go.

635
00:47:20,599 --> 00:47:23,599
Is lots of people using it,
but they're all Microsoft people in C plus

636
00:47:23,679 --> 00:47:30,119
plus. I don't know how many
c sharp people are using it in production

637
00:47:30,199 --> 00:47:32,159
apps. Well, Joe raised this
hand. Yeah, Joe being a strange

638
00:47:32,159 --> 00:47:37,039
alien. Yeah, I've got a
few out that it's not so not just

639
00:47:37,119 --> 00:47:39,719
chex scrap Nope. Yeah. So
win app SDK is what I use for

640
00:47:39,760 --> 00:47:45,800
a simple icon file maker, for
some QR code maker, for a few

641
00:47:45,000 --> 00:47:50,920
little Windows utility apps that I build
because I was like, hmmm, I

642
00:47:51,000 --> 00:47:54,039
don't like randomly googling a website and
trying to find a QR code that seems

643
00:47:54,079 --> 00:47:57,639
a little sketchy. It's a little
sketchy. And I was like, I

644
00:47:57,639 --> 00:48:02,440
will use this as an opportunity to
learn and v toolkit and went FSDK and

645
00:48:02,480 --> 00:48:06,719
here we go. Here's a little
free utility for the community. But to

646
00:48:06,760 --> 00:48:08,760
your point about you want to use
the tool that other people are using,

647
00:48:08,800 --> 00:48:13,159
You want to use the frameworks and
the languages that are healthy and supported.

648
00:48:13,960 --> 00:48:19,519
This is we I know, Microsoft
is late to the big open source game,

649
00:48:19,719 --> 00:48:24,199
and it is kind of a unique
position. The community isn't typically very

650
00:48:24,199 --> 00:48:30,639
open, but you'll see this with
like modern WPF and WPFUI, where you

651
00:48:30,719 --> 00:48:37,239
have these communities supported UI frameworks to
support WPF and so part of the interesting

652
00:48:37,280 --> 00:48:42,840
thing is Microsoft had abandoned it and
it was so popular that the open source

653
00:48:42,840 --> 00:48:46,760
community stepped up and made these awesome
tools with all these awesome controls to really,

654
00:48:46,920 --> 00:48:52,920
you know, help developers stay being
productive. And now Microsoft's come back

655
00:48:52,960 --> 00:48:55,000
to it. Because of that,
they have come back. They have identified

656
00:48:55,039 --> 00:49:00,159
hey, there's an audience here,
and then they picked a winner. So

657
00:49:00,199 --> 00:49:04,679
this is where open source gets weird, because now, if you were building

658
00:49:04,719 --> 00:49:10,760
a moderately popular WPF UI framework,
what do you do? How do you

659
00:49:12,559 --> 00:49:15,960
manage that transition? And I think
that's to your point Richard, about I

660
00:49:16,039 --> 00:49:20,480
have an app that's using one of
those frameworks. How do I drop the

661
00:49:20,519 --> 00:49:25,079
dependency and use the new Microsoft mone
I think that's yeah, you know,

662
00:49:25,159 --> 00:49:29,000
you hated it. On one hand, you've got Kenara, the guy who

663
00:49:29,119 --> 00:49:32,679
created modern WPF, but you can
make nice with him, and in some

664
00:49:32,760 --> 00:49:36,559
way, I mean, I think
about when Ron Eisenberg hung up durandall,

665
00:49:36,760 --> 00:49:38,599
as he said, angler's a better
way to go. He changed his mind

666
00:49:38,679 --> 00:49:42,960
later. That's a separate issue,
you know, and so Canara could say

667
00:49:43,039 --> 00:49:45,719
much the same thing. It's like, hey, you know, because you

668
00:49:45,719 --> 00:49:47,480
can also see that he was struggling
to keep up, and I'm presuming it's

669
00:49:47,519 --> 00:49:51,840
a he I hate that I did
just did that, but you know,

670
00:49:51,880 --> 00:49:55,000
there were a lot of demands on
that to try and keep all the features

671
00:49:55,000 --> 00:49:59,840
in there. So and Microsoft picking
a winner just by putting fts on it.

672
00:50:00,920 --> 00:50:02,559
Yeah, you know, the rest
of us are all volunteers contributing over

673
00:50:02,639 --> 00:50:07,239
source once in a while, and
Microsoft goes, here's for forty hour a

674
00:50:07,280 --> 00:50:13,719
week, people to contribute to this
library. Watch the PR's flow. Yeah,

675
00:50:13,760 --> 00:50:17,679
and watch the preview new get packages
pop in every single week and new

676
00:50:17,719 --> 00:50:21,599
preview and you're like, wow,
the rate of this really sped up.

677
00:50:21,840 --> 00:50:25,000
But I think it is It's an
interesting example there where I don't know what

678
00:50:25,039 --> 00:50:30,800
the model is, what the what
is the transitionary period there, because unlike

679
00:50:30,239 --> 00:50:34,639
people get into dot net to make
money, to make tools for companies and

680
00:50:34,760 --> 00:50:40,159
businesses to do things, it's not
usually just random fun goofy stuff, right,

681
00:50:40,320 --> 00:50:45,159
And this is the point where if
you're building these frameworks and you're doing

682
00:50:45,199 --> 00:50:47,480
it for a couple of years,
you probably have a lot of users and

683
00:50:47,480 --> 00:50:52,880
there's a lot of dependencies there.
So whose responsibility is that, you know?

684
00:50:52,960 --> 00:50:57,400
And that's it. It's tricky now
that Microsoft has picked a winner of

685
00:50:57,760 --> 00:51:00,239
Okay, we're going to do our
new stuff, don't use those. Third

686
00:51:00,280 --> 00:51:06,079
part of UYS is kind of what
they're signaling, use ours. And then

687
00:51:06,119 --> 00:51:09,239
if you're over there, you're like, well, am I on an island?

688
00:51:09,400 --> 00:51:12,800
What's you know? Who builds the
bridge? Away? Is the a

689
00:51:12,840 --> 00:51:15,039
bridge? Yeah? Man, who
pays to build a bridge? You know?

690
00:51:15,079 --> 00:51:17,039
Do you just say, okay,
we're gonna well, you're just gonna

691
00:51:17,039 --> 00:51:22,119
build migrations from the top three most
popular and help those I think I hope

692
00:51:22,159 --> 00:51:24,280
they would do that, because more
likely, I mean, it's also very

693
00:51:24,280 --> 00:51:30,000
reasonable as a lead dev who committed
to WPFUI or to modern WPF to have

694
00:51:30,039 --> 00:51:32,679
to stand up in a scrum one
day and go, guys, we have

695
00:51:32,719 --> 00:51:36,760
to add this to the sprint.
We have to switch all this code has

696
00:51:36,760 --> 00:51:39,639
to change or we're going to be
in real trouble longer. We can't keep

697
00:51:39,679 --> 00:51:43,880
adding more code depending on this library
that probably won't get a lot of love

698
00:51:43,920 --> 00:51:47,480
anymore when all the action's over here. And that's a tough meeting, because

699
00:51:47,519 --> 00:51:52,400
that is bumping out a set of
features. Largely, if you do it

700
00:51:52,480 --> 00:51:57,480
right, nobody will be able to
tell, Like, you won't even be

701
00:51:57,519 --> 00:52:00,079
able to see a change right,
You'll burn it. Coup several sprints to

702
00:52:00,119 --> 00:52:04,400
do it. It's the sound guy
problem. If you don't. Ever,

703
00:52:05,360 --> 00:52:08,320
nobody can tell ye, I've lived
as a system administrator. You can never

704
00:52:08,400 --> 00:52:13,039
get an A. You can get
an F easy, you drop perfectly,

705
00:52:13,079 --> 00:52:19,400
you get a C. Wow,
that audio doesn't suck. Nobody says that.

706
00:52:19,559 --> 00:52:22,719
Nobody says that, yeah, yeah, true, But yeah it is.

707
00:52:23,599 --> 00:52:28,960
Yeah, it's it's interesting and I
think we'll we'll see how it continues

708
00:52:28,960 --> 00:52:32,000
to play out, but hopefully Microsoft
has a pretty good metered, steady approach.

709
00:52:32,199 --> 00:52:37,440
And there's a pushback on here is
is this a better? Is this

710
00:52:37,519 --> 00:52:43,320
better? Is this better? The
community has grown up around solving a problem

711
00:52:43,320 --> 00:52:46,480
in a very reasonable way, although
you can see the cracks of trying to

712
00:52:46,559 --> 00:52:52,119
keep up with the cadence of the
new features and especially Win eleven, and

713
00:52:52,519 --> 00:52:55,239
now it's like, are they solving
a problem or they hijacking problem? Like

714
00:52:55,360 --> 00:52:58,519
I think depending on what seat you're
sitting, and you can see it either

715
00:52:58,559 --> 00:53:04,159
way. Absolutely, yeah, I
mean, I it is. It's a

716
00:53:04,159 --> 00:53:07,480
major challenge for open source in general. And I don't I don't think that

717
00:53:07,480 --> 00:53:10,800
that problem has been solved yet,
and I don't think it's going to be

718
00:53:10,880 --> 00:53:15,719
solved here. No, Well,
there's a reason we keep talking about it

719
00:53:15,800 --> 00:53:21,119
on the show. Like I am. I have been drinking with a great

720
00:53:21,280 --> 00:53:27,639
community maintainer who watched two FT show
up on his project and just start pushing

721
00:53:27,639 --> 00:53:30,519
prs like lightning. And it was
not just that he was getting contributions,

722
00:53:30,840 --> 00:53:34,960
but these people were not in love
with the product. This was their job.

723
00:53:35,079 --> 00:53:37,000
They were told by a PM work
on this. Here's the feature set

724
00:53:37,039 --> 00:53:44,239
we want. And it feels invasive. Yeah, definitely, No, it's

725
00:53:44,440 --> 00:53:47,280
and you know, did a product
get better? Yeah, if you agree

726
00:53:47,320 --> 00:53:52,760
with the direction they were going in. If you didn't, then what fork

727
00:53:52,800 --> 00:53:57,840
it? Yeah, And that's something
I haven't seen yet, but I wonder

728
00:53:57,880 --> 00:54:00,880
about the day. I don't think
stof would ever do this politically, it's

729
00:54:00,880 --> 00:54:06,239
insane to say, you know,
the contributor is the maintainer hasn't agreed with

730
00:54:06,360 --> 00:54:07,320
us, We think these are important
features show, We're going to do a

731
00:54:07,360 --> 00:54:10,000
fork and here we go. Yeah, Like, I just don't think that.

732
00:54:10,199 --> 00:54:15,599
I think they fall out of that
would be disastrous. What the fork

733
00:54:15,679 --> 00:54:21,480
anyway? Yeah? Yeah, it's
We're just going to keep seeing people try

734
00:54:21,519 --> 00:54:23,639
different ways. But I think I
do think one of the main things is

735
00:54:23,639 --> 00:54:28,880
communicating it ahead of time, and
I remember I'm listening to a previous episode

736
00:54:28,920 --> 00:54:32,519
of dot net Rocks with a guest, maybe the maintainer of b unit.

737
00:54:34,599 --> 00:54:38,280
What's talking about kind of what do
you want? What is the purpose of

738
00:54:38,320 --> 00:54:42,800
this open source? And I almost
I've kind of thought about this with some

739
00:54:42,840 --> 00:54:45,880
of my own projects, which is
maybe we should have like a goals file

740
00:54:45,039 --> 00:54:49,800
or maybe it should be part of
our read me, which is, what's

741
00:54:49,880 --> 00:54:53,679
the purpose here? Are you trying
to you know, test a market and

742
00:54:53,719 --> 00:54:57,679
then turn this into a money making
endeavor? Are you trying to turn this

743
00:54:57,719 --> 00:55:00,559
into a job. Are you trying
to turn this into a portfolio piece?

744
00:55:00,880 --> 00:55:04,199
Are you trying to hand this off
as soon as possible? You know?

745
00:55:04,280 --> 00:55:08,320
Is this a hot potato project or
is this a long lasting, long lived

746
00:55:08,360 --> 00:55:13,280
like I want to build this,
I want to maintain it. I it

747
00:55:13,320 --> 00:55:16,360
can go on forever. And it's
like it would be kind of nice for

748
00:55:16,480 --> 00:55:21,199
people to identify the kind of project
that they're doing. And maybe that's what

749
00:55:21,239 --> 00:55:23,199
licenses used to be. And I
mean, you bring up b unit and

750
00:55:23,239 --> 00:55:28,119
I literally was with Eagle last week
and maybe I'm probably not speaking out of

751
00:55:28,119 --> 00:55:31,440
turn. He wanted this to exist. He was building Blazer stuff and he

752
00:55:31,519 --> 00:55:36,679
needed a testing library, and so
he shared it out the idea that maybe

753
00:55:37,559 --> 00:55:39,440
a couple of fd show up and
add a whole bunch of features, like

754
00:55:39,599 --> 00:55:45,079
in the end, he wanted a
testing framework for Blazer. Like, either

755
00:55:45,079 --> 00:55:49,800
way, that's a good outcome.
But you're right, you end up looking

756
00:55:49,840 --> 00:55:53,519
into the souls of maintainers and you're
going to see a variety of things in

757
00:55:53,559 --> 00:55:58,119
there. What motivated you? Where
are you trying to get to? You

758
00:55:58,159 --> 00:56:00,559
know, what's important to you?
Yep? And what is the deal with

759
00:56:00,599 --> 00:56:04,079
this project? Now? If to
your point, if someone who goes to

760
00:56:04,119 --> 00:56:07,719
show up, what do you want
them to have with them? Yeah,

761
00:56:07,960 --> 00:56:13,519
like resources in the form of time, development resources, money, a check,

762
00:56:14,199 --> 00:56:15,880
yeah, you know, consistent revenue. Like you're trying to build a

763
00:56:15,880 --> 00:56:19,280
brand here, you're trying to build
a business here. Did you want to

764
00:56:19,280 --> 00:56:22,679
get hired by Microsoft to work on
this full time? Right? Sometimes that's

765
00:56:22,719 --> 00:56:28,559
the goal? Yeah, I think
about Anthony and oh yeah, Now the

766
00:56:28,599 --> 00:56:30,880
names just jumped out in the head. They who are building the instrumentation on

767
00:56:30,880 --> 00:56:35,159
the client's side, Glimpse, glimpse. You're right, good call BacT dude.

768
00:56:35,280 --> 00:56:39,079
Yeah, and get glimpse was what
it was called. And I don't

769
00:56:39,079 --> 00:56:44,400
think they intended that, but it's
certainly what happened. And then they got

770
00:56:44,440 --> 00:56:46,000
pulled away from it too, right, like, hey, now you work

771
00:56:46,000 --> 00:56:50,639
for the machine. You don't get
to work on what you want. Right.

772
00:56:50,960 --> 00:56:52,679
Well, that's the interesting thing is
if you're looking to take a dependency

773
00:56:53,280 --> 00:56:58,679
and you see that this is basically
a portfolio piece, well you're not going

774
00:56:58,719 --> 00:57:00,760
to take that dependency because you're like, as soon as you get a job,

775
00:57:01,480 --> 00:57:06,400
you're you're out, you're gone,
and this project is over. Yeah,

776
00:57:06,519 --> 00:57:08,480
totally true. Yeah, it's it's
an interesting thing. And I mean

777
00:57:08,719 --> 00:57:12,920
WPF hasn't really had to fight this
or like be in the middle of a

778
00:57:13,280 --> 00:57:15,679
of a project like this for a
long time because it was kind of dormant.

779
00:57:15,920 --> 00:57:20,760
But now that it's waking up,
I think the space kind of the

780
00:57:20,920 --> 00:57:23,159
it's going to get interesting. Yeah, the code space that we're in now

781
00:57:23,559 --> 00:57:29,199
that WF is waking up into it's
a little different than it when it went

782
00:57:29,199 --> 00:57:31,840
to sleep. Yeah, welcome to
Welcome to the world. So I think

783
00:57:31,920 --> 00:57:37,199
this conversation is gonna keep getting more
interesting. I don't think it's gonna I

784
00:57:37,239 --> 00:57:39,719
don't think the interesting things are gonna
stop. No, I agree and I

785
00:57:39,800 --> 00:57:43,679
and again if it was clear,
we would say good or bad. I

786
00:57:43,719 --> 00:57:45,880
don't know. Yeah, yeah,
All I know is open source is different

787
00:57:45,920 --> 00:57:50,480
now and and we're seeing more manifestations
of it. Right. So Joe,

788
00:57:50,480 --> 00:57:54,519
what's in your inbox? What's next
for you? Building a Maui app,

789
00:57:55,360 --> 00:57:59,960
building a new do it? Yeah, I know, learning how to build

790
00:58:00,079 --> 00:58:04,320
Mali app. That's that's mail a
Yeah, use that m VVM framework.

791
00:58:04,599 --> 00:58:08,599
Oh I will I have and the
Maui app accelerator. Yeah. Also good,

792
00:58:08,800 --> 00:58:13,079
very good. In fact, I
have James Montamagne on speed dial,

793
00:58:13,360 --> 00:58:19,360
so that's I highly recommend that although
you can't expect him to answer no,

794
00:58:19,360 --> 00:58:22,360
no, no, he's a busy
guy. Should leave a lot of voicemail.

795
00:58:22,880 --> 00:58:27,320
Yeah, we missed you. Job
well, Joe, thanks very much

796
00:58:27,360 --> 00:58:30,360
for spending this time with us,
and it's great to hear that w p

797
00:58:30,559 --> 00:58:35,519
F is back and keep us posted, will you? I will, all

798
00:58:35,639 --> 00:58:59,760
right, and we'll talk to you
next time on dot net rocks. Dot

799
00:59:00,159 --> 00:59:04,760
Rocks is brought to you by Franklin's
Net and produced by Pop Studios, a

800
00:59:04,840 --> 00:59:08,920
full service audio, video and post
production facility located physically in New London,

801
00:59:08,960 --> 00:59:15,559
Connecticut, and of course in the
cloud. Online at PWOP dot com.

802
00:59:15,800 --> 00:59:19,000
Visit our website at d O T
N E t R O c k S

803
00:59:19,079 --> 00:59:23,599
dot com for RSS feeds, downloads, mobile apps, comments, and access

804
00:59:23,639 --> 00:59:29,079
to the full archives going back to
show number one, recorded in September two

805
00:59:29,119 --> 00:59:31,679
thousand and two. And make sure
you check out our sponsors. They keep

806
00:59:31,760 --> 00:59:36,400
us in business. Now, go
write some code. See you next time.

807
00:59:37,320 --> 00:59:52,400
You got javans and
