1
00:00:01,080 --> 00:00:03,799
Speaker 1: How'd you like to listen to dot NetRocks with no ads?

2
00:00:04,440 --> 00:00:04,799
Speaker 2: Easy?

3
00:00:05,360 --> 00:00:08,560
Speaker 1: Become a patron for just five dollars a month. You

4
00:00:08,599 --> 00:00:11,320
get access to a private RSS feed where all the

5
00:00:11,359 --> 00:00:14,560
shows have no ads. Twenty dollars a month, we'll get

6
00:00:14,599 --> 00:00:18,440
you that and a special dot NetRocks patron mug. Sign

7
00:00:18,519 --> 00:00:34,399
up now at Patreon dot dot NetRocks dot com. Hey,

8
00:00:34,479 --> 00:00:37,039
welcome back to dot net rocks. I'm Carl Franklin and

9
00:00:37,119 --> 00:00:40,399
Averchard Campbell. We're here again for your listening pleasure and

10
00:00:40,479 --> 00:00:43,159
you're geeking out pleasure and all of the things that

11
00:00:43,200 --> 00:00:45,759
come with dot NetRocks. It's not just about dot net

12
00:00:45,799 --> 00:00:48,679
as you know. Geez, We've been doing this since two

13
00:00:48,759 --> 00:00:50,399
thousand and two, Richard, can you believe it?

14
00:00:50,640 --> 00:00:51,000
Speaker 2: Yeah?

15
00:00:51,039 --> 00:00:53,840
Speaker 3: Well, wow, be clear. I was a guest in two

16
00:00:53,840 --> 00:00:56,280
thousand and four. I only came on routinely two thousand

17
00:00:56,280 --> 00:00:58,079
and vivees, Oh, come on, man, you know I'm the

18
00:00:58,119 --> 00:01:02,759
new guy, the new guy. Yeah.

19
00:01:02,880 --> 00:01:06,719
Speaker 1: It is kind of funny when people ask us, you know, hey,

20
00:01:06,760 --> 00:01:08,879
do you have ever heard of podcasts? I'm like, no,

21
00:01:09,239 --> 00:01:11,959
never heard of never heard of them. And then when

22
00:01:12,000 --> 00:01:17,319
I actually tell them, you know, like what what? Okay,

23
00:01:18,439 --> 00:01:20,120
let's get into better no framework.

24
00:01:28,079 --> 00:01:29,680
Speaker 2: All right, man, what do you go? You know what,

25
00:01:30,040 --> 00:01:30,359
this is.

26
00:01:30,319 --> 00:01:34,000
Speaker 1: The first time I've actually looked at Microsoft power toys.

27
00:01:34,000 --> 00:01:37,359
Speaker 3: Oh really, yeah, I just I've done shows over on

28
00:01:37,439 --> 00:01:39,680
run as on them. Well yeah, I think we've even

29
00:01:39,680 --> 00:01:42,239
done them on Rock. Yeah, but I mean, I'm just

30
00:01:42,400 --> 00:01:45,319
I'm not one to do that, right but right. However,

31
00:01:45,519 --> 00:01:48,959
I did notice that a lot of Mark Rosenovic's tools

32
00:01:49,079 --> 00:01:54,239
have made their way into power tools, such as zoom It,

33
00:01:54,799 --> 00:01:58,040
you know, And so I took a look and there's

34
00:01:58,079 --> 00:02:00,920
one thing in there that just lows me away. Then

35
00:02:00,959 --> 00:02:04,480
I'm going to start using right away. It's advanced paced.

36
00:02:04,799 --> 00:02:06,079
Oh so, there's a tool that.

37
00:02:06,159 --> 00:02:08,719
Speaker 1: Enables you to paste the content from your clipboard into

38
00:02:08,759 --> 00:02:13,039
any format needed. It can paste as plain text, mark

39
00:02:13,120 --> 00:02:17,280
down Jason, a text file, an HTML file, or a

40
00:02:17,319 --> 00:02:21,599
PNG file directly within the user experience, or with a

41
00:02:21,639 --> 00:02:25,879
direct keystroke invoke and get this. It can also extract

42
00:02:25,919 --> 00:02:29,159
and paste the text directly from an image in your clipboard,

43
00:02:29,360 --> 00:02:33,479
or transcode audio or video from your clipboard into an

44
00:02:33,560 --> 00:02:35,280
MP three or MP four file.

45
00:02:36,560 --> 00:02:40,039
Speaker 2: What. Yeah, that's impressive. When did this happen? That's crazy?

46
00:02:40,360 --> 00:02:41,719
This is some good stuff.

47
00:02:42,039 --> 00:02:43,960
Speaker 3: Yeah, there's a lot. I mean, there's so many zoom

48
00:02:44,000 --> 00:02:47,159
it's an obvious win. Yeah. The mouse utilities, you know,

49
00:02:47,199 --> 00:02:48,879
I have a lot of screens. Yeah, and they're not

50
00:02:48,960 --> 00:02:51,719
all symmetrical, so being able to turn on where the

51
00:02:51,719 --> 00:02:52,360
hell's the mouse?

52
00:02:53,240 --> 00:02:54,199
Speaker 2: You have it light up?

53
00:02:54,319 --> 00:02:56,879
Speaker 1: It's I know, I have three screens, and every time

54
00:02:56,960 --> 00:02:59,120
Kelly and I play like a game or something, she's

55
00:02:59,240 --> 00:03:01,759
like she's ticking the mouse and then she's like rolling

56
00:03:01,800 --> 00:03:04,319
it around on the desktop to find out where it is.

57
00:03:04,800 --> 00:03:07,800
Speaker 2: Where is the mouse? Where's the mouse? Look out?

58
00:03:07,840 --> 00:03:10,840
Speaker 3: The mouse finders great, The imageer sizer is amazing, Like

59
00:03:10,960 --> 00:03:13,199
just a great tool. There's so many good tools in this.

60
00:03:13,280 --> 00:03:15,080
If you're not using power toys, you're missing out.

61
00:03:15,159 --> 00:03:18,280
Speaker 1: Oh I totally have been. So I am definitely installed.

62
00:03:18,319 --> 00:03:20,599
I've already downloaded. I didn't install it before the show,

63
00:03:20,639 --> 00:03:24,120
but definitely installing it. This is good, good, good, good.

64
00:03:24,240 --> 00:03:24,560
Speaker 2: Yes.

65
00:03:24,800 --> 00:03:27,400
Speaker 1: Yeah, So Richard, before we do the comment, let's talk

66
00:03:27,400 --> 00:03:28,439
about nineteen forty two.

67
00:03:28,639 --> 00:03:30,280
Speaker 2: Okay, what do you want to talk about.

68
00:03:30,319 --> 00:03:34,960
Speaker 1: Well, many significant events took place in nineteen forty two,

69
00:03:34,960 --> 00:03:38,560
many many, including the Battle of Los Angeles, the Second

70
00:03:38,639 --> 00:03:42,919
Battle of l La Main, and the Battle of midway

71
00:03:43,039 --> 00:03:46,039
right where the US Navy defeated the Japanese Navy, which

72
00:03:46,080 --> 00:03:47,199
was a turning point.

73
00:03:46,919 --> 00:03:49,319
Speaker 2: Of the war. Yeah, they never recovered.

74
00:03:49,039 --> 00:03:52,280
Speaker 1: Right, And while in Germany, Nazi officials met to plan

75
00:03:52,360 --> 00:03:56,919
the quote unquote Final Solution of God and Ann Frank's

76
00:03:56,919 --> 00:04:00,800
family went into hiding. Also teen forty two, and this

77
00:04:00,840 --> 00:04:02,199
is probably what you were going to talk about. The

78
00:04:02,199 --> 00:04:05,800
Manhattan Project needed to create a chain reaction, a crucial

79
00:04:05,840 --> 00:04:08,680
step toward proving that it would be possible to make

80
00:04:08,719 --> 00:04:13,159
an atomic bomb. And these scientists achieved this sustained nuclear reaction,

81
00:04:13,280 --> 00:04:16,800
the first created by humans, on December two, nineteen forty two,

82
00:04:16,920 --> 00:04:20,160
in a squash court under the stands of the.

83
00:04:20,160 --> 00:04:21,480
Speaker 2: Stag under the squash court.

84
00:04:21,560 --> 00:04:24,639
Speaker 1: Yeah, yeah, under the stands the stag field at the

85
00:04:24,720 --> 00:04:25,879
University of Chicago.

86
00:04:26,319 --> 00:04:27,959
Speaker 2: Now that's America. Now listen.

87
00:04:28,399 --> 00:04:31,240
Speaker 3: Pile one was not a lot of power, right, It

88
00:04:31,279 --> 00:04:33,040
was just a little bit, but it was Remember this

89
00:04:33,199 --> 00:04:36,120
was all theoretical. Is it actually possible to have a

90
00:04:36,240 --> 00:04:37,959
chain reaction to heat up?

91
00:04:38,279 --> 00:04:38,560
Speaker 2: Right?

92
00:04:38,639 --> 00:04:42,279
Speaker 3: And so literally there's they learned that they had to

93
00:04:42,360 --> 00:04:44,439
use graphite, and it had to be very pure graph

94
00:04:44,519 --> 00:04:48,079
light or it would burn blocks of graphite, blocks of

95
00:04:48,279 --> 00:04:54,360
aluminum of uranium oxide blocks of metallic uranium, and they

96
00:04:54,360 --> 00:04:58,720
would literally slide them in these tubes closer together, further apart,

97
00:04:58,759 --> 00:05:01,040
and so forth. So they got to they were pursuing

98
00:05:01,079 --> 00:05:04,199
this thing called K, the rate of reaction. They were

99
00:05:04,199 --> 00:05:06,560
trying to get a K above one. So there was

100
00:05:06,600 --> 00:05:08,279
an increasing chain reaction.

101
00:05:08,079 --> 00:05:08,920
Speaker 2: But not a lot above one.

102
00:05:09,920 --> 00:05:12,399
Speaker 3: But it just sort of proved the point that criticality

103
00:05:12,560 --> 00:05:15,199
was a real thing. You know, they the physicists had

104
00:05:15,240 --> 00:05:17,439
figured this out. And this is weird, right, And most

105
00:05:17,439 --> 00:05:20,759
of the time we have empirical data, like we know,

106
00:05:20,959 --> 00:05:23,199
this natural thing does this thing, and then we use

107
00:05:23,240 --> 00:05:25,399
science to figure out why it does it. Right, here

108
00:05:25,480 --> 00:05:28,360
was science saying this should happen, and now that we're

109
00:05:28,399 --> 00:05:30,639
physically doing it to prove that it did app.

110
00:05:30,480 --> 00:05:35,160
Speaker 1: Yeah, wow, big big invention innovation there. But I just

111
00:05:35,319 --> 00:05:37,839
like how you know it was like a squash court

112
00:05:37,839 --> 00:05:39,040
at the University of Chicago.

113
00:05:39,240 --> 00:05:41,399
Speaker 3: Yeah yeah, And not only that, but they left it

114
00:05:41,439 --> 00:05:44,360
down there for years before they finally we should take

115
00:05:44,399 --> 00:05:44,879
that away.

116
00:05:45,160 --> 00:05:50,519
Speaker 1: Yeah, anything else you want to say about nineteen forty two.

117
00:05:51,079 --> 00:05:55,040
Speaker 3: This was the year of the creation of cyanoacrolytes, or

118
00:05:55,079 --> 00:05:59,639
what you would know as super Glue. Oh Eastman Kodak.

119
00:05:59,399 --> 00:06:05,199
Speaker 1: Superglue is currently holding one of the arms onto my

120
00:06:05,639 --> 00:06:07,199
metaquest two.

121
00:06:07,480 --> 00:06:11,480
Speaker 2: There you go, because this is funny.

122
00:06:11,920 --> 00:06:14,399
Speaker 1: When I went to, you know, figure out how to

123
00:06:15,040 --> 00:06:18,600
take it apart and put things on, I misread the

124
00:06:18,639 --> 00:06:21,240
instructions and ended up pulling one of the straps off.

125
00:06:21,279 --> 00:06:23,319
So oops, Yeah, that wasn't good.

126
00:06:23,360 --> 00:06:24,560
Speaker 2: But super Glues to the rescue.

127
00:06:24,600 --> 00:06:27,360
Speaker 3: This is also the forty two is also the first

128
00:06:27,439 --> 00:06:30,879
year that they sort of began the idea of radio astronomy.

129
00:06:30,879 --> 00:06:33,519
There was so much advancements in radar during the war

130
00:06:34,360 --> 00:06:37,040
that the idea that we could actually detect radio ways

131
00:06:37,040 --> 00:06:39,279
from other sources. So they're trying to read their own

132
00:06:39,360 --> 00:06:41,920
radio waves to find aircraft coming towards them, but they

133
00:06:42,040 --> 00:06:44,160
realized there's other ones going on and these were actually

134
00:06:44,160 --> 00:06:47,360
emissions coming from the Sun, and so the research that

135
00:06:47,439 --> 00:06:51,160
guys like James Stanley Hay did in the early days

136
00:06:51,560 --> 00:06:55,319
became radio astronomy. But the first sort of written down

137
00:06:55,439 --> 00:06:57,519
version of there are radio waves coming from the summays

138
00:06:57,519 --> 00:06:58,399
in nineteen forty two.

139
00:06:59,639 --> 00:07:01,759
Speaker 1: Well, I guess that's enough geeking out for now. Who's

140
00:07:01,800 --> 00:07:02,560
talking to us today?

141
00:07:02,639 --> 00:07:05,399
Speaker 3: Richard grabbed a comment off show nineteen oh nine, the

142
00:07:05,399 --> 00:07:08,079
one we did back in augusta twenty four with jah

143
00:07:08,120 --> 00:07:13,000
Shen Shang, which was talking about Aspire, specifically an approach

144
00:07:13,079 --> 00:07:15,399
to using containers because the spier gives you a framework

145
00:07:15,439 --> 00:07:18,079
to kind of go about that. We got this great

146
00:07:18,079 --> 00:07:21,959
comment from Michael Warrence who said, a great episode. Although

147
00:07:22,160 --> 00:07:24,120
I noticed a slight weariness in Carl at the start

148
00:07:24,120 --> 00:07:25,959
of this episode. I know it's been a long strange

