WEBVTT

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