149
00:07:26,000 --> 00:07:27,759
journey for you guys, but you do a great job

150
00:07:27,800 --> 00:07:31,839
that is widely appreciated developer community. Still thanks, But in

151
00:07:31,879 --> 00:07:34,759
this episode, hearing Jian Shen's down to earth approach, which

152
00:07:34,800 --> 00:07:37,199
is what we really liked about talking here, which she

153
00:07:37,360 --> 00:07:40,959
immediately practical, super easy to engage with. All my knowledge

154
00:07:40,959 --> 00:07:46,639
has come from screwon around and getting burned. The great

155
00:07:46,680 --> 00:07:49,399
thing about Donna Rodgs is the way a given topic

156
00:07:49,439 --> 00:07:52,120
off and triggers super interesting chats about deeper subjects. During

157
00:07:52,120 --> 00:07:56,439
your conversation, a couple of topics emerged. Opinionatedness, this is

158
00:07:56,480 --> 00:08:00,000
such a word, and also the definition of micro services,

159
00:08:00,120 --> 00:08:04,199
which we pressed on both right and Michael goes out

160
00:08:04,199 --> 00:08:06,319
to say, it seems that the fellow developers have been

161
00:08:06,360 --> 00:08:11,519
most opposed to opinionated software are the most opinionated developers. Yeah,

162
00:08:11,560 --> 00:08:12,959
it's usually the person who wants to be able to

163
00:08:13,000 --> 00:08:14,720
do whatever they want, however they want.

164
00:08:15,000 --> 00:08:15,120
Speaker 4: Right.

165
00:08:15,199 --> 00:08:18,000
Speaker 3: It gets annoyed when tools are built to be opinioned.

166
00:08:18,040 --> 00:08:20,800
They want ultimate flexibility, which creates more problems I think

167
00:08:20,800 --> 00:08:21,279
than it solved.

168
00:08:21,319 --> 00:08:23,079
Speaker 2: Yeah, my opinion, not yours. Right.

169
00:08:23,800 --> 00:08:25,480
Speaker 3: As for micro services, all I can say is that

170
00:08:25,519 --> 00:08:27,240
all the software I've worked on the past ten years

171
00:08:27,240 --> 00:08:29,639
has distributed components in it which all need to be

172
00:08:29,639 --> 00:08:30,800
coordinated correctly.

173
00:08:30,439 --> 00:08:31,600
Speaker 2: For the application to run.

174
00:08:32,039 --> 00:08:33,840
Speaker 3: And as they used to say, the sum is greater

175
00:08:33,879 --> 00:08:38,960
than the whole, right, So having an opinionated orchestration approach

176
00:08:39,080 --> 00:08:44,360
like a spire is great. Dashboard telemetry, service discovery all

177
00:08:44,399 --> 00:08:46,960
out of the box. And I very much agree on

178
00:08:47,600 --> 00:08:50,360
XML XAMAL YAML versus Jason. I thought Jason was a

179
00:08:50,399 --> 00:08:52,679
great improvement to XML, but I can see the place

180
00:08:52,679 --> 00:08:55,519
for XML and MAUI to continue the concept of markup.

181
00:08:55,919 --> 00:08:58,120
It was a great guest and a great show. Keep

182
00:08:58,159 --> 00:08:58,840
on rocking.

183
00:08:59,039 --> 00:08:59,200
Speaker 2: You know.

184
00:08:59,320 --> 00:09:01,360
Speaker 1: I had a meeting with the customer today and they

185
00:09:01,399 --> 00:09:04,879
asked me if I'd ever done EXSLT transformed. Oh my goodness,

186
00:09:04,919 --> 00:09:07,039
and I said, Yeah, back in the early two thousands,

187
00:09:07,039 --> 00:09:12,120
I tried it once and I had to have therapy afterwards.

188
00:09:13,200 --> 00:09:16,200
Speaker 2: Yeah, we all did it. May rest in peace. Yeah,

189
00:09:16,440 --> 00:09:17,759
so it's okay, we can let it go.

190
00:09:18,039 --> 00:09:20,879
Speaker 1: Yeah. Well, and what I got to say about that

191
00:09:20,919 --> 00:09:24,840
comment is that, yeah, I love dot net Aspire because

192
00:09:25,559 --> 00:09:28,080
you know, it's opinion, ain't but it's flexible. You know. Yeah,

193
00:09:28,320 --> 00:09:30,840
we're going with my opinion first, but if you've got

194
00:09:30,879 --> 00:09:32,360
another opinion, it's okay.

195
00:09:32,279 --> 00:09:33,559
Speaker 2: You swap it in and it's all right.

196
00:09:33,639 --> 00:09:35,559
Speaker 3: I just like, Yeah, I like that ability to experiment,

197
00:09:35,600 --> 00:09:38,440
to try different services and so forth, to not be

198
00:09:38,679 --> 00:09:40,200
locked into something right up front.

199
00:09:40,279 --> 00:09:40,480
Speaker 2: Right.

200
00:09:40,600 --> 00:09:42,200
Speaker 3: Yeah, so, Michael, thank you so much for your comment.

201
00:09:42,279 --> 00:09:44,120
Any copy of music Cobey is on its way to you.

202
00:09:44,159 --> 00:09:45,600
And if you'd like a copy of music Code, I

203
00:09:45,639 --> 00:09:47,399
write a comment on the website at dot net rocks

204
00:09:47,440 --> 00:09:49,360
dot com or all the facebooks you publish every show there,

205
00:09:49,360 --> 00:09:50,679
and you comment there and I read on the show.

206
00:09:50,720 --> 00:09:52,960
Speaker 2: We'll send your copy. Music go buy a music.

207
00:09:52,639 --> 00:09:54,960
Speaker 1: Code by has a new track track twenty two, and

208
00:09:55,320 --> 00:09:57,679
the orders are coming in, and not only just for

209
00:09:57,759 --> 00:10:00,840
twenty two, but for the collections. We have MP three,

210
00:10:00,960 --> 00:10:04,320
Wave and Flak collections now all twenty two track. If

211
00:10:04,320 --> 00:10:05,960
you're a flacker, yeah, if you're a flacker.

212
00:10:06,759 --> 00:10:06,879
Speaker 2: Uh.

213
00:10:07,440 --> 00:10:11,120
Speaker 1: Maybe people don't know what flak is. Flak is lossless

214
00:10:11,200 --> 00:10:12,840
like wave, but it's half the size.

215
00:10:13,039 --> 00:10:13,360
Speaker 2: Yeah.

216
00:10:13,399 --> 00:10:16,480
Speaker 1: So you can download the flack zip file which is

217
00:10:16,519 --> 00:10:19,399
half the size. Unzip it, convert him back to waves

218
00:10:19,440 --> 00:10:20,960
and you've got perfect audio again.

219
00:10:21,080 --> 00:10:21,360
Speaker 2: Nice.

220
00:10:21,480 --> 00:10:23,879
Speaker 1: Yeah, so it's good. All right, let's bring in our

221
00:10:23,919 --> 00:10:27,000
friend Rob Richardson. We haven't talked to in a long time.

222
00:10:27,200 --> 00:10:28,039
Speaker 2: Too long. Yeah.

223
00:10:28,080 --> 00:10:31,440
Speaker 1: So Rob is a software craftsman building web properties in ASP,

224
00:10:31,559 --> 00:10:36,080
neut and Node, React and View. He is a Microsoft MVP,

225
00:10:36,720 --> 00:10:40,159
a published author, frequent speaker at conferences, user groups, and

226
00:10:40,200 --> 00:10:43,840
community events, and a diligent teacher and student of high

227
00:10:43,919 --> 00:10:47,840
quality software development. You can find his talks on robrich

228
00:10:47,919 --> 00:10:52,279
dot org, slash presentations and follow him on masthodon at,

229
00:10:52,399 --> 00:10:56,840
Rob rich at Hackeyderm dot io. Welcome back, old friend.

230
00:10:56,919 --> 00:10:58,039
How are you, dude?

231
00:10:58,080 --> 00:11:00,200
Speaker 4: Well, it's great to be here. It's fun to be

232
00:11:00,200 --> 00:11:02,600
able to dig into all things code.

233
00:11:02,840 --> 00:11:03,919
Speaker 2: Yeah, sure is.

234
00:11:04,159 --> 00:11:07,120
Speaker 1: I was hanging out with you and a bunch of

235
00:11:07,159 --> 00:11:14,480
people after Tulsa Users Group, and that's when I almost

236
00:11:14,480 --> 00:11:16,240
did a double take because the last time I saw

237
00:11:16,279 --> 00:11:20,320
you in person, you looked like a yogi. I did

238
00:11:21,039 --> 00:11:24,600
you know long hair, long beard? I mean you're and

239
00:11:24,639 --> 00:11:28,440
you're tall. So yeah, it was quite a striking presence.

240
00:11:28,440 --> 00:11:31,120
And now short hair, no facial hair. You like cleaning

241
00:11:31,159 --> 00:11:31,799
up real good?

242
00:11:32,279 --> 00:11:32,600
Speaker 4: Thanks?

243
00:11:33,000 --> 00:11:33,360
Speaker 2: Yeah.

244
00:11:33,440 --> 00:11:35,559
Speaker 4: Yeah, my niece has started calling me sasquatch.

245
00:11:36,200 --> 00:11:42,360
Speaker 2: Yeah, there's a line. Do you just grunt er?

246
00:11:44,279 --> 00:11:46,480
Speaker 4: Yeah? After a while I was Uncle Harry dude, and

247
00:11:46,480 --> 00:11:49,720
now I'm uncle Unhirry dude.

248
00:11:49,960 --> 00:11:50,039
Speaker 1: Ye.

249
00:11:50,159 --> 00:11:52,799
Speaker 2: Anyway, what you've been doing lately.

250
00:11:52,919 --> 00:11:55,200
Speaker 4: I've been doing a bunch of conference speaking and a

251
00:11:55,200 --> 00:11:58,840
bunch of coding. It's fun to dig into all things

252
00:11:59,080 --> 00:12:02,080
dot net and dot net Aspire came about, which is

253
00:12:02,120 --> 00:12:05,360
really cool. It kind of brings open telemetry into view,

254
00:12:05,399 --> 00:12:07,919
and so it's been fun to dig into the DevOps

255
00:12:08,000 --> 00:12:11,240
parts of all the things doctor and kupernettes, but also

256
00:12:11,279 --> 00:12:13,679
fun to kind of dig into the code too. With

257
00:12:13,960 --> 00:12:16,320
open telemetry and dot net Aspire, it's been a lot

258
00:12:16,320 --> 00:12:16,639
of fun.

259
00:12:16,799 --> 00:12:20,240
Speaker 1: Do you think more people are using open telemetry as

260
00:12:20,480 --> 00:12:24,679
a result of embracing dot net Aspire that otherwise would

261
00:12:24,679 --> 00:12:25,360
not have I.

262
00:12:25,279 --> 00:12:28,639
Speaker 4: Think so open telemetry has kind of become the de

263
00:12:28,720 --> 00:12:32,559
facto standard for how we do logging, tracing and metrics,

264
00:12:32,720 --> 00:12:37,639
and so it's getting built into appliances and software frameworks.

265
00:12:37,679 --> 00:12:39,759
And so the really cool part is now we get

266
00:12:39,799 --> 00:12:42,120
to play with that in dot net as well. You know,

267
00:12:42,120 --> 00:12:45,320
we've already always had activities and interesting things there, but

268
00:12:45,919 --> 00:12:48,600
now because it's a very well paved paths it works

269
00:12:48,600 --> 00:12:49,159
out really well.

270
00:12:49,240 --> 00:12:51,960
Speaker 1: Yeah, isn't Azure app insights using open telemetry in the

271
00:12:51,960 --> 00:12:52,679
background now?

272
00:12:52,799 --> 00:12:53,080
Speaker 2: I think?

273
00:12:53,120 --> 00:12:56,240
Speaker 4: So it becomes an open telemetry sink in a really

274
00:12:56,279 --> 00:12:59,080
elegant way. Yeah, it did speak its own protocol for

275
00:12:59,120 --> 00:13:01,240
a time, but yeah, we're all kind of moving towards

276
00:13:01,240 --> 00:13:04,240
open telemetry as the protocol for how to do these things.

277
00:13:04,519 --> 00:13:06,799
Speaker 1: I think the first time that we heard about open

278
00:13:06,799 --> 00:13:11,639
telemetry was with Leila in Porto, and yeah, kind of

279
00:13:11,799 --> 00:13:14,559
kind of blew our mind. But I also thought about

280
00:13:14,600 --> 00:13:20,600
all of the third party telemetry packages that you could

281
00:13:20,639 --> 00:13:24,200
buy or subscribe to, you know, and what was their

282
00:13:24,200 --> 00:13:27,399
reaction to to it. And you don't really hear too

283
00:13:27,480 --> 00:13:30,159
much about these guys anymore, although I don't. I don't,

284
00:13:30,200 --> 00:13:30,919
but maybe you do.

285
00:13:31,200 --> 00:13:33,919
Speaker 4: Yeah, the cool part is now that we kind of

286
00:13:34,000 --> 00:13:37,519
have reached a standard. Maybe we don't mind. You know,

287
00:13:37,559 --> 00:13:39,480
I can still pipe it off to Splunk or new

288
00:13:39,519 --> 00:13:42,120
Relic or wherever I want to send it, but now

289
00:13:42,120 --> 00:13:43,600
we're all speaking the same protocol.

290
00:13:44,080 --> 00:13:44,320
Speaker 2: Yeah.

291
00:13:44,360 --> 00:13:47,080
Speaker 4: So for example, I was futzing with engine X and

292
00:13:47,120 --> 00:13:49,039
I'm like, hey, I wonder if engine X can do

293
00:13:49,120 --> 00:13:49,960
open telemetry.

294
00:13:50,879 --> 00:13:51,120
Speaker 2: YEP.

295
00:13:51,519 --> 00:13:53,639
Speaker 4: I just pull in the engine X protocol and the

296
00:13:53,679 --> 00:13:56,759
way it goes and now I get tracing through Engine

297
00:13:56,960 --> 00:13:58,879
X on the way past. It's really cool.

298
00:13:59,399 --> 00:14:01,000
Speaker 2: Just comes by default. Yeah.

299
00:14:01,080 --> 00:14:04,840
Speaker 3: Yeah, And that's the whole thing is like it's part

300
00:14:04,879 --> 00:14:07,200
of the plumbing. It kind of it's there automatically, like

301
00:14:07,200 --> 00:14:09,519
you've got to fight to turn it off. It's just

302
00:14:09,879 --> 00:14:11,879
normally there and it complies all these standards, so it

303
00:14:11,919 --> 00:14:16,360
appears everywhere like that's the advantage. It's just because they

304
00:14:16,440 --> 00:14:18,399
open tell them stuff really comes out of the Linux world.

305
00:14:18,559 --> 00:14:20,519
Speaker 2: It's just we had to adopt it. We're kind of

306
00:14:20,559 --> 00:14:21,480
late comers to this.

307
00:14:21,440 --> 00:14:23,440
Speaker 4: Thing, right, And it's not so much that I have

308
00:14:23,480 --> 00:14:26,159
to fight to turn it off, but rather the moment

309
00:14:26,200 --> 00:14:29,159
that I handed a place to go, it'll just light up.

310
00:14:29,879 --> 00:14:31,919
And so until I tell it where to go, then

311
00:14:31,919 --> 00:14:33,720
it really doesn't impact my app at all.

312
00:14:34,000 --> 00:14:36,000
Speaker 2: Yeah, and it's just it's yeah, it's just lost bits.

313
00:14:36,080 --> 00:14:38,399
They don't go nowhere, right, Yeah, that's a good point.

314
00:14:38,600 --> 00:14:41,320
Speaker 1: And people may think that, you know, I don't want

315
00:14:41,320 --> 00:14:43,879
to turn something on that's going to take my cycles

316
00:14:43,919 --> 00:14:47,120
in the background, and you know, steel performance and blah

317
00:14:47,120 --> 00:14:47,559
blah blah.

318
00:14:47,600 --> 00:14:49,519
Speaker 2: But you're right, unless.

319
00:14:49,440 --> 00:14:51,639
Speaker 1: Unless you can figure it, it's just sitting there.

320
00:14:51,720 --> 00:14:51,960
Speaker 2: Yeah.

321
00:14:52,240 --> 00:14:53,720
Speaker 4: And there is a little bit of a sharp edge

322
00:14:53,799 --> 00:14:58,000
right there, because well, as I'm working with these activities

323
00:14:58,039 --> 00:15:00,679
inside of dot net, I may go reach for the

324
00:15:00,720 --> 00:15:04,039
current activity and if nothing's listening, it could be NOLL.

325
00:15:04,639 --> 00:15:06,279
So I do need to check to see if it's

326
00:15:06,360 --> 00:15:07,559
NOLL on the way past.

327
00:15:07,440 --> 00:15:10,679
Speaker 2: Right, Yeah, we dot net programmers have gotten used to that. Yeah,

328
00:15:10,960 --> 00:15:13,679
nols will never hurt you. Well, maybe a little. Well.

329
00:15:13,679 --> 00:15:16,679
Speaker 1: The language, though, sea sharp really evolved to handle knowles,

330
00:15:16,720 --> 00:15:17,080
didn't it.

331
00:15:17,159 --> 00:15:19,200
Speaker 4: Yeah, now that we have noble reference types, this is

332
00:15:19,240 --> 00:15:20,080
really not a big deal.

333
00:15:20,200 --> 00:15:21,080
Speaker 2: It's not a big deal.

334
00:15:21,240 --> 00:15:24,679
Speaker 1: And the c sharp expressions to if noel do this,

335
00:15:24,879 --> 00:15:28,240
if not do that, I think you can't read them, but.

336
00:15:30,200 --> 00:15:31,399
Speaker 2: Certainly is expressive.

337
00:15:32,759 --> 00:15:34,919
Speaker 4: Well, the Coole syntax is that we just put a

338
00:15:35,000 --> 00:15:37,519
question mark before the dot and you know, coding and

339
00:15:37,600 --> 00:15:40,559
audio is always weird. Yeah, but like that same syntax

340
00:15:40,600 --> 00:15:43,440
works in JavaScript and in other languages as well. So

341
00:15:44,080 --> 00:15:46,679
I think as a programming community we've kind of figured

342
00:15:46,720 --> 00:15:49,799
out that NOLL handling is easy. You just question mark

343
00:15:49,840 --> 00:15:51,120
first and it just works.

344
00:15:51,440 --> 00:15:54,559
Speaker 1: It's great, right, And if you're using visual Studio, Copilot's

345
00:15:54,559 --> 00:15:56,080
going to tell you the rest of it anyway. Just

346
00:15:56,159 --> 00:15:58,080
hit tab, Yeah, question mark dot tab.

347
00:15:59,200 --> 00:15:59,759
Speaker 4: There you go.

348
00:16:00,840 --> 00:16:01,600
Speaker 2: What could happen?

349
00:16:01,799 --> 00:16:04,799
Speaker 3: Yeah, it's funny how much we're copilots now, reflect like

350
00:16:04,840 --> 00:16:06,879
already it's only been a couple of years and we're

351
00:16:06,919 --> 00:16:09,360
already like, yeah, you just do it this way.

352
00:16:09,840 --> 00:16:12,159
Speaker 2: Yeah. I like Copilot finish that for me. I love that.

353
00:16:12,240 --> 00:16:16,600
Speaker 4: In the latest VS Code there's an experiment where Copilot

354
00:16:16,639 --> 00:16:17,720
has a Clippy icon.

355
00:16:17,960 --> 00:16:22,759
Speaker 2: Ah. Oh no, we kept threatening to bring that back.

356
00:16:23,080 --> 00:16:23,480
Why not?

357
00:16:24,480 --> 00:16:28,279
Speaker 3: Why what's wrong with a paper clip? Animated paper clips

358
00:16:28,279 --> 00:16:29,799
are your friend? No?

359
00:16:29,799 --> 00:16:30,320
Speaker 2: No, they're not.

360
00:16:32,879 --> 00:16:36,200
Speaker 3: Can't have a little fun, They're evil? Yeah, they the

361
00:16:36,240 --> 00:16:37,960
whole trick there. You know what went wrong with Clippy

362
00:16:38,000 --> 00:16:40,840
back in the day is the interruption. You think about

363
00:16:40,879 --> 00:16:43,039
how much smarter we are with you access today, Well,

364
00:16:43,120 --> 00:16:47,559
how carefully studio tries not to interrupt you, tries to

365
00:16:47,600 --> 00:16:50,399
still provide the hint, the swiggle or the little light

366
00:16:50,519 --> 00:16:53,240
up tool or all of those things, that there's something

367
00:16:53,279 --> 00:16:56,440
I could help you with here without actually interrupting your food.

368
00:16:56,480 --> 00:16:58,440
Speaker 1: Well, is it that, Richard, or is it that we've

369
00:16:58,480 --> 00:17:01,399
all become much more eighty eight so we don't notice

370
00:17:01,440 --> 00:17:04,599
it because everything interrupts us all the time. I tend

371
00:17:04,599 --> 00:17:06,960
to think it's somewhere in the middle degrees of interruption.

372
00:17:07,160 --> 00:17:10,000
I thought Clippy died a long time ago. You know, hey,

373
00:17:10,079 --> 00:17:12,160
it did. Is that Is that a business graver or

374
00:17:12,200 --> 00:17:13,400
a personal grave you're digging?

375
00:17:15,279 --> 00:17:16,079
Speaker 2: Can I help you with that?

376
00:17:16,119 --> 00:17:18,640
Speaker 4: And what was hilarious about Clippy was how irrelevant the

377
00:17:18,680 --> 00:17:21,440
suggestions were, Right, I think, you know, co Pilot is

378
00:17:21,480 --> 00:17:24,640
so much more relevant now and that can be really

379
00:17:24,720 --> 00:17:25,319
really helpful.

380
00:17:25,480 --> 00:17:27,160
Speaker 3: And Aaron lies the point, right, It's like, I don't

381
00:17:27,160 --> 00:17:30,839
mind you interrupting me if you're actually providing me help,

382
00:17:31,440 --> 00:17:34,920
like you're going to shorten my effort. I just you know,

383
00:17:35,000 --> 00:17:37,319
we're all pretty skeptical of that because we've had pretty

384
00:17:37,319 --> 00:17:39,480
bad experiences with right, well had options.

385
00:17:39,640 --> 00:17:42,559
Speaker 1: Yeah, I mean AI for coding help in general is

386
00:17:42,599 --> 00:17:43,079
really good.

387
00:17:43,279 --> 00:17:43,559
Speaker 2: Yeah.

388
00:17:43,640 --> 00:17:47,200
Speaker 1: I was just today I'm working on an old project

389
00:17:47,200 --> 00:17:50,480
that needs to be brought into the you know, twenty

390
00:17:50,480 --> 00:17:54,960
first century. Starting there with, there was no models. You know,

391
00:17:55,039 --> 00:17:58,359
the models were part of a SPX pages that were

392
00:17:58,440 --> 00:18:02,519
all combined with Java script, and so there was no

393
00:18:02,799 --> 00:18:04,319
fresh model. So the first thing I had to do

394
00:18:04,440 --> 00:18:06,359
is go to the database. And I know that there's

395
00:18:06,400 --> 00:18:10,759
ways to scaffold that, but I just did a create

396
00:18:10,920 --> 00:18:16,279
two clipboard for a table, pasted into chat GPT and said, hey,

397
00:18:16,319 --> 00:18:18,000
make me a class from this. I was like, yeah,

398
00:18:18,079 --> 00:18:18,559
no problem.

399
00:18:18,599 --> 00:18:23,920
Speaker 3: It's great because conversational mindset with your software is just interesting, right, Yeah,

400
00:18:24,079 --> 00:18:26,240
And I think the interesting part of that is you

401
00:18:26,240 --> 00:18:28,279
would do this with a person anyway, and you tend

402
00:18:28,279 --> 00:18:30,200
to make better software when you explain yourself.

403
00:18:30,359 --> 00:18:30,599
Speaker 2: Yeah.

404
00:18:31,039 --> 00:18:32,839
Speaker 3: How many times have I gone to write something in

405
00:18:32,880 --> 00:18:36,240
stack overflow and the process of writing it answered it? Yeah,

406
00:18:36,240 --> 00:18:39,279
and then I've never posted it absolutely, And so this

407
00:18:40,160 --> 00:18:43,480
tool stimulates that behavior really well. Rubber ducking.

408
00:18:43,720 --> 00:18:45,039
Speaker 2: You're ducking all the time.

409
00:18:45,160 --> 00:18:48,599
Speaker 4: Interesting thing about that process though, Yeah, I spent the

410
00:18:48,960 --> 00:18:53,640
time kind of interviewing myself to figure out the proper question.

411
00:18:54,519 --> 00:18:56,759
And now that I'm on stack overflow and I have

412
00:18:57,240 --> 00:19:00,000
figured it out part of me wants to just ask

413
00:19:00,119 --> 00:19:04,000
the question and then answer it because good for tomorrow

414
00:19:04,119 --> 00:19:07,960
or next week, some ignorant developer me is going to

415
00:19:08,000 --> 00:19:11,160
ask that question again, and so can I pave the

416
00:19:11,200 --> 00:19:13,599
path a little bit better for the next generation m.

417
00:19:13,799 --> 00:19:16,240
Speaker 2: M, yeah, the next generation of you.

418
00:19:16,640 --> 00:19:16,839
Speaker 1: Yeah.

419
00:19:17,400 --> 00:19:20,039
Speaker 4: What's really annoying is when I'm really struggling with something

420
00:19:20,119 --> 00:19:22,119
and I go to Google it and I find this

421
00:19:22,200 --> 00:19:26,599
really cool post on my blog explaining it, and I'm like,

422
00:19:26,599 --> 00:19:27,240
oh wait.

423
00:19:28,720 --> 00:19:31,079
Speaker 3: I figured this out a while Well that was Handsoman's line, right,

424
00:19:31,160 --> 00:19:32,920
I'm just writing this down so I don't have to

425
00:19:33,000 --> 00:19:34,680
remember it because I'm.

426
00:19:34,559 --> 00:19:37,839
Speaker 1: Not gonna yea And then anytime anybody asks him a question,

427
00:19:37,960 --> 00:19:39,440
he just answers it with a ur l.

428
00:19:39,680 --> 00:19:43,839
Speaker 3: Yeah it's not real sociable, but okay, now sufficient.

429
00:19:47,920 --> 00:19:48,519
Speaker 2: True enough?

430
00:19:49,119 --> 00:19:52,839
Speaker 3: So you you've already Carl's already said scaffold, but I

431
00:19:52,880 --> 00:19:55,240
heard it's a dirty word with dot net aspire. What

432
00:19:55,359 --> 00:19:58,559
is is dot aspire scaffolding or is it a framework?

433
00:19:58,720 --> 00:20:01,079
Speaker 2: Like? Because what is it?

434
00:20:01,160 --> 00:20:03,279
Speaker 4: And that's one of the weird things is as we

435
00:20:03,319 --> 00:20:06,079
look at dot net Aspire, we kind of go, what

436
00:20:06,200 --> 00:20:07,960
is it? You know, what are we trying to solve

437
00:20:08,000 --> 00:20:12,119
here what is and we say words like open telemetry

438
00:20:12,200 --> 00:20:16,240
and service discovery and all those kind of get around

439
00:20:16,359 --> 00:20:20,559
the topic. But yeah, it is kind of difficult to quantify.

440
00:20:21,079 --> 00:20:24,400
The biggest purpose of dot Net Aspire is to help

441
00:20:24,519 --> 00:20:27,279
us fall into the pit of success, right, to help

442
00:20:27,359 --> 00:20:30,720
us build distributed software. And so there's a whole bunch

443
00:20:30,720 --> 00:20:33,720
of stuff in there to facilitate this, all of the

444
00:20:33,720 --> 00:20:37,279
web's best practices like open telemetry and service discovery and

445
00:20:37,680 --> 00:20:42,200
injecting environment variables to do cool things. But as we

446
00:20:42,240 --> 00:20:44,400
start peeling the onion there, then we end up with

447
00:20:44,960 --> 00:20:48,400
just really cool experiences that allow us to do really

448
00:20:48,440 --> 00:20:53,359
fun things. And so in there is launching projects all together.

449
00:20:53,799 --> 00:20:56,480
Project tie did this for us back in the day,

450
00:20:56,839 --> 00:20:58,880
where we could say, hey, I want to get this

451
00:20:58,960 --> 00:21:01,039
project to call that project, and I don't want to

452
00:21:01,039 --> 00:21:03,839
have to figure out open ports, just like kind of

453
00:21:03,960 --> 00:21:06,799
do that. And so then we also get really cool

454
00:21:07,960 --> 00:21:11,880
container orchestration where we can say and start this container

455
00:21:11,880 --> 00:21:15,119
as part of it, and if it's a database container,

456
00:21:15,200 --> 00:21:17,839
let me inject in the data that I need to

457
00:21:17,880 --> 00:21:20,240
be able to spin it up. And so now we

458
00:21:20,359 --> 00:21:24,920
can orchestrate containers and dot net projects and command line

459
00:21:24,960 --> 00:21:28,319
executables and inject environment variable so that they can all

460
00:21:28,359 --> 00:21:30,400
get to talk to each other. And that's a big

461
00:21:30,400 --> 00:21:32,880
piece of it. But then we also have kind of

462
00:21:32,920 --> 00:21:35,480
the piece coming back where we can say, well, let's

463
00:21:35,559 --> 00:21:39,839
collect all the logs and traces and metrics and surface

464
00:21:39,920 --> 00:21:43,440
them in a really cool discoverable dashboard so that no

465
00:21:43,559 --> 00:21:45,559
longer do you have to figure out how does this

466
00:21:45,640 --> 00:21:49,559
call that, what was the error there, which console window

467
00:21:49,839 --> 00:21:52,319
was it? And so there's that part of it, But

468
00:21:52,440 --> 00:21:55,680
then there's also another part of it of simplifying dot

469
00:21:55,799 --> 00:22:00,799
net experiences. So we have a bunch of two projects

470
00:22:00,799 --> 00:22:03,000
that it creates, the app host project, but also the

471
00:22:03,039 --> 00:22:06,759
service defaults project. And in that service defaults project, it

472
00:22:06,799 --> 00:22:09,319
will rig up health checks, and it will rig up

473
00:22:09,359 --> 00:22:11,880
open telemetry, and it will rig up all kinds of

474
00:22:11,920 --> 00:22:15,039
interesting things. But unlike some of the other places where

475
00:22:15,039 --> 00:22:17,839
they kind of hide that away, they're actually giving us

476
00:22:17,839 --> 00:22:20,400
the code, so if we have different opinions, we can

477
00:22:20,440 --> 00:22:23,400
express those opinions in there too. And then as part

478
00:22:23,480 --> 00:22:26,759
of that, there are dot net Aspire components that just

479
00:22:26,920 --> 00:22:30,319
make connection strings kind of melt away, so no longer

480
00:22:30,359 --> 00:22:32,559
do I need to rig up the details of how

481
00:22:32,640 --> 00:22:36,319
this connects to that or even how this connects to

482
00:22:36,359 --> 00:22:38,720
that database. I just kind of say, hey, I would

483
00:22:38,720 --> 00:22:42,039
like this Aspire component that hooks me to, for example,

484
00:22:42,119 --> 00:22:46,839
Postcress or redd Us, and then with an app host,

485
00:22:46,880 --> 00:22:49,160
I say, oh, and by the way, spin up postgrass

486
00:22:49,240 --> 00:22:51,559
or redd Us. And now there aren't connection strings in

487
00:22:51,559 --> 00:22:52,559
my application at all.

488
00:22:52,799 --> 00:22:52,920
Speaker 2: Right.

489
00:22:53,200 --> 00:22:55,960
Speaker 4: Dot net Aspire just kind of handles that with environment

490
00:22:56,039 --> 00:22:59,279
variables poked into it. And so it's all of these pieces.

491
00:22:59,400 --> 00:23:04,119
It's the dot net best practices at the service discovery,

492
00:23:04,279 --> 00:23:07,119
it's the launching multiple things at the same time. It's

493
00:23:07,160 --> 00:23:11,279
the simplifying configuration pieces. And because it's all of those

494
00:23:11,319 --> 00:23:14,119
things kind of wrapped into one, then we kind of go,

495
00:23:14,160 --> 00:23:17,480
well what is this? And it's really easy then to say, well,

496
00:23:17,559 --> 00:23:20,000
this is huge and overwhelming, and I have opinions on

497
00:23:20,039 --> 00:23:21,680
that and I don't want to do that. But what's

498
00:23:21,720 --> 00:23:25,400
beautiful about dot net Aspire is that I can use

499
00:23:25,440 --> 00:23:27,960
as much or as little of it as I want.

500
00:23:28,480 --> 00:23:30,880
And so if I like this opinion, I can do that,

501
00:23:31,359 --> 00:23:33,079
and if I don't like this opinion, I can do

502
00:23:33,119 --> 00:23:33,640
something else.

503
00:23:33,880 --> 00:23:36,960
Speaker 1: Yeah, and the thing that the red flag goes off

504
00:23:36,960 --> 00:23:38,799
in my head probably a lot of listeners who aren't

505
00:23:38,839 --> 00:23:42,160
using this and who don't have experience with it, is, well,

506
00:23:42,359 --> 00:23:44,480
how am I going to know how to do that?

507
00:23:44,720 --> 00:23:44,799
Speaker 2: Like?

508
00:23:44,880 --> 00:23:46,880
Speaker 1: How am I going to say? Am I going to

509
00:23:46,920 --> 00:23:50,720
be ab test you know, my way versus Aspire's way?

510
00:23:50,720 --> 00:23:52,359
And am I going to screw anything up if I

511
00:23:52,440 --> 00:23:53,599
change any configuration?

512
00:23:54,519 --> 00:23:54,720
Speaker 2: Yeah?

513
00:23:54,759 --> 00:23:56,759
Speaker 1: You kind of have to understand the whole thing. It's

514
00:23:56,839 --> 00:24:01,240
kind of like co generators. You know, stuff that generates code.

515
00:24:01,279 --> 00:24:03,319
You use it and it's great, but if you don't

516
00:24:03,359 --> 00:24:05,079
really know what it's generating.

517
00:24:05,599 --> 00:24:06,039
Speaker 2: Should you?

518
00:24:06,240 --> 00:24:08,640
Speaker 1: How do you trust it? How do you know when

519
00:24:08,680 --> 00:24:11,039
things go wrong what to do, how to fix it?

520
00:24:11,599 --> 00:24:15,000
So there's some trepidation I think among some people to

521
00:24:15,119 --> 00:24:17,839
jump in because they think, oh, this is going to

522
00:24:17,880 --> 00:24:20,920
do all this work for me. Where am I going

523
00:24:21,000 --> 00:24:24,519
to look when something doesn't do what I wanted to do?

524
00:24:24,640 --> 00:24:26,880
Speaker 4: And the cool part there is, for the most part,

525
00:24:27,400 --> 00:24:30,240
the majority of open telemetry can be a development tool.

526
00:24:30,920 --> 00:24:35,640
So it's not like I'm expressing opinions into production that

527
00:24:35,680 --> 00:24:37,599
I may not agree with or may do ut understand.

528
00:24:38,119 --> 00:24:40,880
But instead I can say, well, let me see if

529
00:24:40,920 --> 00:24:43,680
this makes my developers more productive, and I'll deploy the

530
00:24:43,720 --> 00:24:46,079
way I deploy today, or maybe I'll even rig up

531
00:24:46,079 --> 00:24:49,000
connection strings the way I do it today. But let

532
00:24:49,039 --> 00:24:52,319
me in development start up all the micro services that

533
00:24:52,400 --> 00:24:56,119
I need to be able to accomplish this, startup containerized

534
00:24:56,960 --> 00:25:01,920
data stores or other dependencies. And if that's helpful, then

535
00:25:01,920 --> 00:25:04,359
that's great. Maybe I can retire the doctor composed file

536
00:25:04,400 --> 00:25:07,680
that I was using before, But if it isn't, then yeah,

537
00:25:07,799 --> 00:25:09,759
it's just a new get package. I don't need to.

538
00:25:10,319 --> 00:25:13,200
You know, I had a friend that talked about, well,

539
00:25:13,640 --> 00:25:15,640
it's kind of nice, but you have to make it

540
00:25:15,640 --> 00:25:18,519
look like Chicago. Well what if I wanted to make

541
00:25:18,559 --> 00:25:22,799
it look like Chicago? And d net Aspire has some opinions,

542
00:25:22,839 --> 00:25:25,599
but doesn't really force those opinions on you. If you

543
00:25:25,599 --> 00:25:28,319
don't want it to look like Chicago, then don't.

544
00:25:28,680 --> 00:25:32,240
Speaker 2: Okay Chicago meaning the version of Windows.

545
00:25:32,440 --> 00:25:34,480
Speaker 4: Well, it was like, well, I can configure this one

546
00:25:34,519 --> 00:25:37,000
little thing and I can adjust my car in a

547
00:25:37,000 --> 00:25:39,400
certain way, But now I have to make the skyline

548
00:25:39,440 --> 00:25:41,559
look like Chicago. I see, And what if I don't

549
00:25:41,599 --> 00:25:43,480
like Chicago? What if I like New York or what

550
00:25:43,519 --> 00:25:44,400
if I like the country?

551
00:25:44,519 --> 00:25:47,400
Speaker 1: Right, But it's not really a visual style, it's a yeah,

552
00:25:47,599 --> 00:25:49,279
it's stuff that helps you on the back.

553
00:25:49,160 --> 00:25:50,119
Speaker 2: End with your plumbing code.

554
00:25:50,200 --> 00:25:54,119
Speaker 4: Really yeah, yeah, exactly. It's configuration details, not so much

555
00:25:54,640 --> 00:25:55,880
user experience details.

556
00:25:56,200 --> 00:26:01,039
Speaker 1: I like to think of Aspire as a sort of

557
00:26:01,079 --> 00:26:06,480
a gigantic visual studio template, you know, if you think

558
00:26:06,559 --> 00:26:08,519
of it that way, like when you when you go

559
00:26:08,599 --> 00:26:11,240
to create a new project, you create a Blazer project,

560
00:26:11,279 --> 00:26:14,960
you can create a you know, Docker whatever you're going

561
00:26:15,039 --> 00:26:19,839
to do, asp Net, empty core, and there's some stuff

562
00:26:19,880 --> 00:26:21,720
that's set up for you there to make it easy

563
00:26:21,759 --> 00:26:24,599
for you to get started. Yeah, if it's a Blazer project,

564
00:26:24,640 --> 00:26:26,440
you're going to delete the counterpage, and you're going to

565
00:26:26,519 --> 00:26:29,599
delete the weather page, or you might not even include

566
00:26:29,599 --> 00:26:35,599
those at all, but at least you know where you're starting, right,

567
00:26:35,640 --> 00:26:38,559
And I think of Aspires like that. When you create

568
00:26:38,599 --> 00:26:42,200
an Aspire project, Yeah, you got some checks and some

569
00:26:42,319 --> 00:26:45,880
options and things, and then you've started and it's already

570
00:26:45,920 --> 00:26:48,240
done so many things for you that you probably are

571
00:26:48,279 --> 00:26:52,480
going to do yourself at some point, but they're already done.

572
00:26:53,240 --> 00:26:57,799
So that makes it easy to discover how Aspire works,

573
00:26:57,839 --> 00:26:59,880
just by creating a project and seeing what you get.

574
00:27:00,119 --> 00:27:04,119
Speaker 4: Yeah, the new project template for Aspire is amazing. One

575
00:27:04,160 --> 00:27:05,839
of the things that I do. And the talk that

576
00:27:05,880 --> 00:27:09,480
you actually saw in Tulsa was highlight how you might

577
00:27:09,480 --> 00:27:12,480
get started with an existing project as well. It's not

578
00:27:12,680 --> 00:27:15,759
like you can't do dot net Aspire inside of an

579
00:27:15,799 --> 00:27:18,920
existing thing. And inside an existing project, you already have

580
00:27:19,039 --> 00:27:23,359
configuration details, you already have logging, you already have connection strings,

581
00:27:23,359 --> 00:27:27,079
and so you can just not use those opinions from

582
00:27:27,119 --> 00:27:29,160
dot net Aspire and instead just use it as an

583
00:27:29,160 --> 00:27:30,839
open telemetry sink a dashboard.

584
00:27:30,920 --> 00:27:33,119
Speaker 1: I think I said this before on a different show,

585
00:27:33,200 --> 00:27:36,000
but one of my customers we did that for them.

586
00:27:36,039 --> 00:27:40,920
We added Aspire to their existing application. The only problem

587
00:27:40,960 --> 00:27:44,279
we really had, ironically was with Polly HM, you know,

588
00:27:44,519 --> 00:27:48,200
because of the difference between using polydirectly and then using

589
00:27:48,880 --> 00:27:54,240
the HTDP request factory. I think it was the HDP

590
00:27:54,359 --> 00:27:57,519
client factory. Yeah, yeah, those Poly guys, which is I know,

591
00:27:57,799 --> 00:27:59,319
good thing. We're not like them, I know.

592
00:28:00,119 --> 00:28:01,119
Speaker 2: Screw those guys.

593
00:28:01,880 --> 00:28:04,240
Speaker 3: But he's in poll part of a spire like it's

594
00:28:04,279 --> 00:28:07,119
deployed a lot as part of the scaffolding.

595
00:28:07,240 --> 00:28:09,400
Speaker 4: It's one of the best practices that it pulls in

596
00:28:09,599 --> 00:28:12,480
part of the service defaults. And if we like that opinion,

597
00:28:12,519 --> 00:28:14,880
we definitely can and if we don't, we can rip

598
00:28:14,880 --> 00:28:15,160
it up.

599
00:28:15,279 --> 00:28:15,440
Speaker 2: Right.

600
00:28:15,480 --> 00:28:18,160
Speaker 1: But here's the thing, though, Polly has a project. If

601
00:28:18,160 --> 00:28:20,559
you have it in your project, right, and then you

602
00:28:20,640 --> 00:28:26,319
go to using HTDP client factory that uses the stuff

603
00:28:26,319 --> 00:28:28,880
from Polly that's in dot net core. So it's already

604
00:28:28,960 --> 00:28:33,359
doing or doing a resilient strategy. Now you've got to

605
00:28:33,400 --> 00:28:35,200
pick one or the other. That's the thing.

606
00:28:35,319 --> 00:28:37,200
Speaker 2: Too many resilient strategies at once.

607
00:28:37,400 --> 00:28:39,880
Speaker 4: Yeah, yeah, yeah, it's like too many cashes.

608
00:28:40,079 --> 00:28:42,640
Speaker 2: Yeah, you already have a cash? Would you like to

609
00:28:42,640 --> 00:28:45,160
cash the cash? No, you really shouldn't do that. That's

610
00:28:45,160 --> 00:28:47,039
not a good idea. Oh, not a good idea.

611
00:28:47,319 --> 00:28:49,839
Speaker 3: Yeah, we should take a break for a minute, friends, Yeah,

612
00:28:49,920 --> 00:28:51,759
let's take a break. We'll be right back after these

613
00:28:51,839 --> 00:28:53,960
very important messages. And as a reminder, if you don't

614
00:28:53,960 --> 00:28:56,400
want to hear these messages, you can become a patron

615
00:28:56,440 --> 00:28:58,759
at Patreon at dot netroocks dot com for five bucks

616
00:28:58,759 --> 00:29:00,000
a month and you get an ad free fee.

617
00:29:00,680 --> 00:29:01,640
Speaker 2: All right, here we go.

618
00:29:02,519 --> 00:29:05,200
Speaker 1: Did you know that you can work with AWS directly

619
00:29:05,279 --> 00:29:10,440
from your ID. AWS provides toolkits for visual studio, visual

620
00:29:10,440 --> 00:29:14,799
studio code, and jet Brains rider. Learn more at Aws

621
00:29:14,880 --> 00:29:22,839
dot Amazon dot com. Slash Net, slash Tools, and we're back.

622
00:29:22,880 --> 00:29:25,440
It's dot in a Rocks and Carl Franklin, that's Richard Campbell,

623
00:29:25,519 --> 00:29:29,799
hey in the fine country of Canada, indeed, and our

624
00:29:29,839 --> 00:29:34,519
friend Rob Richardson, who we're talking about dot net Aspire

625
00:29:35,759 --> 00:29:39,000
in detail now, but I got a feeling that we're

626
00:29:39,079 --> 00:29:41,599
you know, we've been talking about more things than just Aspire.

627
00:29:41,640 --> 00:29:46,519
But the latest template is what you were just talking about,

628
00:29:46,680 --> 00:29:48,200
the latest visual studio template.

629
00:29:48,400 --> 00:29:51,160
Speaker 4: Yeah, it's really cool because getting started with dot net

630
00:29:51,200 --> 00:29:55,000
Aspire is super easy. I used to have to install

631
00:29:55,160 --> 00:29:57,759
a visual studio workload. That's no longer a thing in

632
00:29:58,680 --> 00:30:02,519
using dot net Aspire in net nine and so now

633
00:30:02,559 --> 00:30:05,240
I just file new project and I there's a dot

634
00:30:05,279 --> 00:30:09,000
net Aspire starter template. I can check whether I want

635
00:30:09,039 --> 00:30:12,039
to include Reddus or not. If I include Rettus, then

636
00:30:12,079 --> 00:30:15,200
I need to have a container orchestrator like Podman or

637
00:30:15,319 --> 00:30:20,799
Docker desktop. And if I unchecked that, then it just

638
00:30:20,839 --> 00:30:23,319
won't include those bits. I can fire it up and

639
00:30:23,359 --> 00:30:25,480
I can get a feel for how dot net Aspire

640
00:30:25,559 --> 00:30:28,240
might integrate into an application. It's a great way to

641
00:30:28,240 --> 00:30:29,640
get started, really really easily.

642
00:30:30,480 --> 00:30:32,160
Speaker 3: And we just got to We just had a version

643
00:30:32,240 --> 00:30:34,480
number update Right, it's nine point one. Now, I mean

644
00:30:34,480 --> 00:30:36,680
they started with nine cheating.

645
00:30:37,039 --> 00:30:39,440
Speaker 4: Well they started with eight. But yeah, now that we

646
00:30:39,480 --> 00:30:40,880
have nine point one, it's pretty cool.

647
00:30:41,319 --> 00:30:43,039
Speaker 2: Okay, what's the point one?

648
00:30:43,880 --> 00:30:44,960
Speaker 4: The number after nine?

649
00:30:45,200 --> 00:30:46,240
Speaker 2: Nice?

650
00:30:46,799 --> 00:30:49,440
Speaker 4: What I found really cool is even the upgrade from

651
00:30:49,480 --> 00:30:51,759
dot net eight to dot net nine or dot net

652
00:30:51,799 --> 00:30:54,960
Aspire eight to nine wasn't all that significant. It wasn't

653
00:30:55,000 --> 00:30:57,519
all that changing. We now had the ability to wait

654
00:30:57,559 --> 00:31:00,119
for services to start up, which is really cool. But

655
00:31:00,920 --> 00:31:05,359
what's new in nine dot one? The command that you

656
00:31:05,400 --> 00:31:06,519
need to run update.

657
00:31:06,200 --> 00:31:11,200
Speaker 3: It I see in the notes here it's like Polish,

658
00:31:11,240 --> 00:31:13,559
Polish Polish, Like they're just making a little easier for

659
00:31:13,640 --> 00:31:15,079
things to have to happen.

660
00:31:15,119 --> 00:31:17,160
Speaker 4: There's a bunch of new features in nine point one.

661
00:31:17,519 --> 00:31:19,839
The one I'm most excited about is that you can

662
00:31:20,240 --> 00:31:23,759
start services on demand, rather than having them start at

663
00:31:23,799 --> 00:31:27,599
the beginning as the app post starts. But you can

664
00:31:27,640 --> 00:31:31,400
now do nested resources. For example, you create a database server,

665
00:31:31,599 --> 00:31:34,200
and then you create a database on that server. The

666
00:31:34,279 --> 00:31:37,599
database is now nested under the server. You can now

667
00:31:37,640 --> 00:31:41,359
clear and download the logs and traces, which is really cool.

668
00:31:41,640 --> 00:31:44,400
They're still not durable, they're not still not saved to memory,

669
00:31:44,640 --> 00:31:47,680
but you can clear them and download them, and so

670
00:31:48,119 --> 00:31:49,960
if you download them now you can compare them to

671
00:31:49,960 --> 00:31:52,839
what you did yesterday. The resource can fig screens on

672
00:31:52,880 --> 00:31:57,319
the dashboard now show not only the configuration details, but

673
00:31:57,440 --> 00:32:00,920
which resources depend on them, which resources it depends on,

674
00:32:01,319 --> 00:32:03,799
and so that can kind of help you discover dependencies.

675
00:32:04,440 --> 00:32:08,799
Previously you could emulate Azure storage, which with an Azurite container,

676
00:32:09,319 --> 00:32:13,039
but now there's emulators for Azure Service, Bus, Cosmos dB,

677
00:32:13,240 --> 00:32:16,680
and Signal R. There's some testing improvements, like you can

678
00:32:16,720 --> 00:32:20,559
add disabled randomized ports and enable the dashboard during tests.

679
00:32:20,799 --> 00:32:24,119
That can be really helpful, and the release notes doesn't

680
00:32:24,119 --> 00:32:27,440
call it out. I'm sure everything is more, better, faster.

681
00:32:28,559 --> 00:32:32,319
They're always doing performance improvements in everything. It was so

682
00:32:32,480 --> 00:32:35,519
amazing to me in dot net six how span of

683
00:32:35,599 --> 00:32:38,640
t just made everything faster just by upgrading. So I

684
00:32:38,640 --> 00:32:41,720
wouldn't doubt that there are some performance enhancements here too.

685
00:32:42,319 --> 00:32:44,720
But the one I'm the most excited about is starting

686
00:32:44,759 --> 00:32:48,640
services on demand. For example, I don't want my Azure

687
00:32:48,680 --> 00:32:51,200
functions to start every time. I mostly want to work

688
00:32:51,240 --> 00:32:53,880
on the website, so now I can figure the function

689
00:32:53,920 --> 00:32:57,160
apps to not start automatically. And instead when I started

690
00:32:57,200 --> 00:33:00,279
the app post, the website starts up and the other

691
00:33:00,319 --> 00:33:02,480
ones are stopped, and so I can just go push

692
00:33:02,559 --> 00:33:04,920
play if I need them. But in most cases I

693
00:33:05,039 --> 00:33:07,240
just I don't need those resources, and so it can

694
00:33:07,359 --> 00:33:10,359
work out really great. These are a lot of new

695
00:33:10,359 --> 00:33:14,480
things in dot net Aspire nine point one. But the

696
00:33:14,480 --> 00:33:16,799
cool part is, Yeah, the upgrade is just you know,

697
00:33:17,119 --> 00:33:21,920
upgrade and everything that you've used before. There's no breaking changes,

698
00:33:21,960 --> 00:33:25,400
I believe, and so the upgrade is just super simple,

699
00:33:25,839 --> 00:33:28,839
and if you happen on features that are really interesting

700
00:33:28,880 --> 00:33:31,200
to you, it can be really great.

701
00:33:31,759 --> 00:33:32,079
Speaker 2: Yeah.

702
00:33:32,160 --> 00:33:34,759
Speaker 3: I think the dashboard is a thing that hooks people. Yeah,

703
00:33:34,799 --> 00:33:36,799
because you're going to need to build one. So the

704
00:33:36,799 --> 00:33:39,400
fact that it just generated for you and then you

705
00:33:39,400 --> 00:33:43,000
can tweak it is a great hook besides all the

706
00:33:43,039 --> 00:33:43,960
other stuff.

707
00:33:44,480 --> 00:33:47,440
Speaker 4: And here's where my opinions probably differ from others opinions.

708
00:33:47,480 --> 00:33:49,680
But I would say that that dashboard is great for

709
00:33:50,839 --> 00:33:53,880
local development, but you probably want to use a different

710
00:33:53,960 --> 00:33:57,880
dashboard in production. That dashboard doesn't have any durable storage.

711
00:33:58,000 --> 00:34:00,000
There are plugins that allow you to get durable stores,

712
00:34:00,519 --> 00:34:04,200
but it's like I found an error that happened yesterday.

713
00:34:04,720 --> 00:34:06,559
It stores it in memory and that's already gone.

714
00:34:06,720 --> 00:34:07,200
Speaker 2: Oh.

715
00:34:07,240 --> 00:34:11,519
Speaker 4: It also collects all of the configuration details for all

716
00:34:11,559 --> 00:34:15,119
of your applications. And so if we deployed this and

717
00:34:15,199 --> 00:34:19,239
put it in production and accidentally exposed it publicly, then

718
00:34:19,360 --> 00:34:22,079
we've just exposed the entirety of the configuration of all

719
00:34:22,119 --> 00:34:23,400
of our application.

720
00:34:23,199 --> 00:34:25,760
Speaker 2: Right the black hats, thank you for your service.

721
00:34:26,400 --> 00:34:31,719
Speaker 4: Yes, But the cool part is you can use this

722
00:34:31,840 --> 00:34:34,519
dashboard as a standalone container. And so if you have

723
00:34:34,559 --> 00:34:38,480
a Python app, or I actually have a JavaScript front

724
00:34:38,519 --> 00:34:41,400
end to React app in my demo, I'm doing view,

725
00:34:41,719 --> 00:34:44,719
which then pipes all the data into open telemetry. And

726
00:34:44,760 --> 00:34:47,639
so a View front end and a Python back end

727
00:34:47,760 --> 00:34:51,800
using dot net Aspyrus dashboard without dot net running? Are

728
00:34:51,840 --> 00:34:55,800
you really cool? Hey?

729
00:34:55,880 --> 00:34:57,840
Speaker 1: Say where are you from anyway?

730
00:34:59,280 --> 00:35:02,000
Speaker 3: You know it's called dot net is fire. Yeah, yeah,

731
00:35:02,000 --> 00:35:03,559
I don't know what you think you're up to.

732
00:35:05,159 --> 00:35:07,679
Speaker 4: Right, Well, the cool part is it just becomes an

733
00:35:07,679 --> 00:35:08,719
open telemetry think.

734
00:35:08,920 --> 00:35:12,400
Speaker 1: So there's no Windows servers here anywhere, It's not, it's

735
00:35:12,519 --> 00:35:14,320
just dot net is all about it.

736
00:35:16,079 --> 00:35:18,760
Speaker 3: Like you can't if you're deploying any the cloud, you're

737
00:35:18,800 --> 00:35:21,760
still deploying on a Windows instance. It's you're literally throwing

738
00:35:21,800 --> 00:35:24,440
money away, right, Like if you're running modern dot net,

739
00:35:24,800 --> 00:35:27,760
it runs on a Linux instance and it's literally like

740
00:35:27,800 --> 00:35:29,079
a twenty five percent price cut.

741
00:35:29,159 --> 00:35:31,679
Speaker 1: Yeah. The point there was that there's still a large

742
00:35:31,719 --> 00:35:35,039
group of people who haven't looked in dot net in

743
00:35:35,119 --> 00:35:38,320
fifteen years because they think it's all about Windows. Yeah,

744
00:35:38,360 --> 00:35:41,360
and it's kind of stinks that that branding has stuck.

745
00:35:41,159 --> 00:35:42,960
Speaker 3: Well and it's a non trivial mom folks that are

746
00:35:43,000 --> 00:35:45,199
still on you know, four or five two, Like they're

747
00:35:45,360 --> 00:35:47,920
for a reason, They've got dependencies, They're not going to

748
00:35:47,960 --> 00:35:50,159
give up their web forms, Like it's just not that simple.

749
00:35:50,360 --> 00:35:51,400
Speaker 2: There's a lot of work done.

750
00:35:51,519 --> 00:35:54,639
Speaker 4: Yep, I agree. I have a dot net for it's

751
00:35:54,679 --> 00:35:57,960
now dot Net four seven app runs with Crystal Reports

752
00:35:57,960 --> 00:36:00,480
and Windows forms and it's like, yeah, that's not going anywhere.

753
00:36:00,679 --> 00:36:03,559
Speaker 2: Oh man, oh that hurts.

754
00:36:03,840 --> 00:36:06,800
Speaker 3: Yeah, no kidding, Like Crystal Reports. You said that with

755
00:36:06,840 --> 00:36:09,559
words out loud, like what the what the what?

756
00:36:09,719 --> 00:36:12,800
Speaker 1: I remember I remember being at a v bits and

757
00:36:12,840 --> 00:36:15,599
it was in the early days of Internet Information server

758
00:36:16,320 --> 00:36:18,639
and a guy from Crystal Reports came up to me

759
00:36:18,639 --> 00:36:21,840
and he said, Hey, we've got Crystal Reports running on

760
00:36:21,880 --> 00:36:25,039
the back end in iis isn't that awesome? And I'm like,

761
00:36:25,480 --> 00:36:27,480
oh my god, how much memory do you have to

762
00:36:27,559 --> 00:36:31,000
have to have that behemoth of an application running in

763
00:36:31,039 --> 00:36:34,199
the background, which, by the way, was apartment threaded, so

764
00:36:34,239 --> 00:36:35,880
you could only use it one at a time.

765
00:36:36,559 --> 00:36:39,639
Speaker 2: Oh my god, what a nightmare. Yeah.

766
00:36:39,679 --> 00:36:42,320
Speaker 4: I found a similar app where they were launching Excel

767
00:36:42,480 --> 00:36:47,159
from the web server and I'm like, yeah, I'm not

768
00:36:47,199 --> 00:36:47,960
sure if you get this.

769
00:36:48,119 --> 00:36:51,199
Speaker 2: It's just because you could, doesn't mean you should.

770
00:36:51,360 --> 00:36:53,639
Speaker 3: And then and then it would crash or fail to close,

771
00:36:53,679 --> 00:36:55,639
and so you'd end up with multiple instances of Excel

772
00:36:55,719 --> 00:36:57,760
on the machine. Yeah, and then you eventually write an

773
00:36:57,760 --> 00:37:01,000
Excel watcher that pokes in yeah to task manager and

774
00:37:01,079 --> 00:37:03,639
kills orphan a instance of Excel. Why do I know

775
00:37:03,719 --> 00:37:05,719
this stuff? Why is this stuff? Fill in my head?

776
00:37:05,800 --> 00:37:07,079
I remember I did that.

777
00:37:07,199 --> 00:37:10,440
Speaker 1: You know, I tried it, and you know it was possible,

778
00:37:10,440 --> 00:37:13,039
but nobody really understood the whole apartment threading thing.

779
00:37:13,239 --> 00:37:14,960
Speaker 2: Yeah, I'm sorry, I want to bring us back to

780
00:37:15,000 --> 00:37:15,599
the nineties.

781
00:37:15,639 --> 00:37:18,360
Speaker 4: But geez, And that's really cool. Is you set all

782
00:37:18,360 --> 00:37:20,599
that aside and you can run dot net inside of

783
00:37:20,639 --> 00:37:24,519
Linux containers in community hosting and it is just amazing.

784
00:37:24,840 --> 00:37:26,880
Dot Net has come a long way.

785
00:37:26,800 --> 00:37:27,679
Speaker 2: Certainly has well.

786
00:37:27,760 --> 00:37:30,119
Speaker 3: This sort of explains the spire, right, It's like, this

787
00:37:30,159 --> 00:37:32,679
is the language that once upon a time was for

788
00:37:32,719 --> 00:37:36,119
building client server apps, and then you know, evolved into

789
00:37:36,199 --> 00:37:39,599
web as well, and now it's cloudland, and so give

790
00:37:39,639 --> 00:37:41,480
us a set of defaults that are for cloud Land.

791
00:37:41,800 --> 00:37:44,760
Speaker 1: Should we take a moment to just praise Microsoft for

792
00:37:44,880 --> 00:37:48,800
making dot Net nine so much more performance crazy and

793
00:37:48,880 --> 00:37:53,719
memory less memory use. It's just ridiculous.

794
00:37:54,159 --> 00:37:56,000
Speaker 4: Dot Net six was that way as well. It was

795
00:37:56,079 --> 00:37:58,719
a major sure was a breakthrough performance boost. And it's

796
00:37:58,719 --> 00:38:01,480
really cool because upgrading from dot net three to one

797
00:38:01,559 --> 00:38:04,360
all the way up to dot Net nine is just

798
00:38:04,440 --> 00:38:08,360
really easy. You know, change the version number in the

799
00:38:08,360 --> 00:38:11,320
cs prog files, update new get packages, and you're there.

800
00:38:11,400 --> 00:38:13,719
Speaker 1: Yeah, it's that whole update new get packages thing that

801
00:38:13,840 --> 00:38:16,960
usually people have a problem with, only because some of

802
00:38:16,960 --> 00:38:19,960
those new get packages don't exist anymore. They don't work

803
00:38:20,000 --> 00:38:25,039
in dot net core or whatever. Yeah, do it nine rather, Yeah, Yeah.

804
00:38:25,159 --> 00:38:29,199
Speaker 4: Dot standard was an interesting dilemma. And yeah, now that

805
00:38:29,239 --> 00:38:31,599
we've set that aside too, yeah, it's just smooth.

806
00:38:31,320 --> 00:38:33,760
Speaker 3: In Well, it's a good reminder that dot Net standard

807
00:38:33,800 --> 00:38:34,400
wasn't for US.

808
00:38:34,440 --> 00:38:35,800
Speaker 2: It was actually for Microsoft.

809
00:38:35,920 --> 00:38:38,480
Speaker 3: Yeah right, it was Microsoft trying to get all of

810
00:38:38,519 --> 00:38:42,480
their internal versions of dot net aligned, and we may

811
00:38:42,480 --> 00:38:44,599
have been the beneficiaries of it, but once that alignment

812
00:38:44,639 --> 00:38:46,480
was done, they really didn't care about anymore.

813
00:38:46,480 --> 00:38:47,519
Speaker 4: It was no longer necessary.

814
00:38:47,599 --> 00:38:49,800
Speaker 2: Yeah, just wasn't the thing. And you know that.

815
00:38:49,840 --> 00:38:53,800
Speaker 3: It's also why xammal standard failed because they couldn't get

816
00:38:53,840 --> 00:38:56,239
all of those internal versions of Exammal aligned.

817
00:38:56,559 --> 00:39:00,360
Speaker 1: Wishful thinking, like running Excel in iis.

818
00:39:02,960 --> 00:39:03,480
Speaker 2: That's going to be.

819
00:39:03,480 --> 00:39:06,039
Speaker 3: Burned in like a norphan Excel instance on a server

820
00:39:06,280 --> 00:39:07,519
somewhere somewhere.

821
00:39:08,719 --> 00:39:09,119
Speaker 2: Wow.

822
00:39:09,800 --> 00:39:12,119
Speaker 3: Yeah, I'm just double checking the version numbers, and four

823
00:39:12,280 --> 00:39:17,840
eight one last updated August of twenty two, so it's

824
00:39:17,920 --> 00:39:21,800
two and a half years since that Windows only frame

825
00:39:22,039 --> 00:39:23,239
version was updated.

826
00:39:24,199 --> 00:39:24,400
Speaker 2: Yeah.

827
00:39:24,519 --> 00:39:26,079
Speaker 3: I feel for folks that have to use it, because

828
00:39:26,079 --> 00:39:27,559
there's folks who have to use it in the two

829
00:39:27,559 --> 00:39:30,039
ways about it, right, But there are I, meantime, living

830
00:39:30,039 --> 00:39:32,880
over here in dot net Nineland, where things are really.

831
00:39:32,639 --> 00:39:35,039
Speaker 2: Fast and well real.

832
00:39:34,880 --> 00:39:38,840
Speaker 1: Cloud friendly, I still have to write tools that work

833
00:39:38,920 --> 00:39:41,440
with Windows that only work with Windows every once in

834
00:39:41,480 --> 00:39:44,000
a while. And thank god the dotnat framework is there

835
00:39:44,039 --> 00:39:48,960
because damn yeah yeah, send keys.

836
00:39:49,559 --> 00:39:52,639
Speaker 2: I love send keys. Yeah, that's amazing what that can do.

837
00:39:53,000 --> 00:39:55,559
Speaker 4: I also love how diverse it is. You know, previously,

838
00:39:55,559 --> 00:39:57,559
when I wanted a really little thing, I would have

839
00:39:57,599 --> 00:39:59,760
to reach for nude, and now I can use minimal

840
00:39:59,800 --> 00:40:00,559
ap eyes for that.

841
00:40:01,199 --> 00:40:03,440
Speaker 3: Yeah yep, yeah, And you don't have to open studio.

842
00:40:03,480 --> 00:40:05,159
You really can do what you need to do inside

843
00:40:05,159 --> 00:40:07,159
of code if you want to, like or nope, pad

844
00:40:07,599 --> 00:40:12,320
we've stripped away the battleshipness if you don't value the

845
00:40:12,320 --> 00:40:15,199
battleship like I, studio is my happy place. But maybe

846
00:40:15,199 --> 00:40:17,599
it's just because I'm old. I just feel like that's

847
00:40:17,639 --> 00:40:20,000
the tool i'd want to point a beginner too, because

848
00:40:20,119 --> 00:40:22,760
it has everything in it already. You don't have to

849
00:40:22,840 --> 00:40:24,800
roll your own you don't have to figure that stuff out.

850
00:40:25,119 --> 00:40:28,840
The problem is it's intimidating. It's like a cockpit of

851
00:40:28,840 --> 00:40:31,079
a seven forty seven. Inside of there, everything's there, you're

852
00:40:31,119 --> 00:40:32,320
just afraid to touch any of it.

853
00:40:32,760 --> 00:40:34,599
Speaker 4: And you don't have to collect all the plugins. With

854
00:40:34,719 --> 00:40:38,320
vs code, it's like it's completely useful by itself.

855
00:40:38,360 --> 00:40:40,039
Speaker 2: You have to assemble a deb environment.

856
00:40:40,199 --> 00:40:42,280
Speaker 4: Yeah, but the moment that you start doing anything, really

857
00:40:42,360 --> 00:40:44,280
you want a collection of plugins that do all kinds

858
00:40:44,280 --> 00:40:45,079
of wonderful things.

859
00:40:45,440 --> 00:40:47,800
Speaker 3: It's exactly it. And for a beginner that's a challenge.

860
00:40:47,880 --> 00:40:49,280
Not that we haven't made it easier. There are good

861
00:40:49,280 --> 00:40:50,519
templates and things like that.

862
00:40:50,639 --> 00:40:53,280
Speaker 4: But and vus code's also pretty good at noticing, Hey,

863
00:40:53,280 --> 00:40:55,039
it looks like you're doing this. Is this the plug

864
00:40:55,039 --> 00:40:56,079
in that you want to help you with that?

865
00:40:56,400 --> 00:41:00,280
Speaker 1: So it's like Clippy, that's what you're saying.

866
00:41:00,360 --> 00:41:02,599
Speaker 3: This is clippy? Is that a code? And it wants

867
00:41:02,599 --> 00:41:04,119
to help you get a plug in that's going to

868
00:41:04,199 --> 00:41:08,760
make your life better. Weird, it's a weird time to

869
00:41:08,800 --> 00:41:11,400
be a software developer man, and then probably the conversations

870
00:41:11,400 --> 00:41:12,239
of my software.

871
00:41:12,320 --> 00:41:13,719
Speaker 2: But I have a digital duck.

872
00:41:14,320 --> 00:41:16,360
Speaker 1: It's a good time to be an old timer like

873
00:41:16,400 --> 00:41:19,679
me though, because in you guys, because we've lived through

874
00:41:19,719 --> 00:41:22,960
the whole progression of it and we felt the pain

875
00:41:23,039 --> 00:41:27,199
and we saw the problem areas, and we feel elated

876
00:41:27,280 --> 00:41:30,679
that I feel like I could do anything right now.

877
00:41:30,760 --> 00:41:33,440
It's like there's nothing, there's no challenge. Somebody could say hey,

878
00:41:33,480 --> 00:41:35,880
could you write? And I say, yes, hey could you possibly?

879
00:41:35,960 --> 00:41:36,760
Speaker 2: Yes? Yeah?

880
00:41:36,760 --> 00:41:39,760
Speaker 4: And I love it too because my stakeholders, my users

881
00:41:39,760 --> 00:41:42,639
are starting to get really creative here they are chatting

882
00:41:42,679 --> 00:41:45,440
with chat GPT and it's generating all kinds of stuff

883
00:41:45,440 --> 00:41:49,280
and they're like and now they're just thinking really big, Yeah, hey,

884
00:41:49,320 --> 00:41:52,840
can you create this thing that automatically does it? And yeah,

885
00:41:52,960 --> 00:41:55,199
I love getting to build really cool experiences like that.

886
00:41:55,440 --> 00:41:56,199
It's a lot of fun.

887
00:41:56,360 --> 00:41:59,559
Speaker 1: It's a lot of fun. It's like, yeah, it's a

888
00:41:59,599 --> 00:42:00,079
good time.

889
00:42:00,159 --> 00:42:00,840
Speaker 2: Yeah, really good time.

890
00:42:00,840 --> 00:42:02,360
Speaker 4: It's kind of open their creativity.

891
00:42:02,679 --> 00:42:05,840
Speaker 1: So what haven't we talked about that's lighting your fire

892
00:42:05,880 --> 00:42:06,440
with Aspire?

893
00:42:06,519 --> 00:42:09,360
Speaker 3: What are the rough bits of Aspire? Like what do

894
00:42:09,440 --> 00:42:11,119
you still have to sit down and fight with to

895
00:42:11,320 --> 00:42:12,000
be successful?

896
00:42:12,000 --> 00:42:15,000
Speaker 4: So that Aspire has some conventions that allow you to

897
00:42:15,239 --> 00:42:19,559
automatically rig up dependencies, and sometimes those conventions can be

898
00:42:19,679 --> 00:42:22,239
a little bit weird, especially as I'm starting to talk

899
00:42:22,239 --> 00:42:26,000
about deployment. Deployment to Azure container apps is really really

900
00:42:26,039 --> 00:42:29,760
well baked. Deployment to Kubernetes is a little bit less baked,

901
00:42:29,760 --> 00:42:34,079
but still doing pretty good. But when I start getting

902
00:42:34,119 --> 00:42:40,480
outside of just those standard to Azure deployment mechanisms, then

903
00:42:40,559 --> 00:42:43,639
it's like, well, so how do I want to deploy it?

904
00:42:44,280 --> 00:42:48,320
And as I'm deploying, how do I match the conventions

905
00:42:48,360 --> 00:42:52,480
that dot not Aspire Local dashboard was doing for me automatically.

906
00:42:52,880 --> 00:42:56,079
It's like, well, now I need to form this environment

907
00:42:56,199 --> 00:42:59,840
variable using exactly the syntax to be able to get

908
00:42:59,840 --> 00:43:03,559
it to inject the dependencies just so. And so it

909
00:43:03,559 --> 00:43:06,599
feels like deployment is that sharp edge still sure?

910
00:43:07,000 --> 00:43:09,719
Speaker 3: And what's the strongest deployment path right now? Is it's

911
00:43:10,199 --> 00:43:13,920
containers more than Kubernetes. Is like az your container service, or.

912
00:43:14,039 --> 00:43:17,880
Speaker 4: It's Azure Container apps, which is Azure's abstraction over the

913
00:43:17,880 --> 00:43:18,840
top of Kupernetes.

914
00:43:18,960 --> 00:43:19,079
Speaker 2: Right.

915
00:43:19,119 --> 00:43:22,000
Speaker 4: You know, apparently Kupernetes yembo files are too complicated, so

916
00:43:22,119 --> 00:43:23,199
let's all invent our own.

917
00:43:23,360 --> 00:43:26,920
Speaker 3: Lots of people struggle with them, rob like, let's be fair.

918
00:43:27,519 --> 00:43:30,480
Speaker 4: Yeah, And fargate is interesting in this way as well

919
00:43:30,599 --> 00:43:33,480
on AWS, where it's kind of an abstraction over top

920
00:43:33,519 --> 00:43:36,960
of Kupernetes. Right, but as your container apps is Microsoft

921
00:43:37,000 --> 00:43:40,360
substraction over Kupernetes. And so that's their very very well

922
00:43:40,400 --> 00:43:40,920
paved path.

923
00:43:41,039 --> 00:43:43,400
Speaker 3: Well, and I do appreciate the idea of, hey, you

924
00:43:43,480 --> 00:43:46,039
probably don't need anything exotic in containers, so let me

925
00:43:46,079 --> 00:43:49,199
just give you a default set of configuration, which if

926
00:43:49,199 --> 00:43:51,360
you end up needing something exotic, you can haul all

927
00:43:51,440 --> 00:43:55,280
this back out known it yourself, but since you probably don't,

928
00:43:55,360 --> 00:43:58,639
you're in the eighty ninety percent case that defaults are

929
00:43:58,639 --> 00:43:59,480
going to be fine for you.

930
00:43:59,679 --> 00:44:03,920
Speaker 4: Yeah, And the cool part is it will automatically package

931
00:44:04,000 --> 00:44:08,119
up my dot net projects into containers and automatically push

932
00:44:08,199 --> 00:44:12,719
them to Azure container registry and rig up other best practices,

933
00:44:12,800 --> 00:44:16,880
like it'll put connection strings into key vault and day.

934
00:44:17,280 --> 00:44:19,679
It does all the best practices, which is great, right

935
00:44:19,760 --> 00:44:22,920
for you if you subscribe to that as your deployment mechanism.

936
00:44:23,199 --> 00:44:25,039
Speaker 3: I love key vault, Yeah, and it's a good thing

937
00:44:25,079 --> 00:44:27,440
to use, but it's also not trivial steps and it's repetitive.

938
00:44:27,480 --> 00:44:29,239
So the fact that the tool will just do it,

939
00:44:29,639 --> 00:44:32,079
presume you're using qu vault, give me the credentials off

940
00:44:32,079 --> 00:44:33,480
we go is good.

941
00:44:33,639 --> 00:44:33,880
Speaker 2: Yeah.

942
00:44:34,039 --> 00:44:36,800
Speaker 3: Just again, it's that pitt success thing that Rob mentioned

943
00:44:36,880 --> 00:44:38,840
up front that we've never used that term before, but

944
00:44:38,920 --> 00:44:41,119
you know, I'm going to let you own it today, Rob.

945
00:44:41,239 --> 00:44:44,159
There you Yeah, just doing all the right things. That

946
00:44:44,320 --> 00:44:46,159
to me is what really gets me excited about a

947
00:44:46,199 --> 00:44:49,000
spire is like, the right way to deal with telemetry

948
00:44:49,079 --> 00:44:50,400
is this way, and the right way to deal with

949
00:44:50,440 --> 00:44:52,840
secrets is this way and the right we'll do cashing,

950
00:44:52,840 --> 00:44:54,639
and you still have choices like which cash do you

951
00:44:54,719 --> 00:44:57,360
want to use? You like reddits final, let's use reddis

952
00:44:57,360 --> 00:44:59,159
you want to last a gal to use elastic like

953
00:44:59,280 --> 00:45:00,679
it's just youuration setting.

954
00:45:00,719 --> 00:45:05,960
Speaker 1: Are there architectures where aspired doesn't make that much sense.

955
00:45:05,800 --> 00:45:08,440
Speaker 4: If you already have a whole lot of opinions about

956
00:45:08,440 --> 00:45:11,360
how you want to do logging, metrics and tracing, you

957
00:45:11,400 --> 00:45:14,159
already have a whole lot of opinions about how you

958
00:45:14,199 --> 00:45:17,440
want to do deployment. If you have a large monolith

959
00:45:17,679 --> 00:45:20,400
that you know really doesn't have a whole lot of

960
00:45:20,599 --> 00:45:23,840
web request dependencies, yeah, like a single server, then it

961
00:45:23,880 --> 00:45:26,760
may not make sense because well, you don't need the

962
00:45:26,800 --> 00:45:29,519
service discovery, you don't have services. You don't need the

963
00:45:29,559 --> 00:45:32,480
configuration or deployment piece because you already have those solved.

964
00:45:32,800 --> 00:45:35,039
So you really don't need a dashboard that helps you

965
00:45:35,079 --> 00:45:37,199
aggregate things because you don't have pieces.

966
00:45:37,360 --> 00:45:39,760
Speaker 1: I'm thinking of a Blazer server web app where you

967
00:45:39,800 --> 00:45:43,000
can scale out just by adding more servers and it's

968
00:45:43,039 --> 00:45:48,239
completely invisible to you, and you know the servers, the

969
00:45:48,599 --> 00:45:51,039
users have affinity for one server or another. There really

970
00:45:51,079 --> 00:45:55,440
isn't much that you need to do. And like you said,

971
00:45:55,440 --> 00:45:59,079
there's no service layer, so yeah, you know, everything's sort

972
00:45:59,079 --> 00:46:01,280
of baked into this one thing. I guess that's the

973
00:46:01,360 --> 00:46:02,760
thing I'm thinking about.

974
00:46:03,000 --> 00:46:04,719
Speaker 4: Yeah, if you already have a whole lot of opinions,

975
00:46:04,760 --> 00:46:08,440
you've already climbed these hills, then maybe it isn't necessary.

976
00:46:08,079 --> 00:46:10,280
Speaker 3: Right, Yeah, And by that token is just more of

977
00:46:10,280 --> 00:46:13,039
a greenfield tool than a brownfield.

978
00:46:12,559 --> 00:46:14,840
Speaker 4: To I would argue that it's not. It's more of

979
00:46:14,880 --> 00:46:19,239
a web tool than a greenfield or brownfield. I've added

980
00:46:19,280 --> 00:46:21,719
it to a bunch of brownfield projects. I've also used

981
00:46:21,760 --> 00:46:24,599
it in a bunch of greenfield projects, and it's just

982
00:46:24,639 --> 00:46:27,360
really nice to be able to discover all the things

983
00:46:27,400 --> 00:46:30,440
you know. In visual studio, you write click on the

984
00:46:30,480 --> 00:46:33,719
solution manager and you say configure startup projects, and that

985
00:46:33,840 --> 00:46:37,800
dialogue is nasty. Just having just being able to say

986
00:46:37,800 --> 00:46:40,360
goodbye to that dialogue is worth the weight in gold.

987
00:46:40,480 --> 00:46:41,840
Speaker 2: Yeah right, yep, I agree.

988
00:46:41,920 --> 00:46:44,039
Speaker 4: If you use dot net Aspire for nothing else than

989
00:46:44,079 --> 00:46:47,039
being able to launch all your projects simultaneously, it is

990
00:46:47,079 --> 00:46:47,440
worth it.

991
00:46:47,760 --> 00:46:49,599
Speaker 2: Yeah, yep, that's interesting, it's good.

992
00:46:49,599 --> 00:46:53,000
Speaker 3: It's funny. The plumbing pain. We still have building building

993
00:46:53,079 --> 00:46:54,519
software in studios.

994
00:46:54,079 --> 00:47:00,360
Speaker 1: So multiple projects, multiple machines, clients, servers, services. That's where

995
00:47:01,159 --> 00:47:02,760
Aspire is really going to help you.

996
00:47:03,280 --> 00:47:07,199
Speaker 4: Yeah, and container orchestration like as part of launching this solution,

997
00:47:07,320 --> 00:47:09,880
I also want to launch all of those containers for

998
00:47:10,000 --> 00:47:12,199
data stores or external services or whatever.

999
00:47:12,280 --> 00:47:13,599
Speaker 2: What does it do to Kubernetes.

1000
00:47:13,679 --> 00:47:17,599
Speaker 4: The cool part is there's a project called Aspirate Aspirate

1001
00:47:17,800 --> 00:47:20,079
I'm not quite sure how to pronounce it that allows

1002
00:47:20,119 --> 00:47:24,679
you to connect dot Net Aspire deployment into Kubernetes. And

1003
00:47:24,760 --> 00:47:27,639
it has two different modes. The one is it will

1004
00:47:27,679 --> 00:47:30,880
do the same deployment like you do to Azure container apps,

1005
00:47:30,920 --> 00:47:33,920
where it will automatically do all the things. And the

1006
00:47:34,000 --> 00:47:37,519
other mode is where it scaffolds out the Kubernetes bits

1007
00:47:37,559 --> 00:47:40,800
that you need, and it doesn't scaffold out all the dependencies.

1008
00:47:40,880 --> 00:47:43,519
You know, it won't spin up your Rettis cluster or

1009
00:47:43,880 --> 00:47:47,159
your postcrests or sql server database, but it will get

1010
00:47:47,199 --> 00:47:49,159
all of your dot Net projects into place in a

1011
00:47:49,199 --> 00:47:52,480
really elegant way. So I really like to use Aspirate

1012
00:47:52,559 --> 00:47:57,159
to scaffold out my deployments and services, and then I

1013
00:47:57,199 --> 00:48:01,199
already have ingress and secrets and can fig maps associated

1014
00:48:01,239 --> 00:48:03,760
with other places then when I get to Kupernetes, I

1015
00:48:03,800 --> 00:48:06,960
just keep ctl to apply and I've got my all

1016
00:48:06,960 --> 00:48:10,320
of my services that dot net Aspire was orchestrating locally

1017
00:48:10,920 --> 00:48:13,159
orchestrated by Kupernetes in production.

1018
00:48:12,960 --> 00:48:15,480
Speaker 1: So it snugges up to Kubernetes nicely when you already

1019
00:48:15,519 --> 00:48:18,679
have that infrastructure. But if you don't have a Kubernantes infrastructure,

1020
00:48:19,000 --> 00:48:22,320
does it make sense to you know, Okay, we're going

1021
00:48:22,400 --> 00:48:25,519
to use Aspire, but we're also going to use Kubernetest.

1022
00:48:25,559 --> 00:48:26,400
Speaker 2: Does that make sense?

1023
00:48:26,559 --> 00:48:30,400
Speaker 4: They are super correlated. But the cool part is typically

1024
00:48:30,400 --> 00:48:33,079
when you're reaching for a whole lot of micro services,

1025
00:48:33,159 --> 00:48:36,320
you know, if you embrace that micro service architecture, then

1026
00:48:36,400 --> 00:48:39,760
you need the ability to host all of those pieces. Sure,

1027
00:48:39,760 --> 00:48:43,079
and if you're starting to look at I'll use Azure

1028
00:48:43,199 --> 00:48:46,719
as my cloud of choice. If you're looking at your cloud, okay,

1029
00:48:46,719 --> 00:48:49,360
and Azure, I could run each of those micro services

1030
00:48:49,400 --> 00:48:52,760
as an Azure web app. But now I have a

1031
00:48:52,800 --> 00:48:55,840
whole lot of web apps, right, it would be easier

1032
00:48:55,880 --> 00:48:57,960
for me to put these in a spot where it

1033
00:48:58,000 --> 00:49:00,440
can handle a lot of micro services, right. And so

1034
00:49:00,519 --> 00:49:03,760
that's where Kupernetes was really built to host micro services.

1035
00:49:03,840 --> 00:49:05,480
So dot net aspire.

1036
00:49:05,280 --> 00:49:07,360
Speaker 2: But if you have a container service.

1037
00:49:07,199 --> 00:49:10,880
Speaker 4: Yeah, Azu container service is a simpler paradigm there. Yeah,

1038
00:49:10,920 --> 00:49:15,280
but dot net Aspire and Kupernetes then kind of solve

1039
00:49:15,679 --> 00:49:18,159
two sides of the same coin, where dot net Aspire

1040
00:49:18,239 --> 00:49:21,800
solves it really nicely in local development and Kupernetes solves

1041
00:49:21,840 --> 00:49:23,039
it really nicely in production.

1042
00:49:23,280 --> 00:49:24,599
Speaker 2: Okay, that's well.

1043
00:49:24,880 --> 00:49:28,599
Speaker 3: If you have the amens who want to administer Kubernetes,

1044
00:49:28,920 --> 00:49:31,679
yes you are not that automated. Folks need to needs

1045
00:49:31,719 --> 00:49:33,719
care and feeding. Like if you're going down that path,

1046
00:49:33,760 --> 00:49:35,920
other way, I stay in the Azure Container apps land.

1047
00:49:36,760 --> 00:49:39,960
But if they need more dynamic control I want They've

1048
00:49:39,960 --> 00:49:42,079
got other ways they want to do things. You got

1049
00:49:42,079 --> 00:49:45,800
somebody who knows their way around Kubernetes in ops bhind Yeah.

1050
00:49:46,000 --> 00:49:46,280
Speaker 2: Yeah.

1051
00:49:46,360 --> 00:49:48,880
Speaker 4: The people who administer Kupernetes and the people who use

1052
00:49:48,960 --> 00:49:51,079
Kupernetes are usually different people.

1053
00:49:51,000 --> 00:49:53,840
Speaker 3: And you need both, right, Like that's that you get it.

1054
00:49:53,880 --> 00:49:56,199
I get a dev team all jacked up to use Kubernetes,

1055
00:49:56,239 --> 00:49:57,880
and it's like, so you guys going to stay here

1056
00:49:59,519 --> 00:50:01,840
and offer rate this because it doesn't just offerate on

1057
00:50:01,880 --> 00:50:03,719
its own, like it needs some care and feeding.

1058
00:50:04,199 --> 00:50:07,360
Speaker 4: Azri Kupernetti service does a pretty good job of keeping

1059
00:50:07,400 --> 00:50:11,199
track of it. For example, upgrading Kupernettes versions in Azure

1060
00:50:11,320 --> 00:50:14,199
is just super simple. I just picked the new version

1061
00:50:14,239 --> 00:50:17,039
from the drop down right. Doing that by hand is

1062
00:50:17,199 --> 00:50:20,800
way hard. So you don't need a dedicated ops team

1063
00:50:20,840 --> 00:50:23,480
to manage Kupernettes in Azure, but it helps.

1064
00:50:24,079 --> 00:50:26,480
Speaker 3: If you're using Azure Cubineti service, you're not running your

1065
00:50:26,519 --> 00:50:30,480
own Kubernetess instance switch and you know, folks go down

1066
00:50:30,519 --> 00:50:32,599
that path. I don't know why, but they do.

1067
00:50:32,760 --> 00:50:34,679
Speaker 4: And there are definitely reasons for that. But if you're

1068
00:50:34,679 --> 00:50:38,840
getting started with Kupernettes, then my first instruction is don't

1069
00:50:38,880 --> 00:50:41,639
install Kupernettes. Go to your cloud and click that create

1070
00:50:41,679 --> 00:50:42,679
a Kupernettes button.

1071
00:50:42,800 --> 00:50:46,199
Speaker 2: Yes, the first rule of Kubernetes. Don't install Kubernetes.

1072
00:50:47,400 --> 00:50:49,880
Speaker 3: Now, have you done the path of like from Azure

1073
00:50:49,920 --> 00:50:52,719
Container Apps to Azure Community Kuberneti Service.

1074
00:50:53,039 --> 00:50:55,880
Speaker 4: I actually got into Kupernettes before Azure Container Apps was

1075
00:50:55,920 --> 00:50:58,239
a thing, right, and so I kind of look at

1076
00:50:58,280 --> 00:51:01,039
Azure Container Apps as like the train wheels to the

1077
00:51:01,079 --> 00:51:03,559
gateway drug to get you to Kupernetes. Yeah, and I'm like,

1078
00:51:03,599 --> 00:51:07,480
I'm already at Kupernettes. I don't really need to step backwards.

1079
00:51:07,599 --> 00:51:09,119
Speaker 2: Yeah, I've just heard.

1080
00:51:09,199 --> 00:51:11,519
Speaker 3: It's not that easy to move between these things, Like,

1081
00:51:11,559 --> 00:51:14,159
it's not a trivial thing to pick up and shift over.

1082
00:51:14,159 --> 00:51:15,679
There's no butt that says, hey, I want to run

1083
00:51:15,679 --> 00:51:17,199
this in AKS now, please.

1084
00:51:17,119 --> 00:51:20,239
Speaker 4: Right, the config files are significantly different. Yeah, if you

1085
00:51:20,320 --> 00:51:23,039
understand Kupernetes, you can look at the Azure Container Apps

1086
00:51:23,079 --> 00:51:26,400
Gammo files and kind of see the Kupernetes bits kind

1087
00:51:26,400 --> 00:51:29,480
of starting to come through. But yeah, there's a whole

1088
00:51:29,480 --> 00:51:31,880
lot more concepts in kupernettes that you don't see in

1089
00:51:31,920 --> 00:51:36,079
Azure container apps. For example, Kupernettes has a difference between

1090
00:51:36,079 --> 00:51:39,280
services and pods, and Azure Container apps kind of paves

1091
00:51:39,280 --> 00:51:40,599
over that to make them one thing.

1092
00:51:40,760 --> 00:51:41,400
Speaker 2: Oh yambo.

1093
00:51:42,599 --> 00:51:45,159
Speaker 1: Yeah, yeah, so much hammal, so much ammal.

1094
00:51:45,440 --> 00:51:49,280
Speaker 2: All right, there is asure Migrate apparently for doing this.

1095
00:51:49,480 --> 00:51:51,920
Speaker 4: But yeah, yeah, it's not impossible. And the cool part

1096
00:51:52,000 --> 00:51:54,880
is that your dot net projects probably don't change at

1097
00:51:54,920 --> 00:51:57,719
all when you move from Azure Container apps to Azrikruperneti service.

1098
00:51:58,039 --> 00:52:01,800
It's just all of the DEVA and ops things under

1099
00:52:01,840 --> 00:52:02,159
the hood.

1100
00:52:02,239 --> 00:52:04,679
Speaker 3: Yeah, that's what I figured. It's just you know, we

1101
00:52:05,000 --> 00:52:07,280
also keep offering this whole. You can start here and

1102
00:52:07,320 --> 00:52:10,199
move there. But it's question is how hard is the move.

1103
00:52:10,239 --> 00:52:12,320
Speaker 4: And if you're building all these things with Polumi or

1104
00:52:12,400 --> 00:52:16,760
Terraform or even Bicep, then you're rebuilding a.

1105
00:52:16,719 --> 00:52:18,199
Speaker 2: Bunch yeah right now.

1106
00:52:18,519 --> 00:52:22,039
Speaker 3: And we've done shows before on Bicep and Polumine and

1107
00:52:22,920 --> 00:52:23,679
even Terrorform.

1108
00:52:24,119 --> 00:52:25,079
Speaker 2: Do you have a preference?

1109
00:52:25,320 --> 00:52:28,800
Speaker 4: I really like Terraform, a project that I'm working on,

1110
00:52:28,880 --> 00:52:33,119
has a whole lot of platform engineering things built up

1111
00:52:33,119 --> 00:52:35,199
in Terraform, and so that was the one that they

1112
00:52:35,199 --> 00:52:38,559
handed us. I like that Terraform now is starting to

1113
00:52:38,599 --> 00:52:42,440
embrace other programming languages. CDK is the project that allows

1114
00:52:42,480 --> 00:52:45,960
you to start writing Terraform in other programming languages like

1115
00:52:46,280 --> 00:52:49,440
c Sharp or JavaScript or other things. And that was

1116
00:52:49,480 --> 00:52:51,400
kind of the big draw of Polumi is to be

1117
00:52:51,440 --> 00:52:55,199
able to get this outside of Terraform into real languages.

1118
00:52:55,440 --> 00:52:55,599
Speaker 2: Right.

1119
00:52:55,760 --> 00:52:57,960
Speaker 4: Bicep is interesting, but it's Azure only and.

1120
00:52:58,000 --> 00:53:00,199
Speaker 2: In the end, it's just generating arm files under the hood.

1121
00:53:00,280 --> 00:53:04,000
Speaker 4: And your Terraform or Pulumi files won't go between clouds automatically.

1122
00:53:04,039 --> 00:53:08,679
You know, Amazon's content is different than Azure's content, but

1123
00:53:08,760 --> 00:53:11,360
having a single language across all of the clouds is

1124
00:53:11,440 --> 00:53:14,800
really nice. So yeah, I've really embraced Terrorform.

1125
00:53:14,519 --> 00:53:18,000
Speaker 3: Okay, Yeah, and it feels like Polumi pressed Terraform to

1126
00:53:18,000 --> 00:53:19,800
do a better job because Tariform was there first, oh

1127
00:53:19,800 --> 00:53:21,519
of course. And it's never been window centric. I mean,

1128
00:53:21,519 --> 00:53:23,400
the biggest complaint I've ever heard from Terraform from an

1129
00:53:23,440 --> 00:53:27,480
Azure perspective is that they're behind on new Azure features

1130
00:53:27,480 --> 00:53:29,280
that if you're in Terraform, you don't get access those

1131
00:53:29,280 --> 00:53:29,920
feature right away.

1132
00:53:29,960 --> 00:53:32,599
Speaker 2: Takes time for their interface to catch up.

1133
00:53:32,760 --> 00:53:35,039
Speaker 4: Right, And that's unfortunate. But if you're not on the

1134
00:53:35,039 --> 00:53:38,000
bleeding edge of Azure, then you're not really bothered by that.

1135
00:53:38,400 --> 00:53:40,800
Speaker 1: Yeah, And there are two different things, right, isn't Polumi

1136
00:53:40,960 --> 00:53:44,320
like a c Sharp based and Terraform is PowerShell based

1137
00:53:44,400 --> 00:53:45,199
or something like that.

1138
00:53:45,360 --> 00:53:49,159
Speaker 4: Terraform has HCl files, which if you squint real hard

1139
00:53:49,199 --> 00:53:52,679
you can see JSON or graph ql, and by comparison,

1140
00:53:52,760 --> 00:53:55,320
Polumi is in Typescript or c sharp or you know

1141
00:53:55,360 --> 00:53:57,440
any language right, right, And so at the end of

1142
00:53:57,480 --> 00:54:00,559
the day, you build these files defining all the configuration

1143
00:54:00,679 --> 00:54:02,119
that you want, and so you know, do you have

1144
00:54:02,159 --> 00:54:05,320
semi colons and curly braces. That's kind of the big

1145
00:54:05,320 --> 00:54:07,840
difference here and then you run on firm command line.

1146
00:54:07,960 --> 00:54:10,119
Speaker 1: Eight yamil in ein' yamil. That's good enough for me.

1147
00:54:10,559 --> 00:54:12,000
Speaker 2: Uh, Robs, the.

1148
00:54:12,400 --> 00:54:15,880
Speaker 3: I see more BICEP folks from the men side of

1149
00:54:16,079 --> 00:54:19,679
DevOps more than the dev side of DevOps, where I

1150
00:54:19,679 --> 00:54:22,559
think Pulumi was very much a dev centric DevOps tool,

1151
00:54:22,719 --> 00:54:26,840
And yeah, Terrorform certainly was, but was embraced by Mode. Again,

1152
00:54:26,920 --> 00:54:29,920
Terraform has the avengage of being the oldest and the

1153
00:54:30,000 --> 00:54:32,920
large largest diversity, and it just felt like they fell

1154
00:54:32,960 --> 00:54:36,559
behind and it was innovation spots. But with CDK, Terraform

1155
00:54:36,559 --> 00:54:39,599
seems to be there, like you get your biggest pool.

1156
00:54:39,920 --> 00:54:44,920
You're definitely platform agnostic, like it's it's a really strong choice, and.

1157
00:54:44,920 --> 00:54:47,639
Speaker 4: You have access to all the Terraform providers and modules

1158
00:54:47,639 --> 00:54:50,760
that you always had with Polumi. Yeah, you kind of

1159
00:54:50,800 --> 00:54:53,199
had to make sure that they got them too.

1160
00:54:53,400 --> 00:54:55,920
Speaker 1: Yeah, you're starting over, rob, Is there anything we missed,

1161
00:54:56,280 --> 00:54:58,519
anything that you want to mention before we go?

1162
00:54:58,760 --> 00:55:00,920
Speaker 4: What's really cool at dot net as is that it

1163
00:55:00,960 --> 00:55:03,320
gives you the chance to do as much or as

1164
00:55:03,320 --> 00:55:05,719
little with it as you want. And so whether you're

1165
00:55:05,719 --> 00:55:08,239
coming at it from a greenfield or a brown field, perspective.

1166
00:55:08,559 --> 00:55:11,639
I think dot net Aspire has really intriguing options for you.

1167
00:55:11,960 --> 00:55:14,079
It's definitely worth kicking the tires there.

1168
00:55:14,079 --> 00:55:17,320
Speaker 1: Definitely, Rob Richison, thank you very much. It's a pleasure

1169
00:55:17,400 --> 00:55:19,239
catching up with you again on this show. It's been

1170
00:55:19,239 --> 00:55:22,039
far too long and I hope it's not too long

1171
00:55:22,119 --> 00:55:22,960
before the next time.

1172
00:55:23,079 --> 00:55:24,880
Speaker 4: Yeah, I can't wait to do it again. It's great

1173
00:55:24,880 --> 00:55:25,480
catching up with.

1174
00:55:25,480 --> 00:55:26,800
Speaker 2: Kill you too. Thanks Matt.

1175
00:55:26,840 --> 00:55:28,880
Speaker 1: All right, and we'll talk to you later on dot

1176
00:55:28,920 --> 00:55:52,079
net Rocks. Dot net Rocks is brought to you by

1177
00:55:52,159 --> 00:55:56,840
Franklin's Net and produced by Pop Studios, a full service audio,

1178
00:55:56,960 --> 00:56:01,400
video and post production facility located physically in New London, Connecticut,

1179
00:56:01,639 --> 00:56:06,440
and of course in the cloud online at pwop dot com.

1180
00:56:06,639 --> 00:56:08,800
Visit our website at d O T N E t

1181
00:56:09,000 --> 00:56:13,039
R O c k S dot com for RSS feeds, downloads,

1182
00:56:13,199 --> 00:56:16,880
mobile apps, comments, and access to the full archives going

1183
00:56:16,920 --> 00:56:20,280
back to show number one, recorded in September two thousand

1184
00:56:20,320 --> 00:56:22,960
and two. And make sure you check out our sponsors.

1185
00:56:23,119 --> 00:56:26,159
They keep us in business. Now go write some code.

1186
00:56:26,480 --> 00:56:30,000
Speaker 2: See you next time. You got jam Vans

1187
00:56:32,039 --> 00:56:32,079
Speaker 4: And

