WEBVTT

1
00:00:01.080 --> 00:00:04.799
How'd you like to listen to dot
net rocks with no ads? Easy?

2
00:00:05.360 --> 00:00:09.480
Become a patron for just five dollars
a month. You get access to a

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

4
00:00:14.279 --> 00:00:18.440
we'll get you that and a special
dot net Rocks patron mug. Sign

5
00:00:18.519 --> 00:00:35.320
up now at Patreon dot dot NetRocks
dot com. Hey, welcome back to

6
00:00:35.320 --> 00:00:38.880
dot net rocks. I'm Carl Franklin
and I'matechard Campbell, and we are in

7
00:00:38.920 --> 00:00:44.200
our respective hovels. Here me on
the East coast of North America. You

8
00:00:44.240 --> 00:00:48.240
on the West coast of North America. Yep, both experiencing some weather.

9
00:00:48.520 --> 00:00:51.240
Oh yeah, I mean it's warmer
here, right. There's a little bit

10
00:00:51.240 --> 00:00:54.000
of snow on the hilltops, which
is where it should be, but just

11
00:00:54.039 --> 00:00:57.640
a bit stormy. But you're right
on the ocean. This is the trade,

12
00:00:57.759 --> 00:01:03.920
right, So we're recording this ring
what is really being hyped up as

13
00:01:03.960 --> 00:01:10.280
like the worst storm to ever hit
America ever? Really? Yeah, because

14
00:01:10.280 --> 00:01:15.120
it's big, Yes, because it's
big and tornadoes and like there's multiple fronts

15
00:01:15.159 --> 00:01:19.159
and multiple things happening up here in
the East coast. We're going to get

16
00:01:19.280 --> 00:01:26.239
rain and strong winds with hurricane watches. So you know, if it was

17
00:01:26.319 --> 00:01:29.599
colder, it would be a nor'easter, right, And I guess it's still

18
00:01:29.599 --> 00:01:32.879
a nor Easter because it's coming out
of the northeast. Yeah, nor eastern.

19
00:01:32.959 --> 00:01:34.920
Typically you got the warm jet stream
coming up from the south, the

20
00:01:34.959 --> 00:01:40.400
southwest, and you got the Arctic
blast coming over the Great Lakes and they

21
00:01:40.480 --> 00:01:47.200
kind of join up and turn into
Snowmageddon. But it's no snow this time.

22
00:01:47.280 --> 00:01:49.879
Well, very little, I guess, but where I am. But

23
00:01:51.040 --> 00:01:56.280
anyway, so we're we're hunkering down
for a good show here, and thank

24
00:01:56.319 --> 00:02:00.799
god the propane tank is full and
the generators working. Yeah, I stalk

25
00:02:00.879 --> 00:02:05.079
the wood in case we lose the
electrical heat, although heating on wood is

26
00:02:05.159 --> 00:02:07.560
pleasant, you know. But you
know what though, if you lose power,

27
00:02:07.879 --> 00:02:12.800
Yeah, what would be better then? To, you know, pull

28
00:02:12.800 --> 00:02:16.719
out your battery powered phone or whatever, plug in a charger and listen to

29
00:02:16.759 --> 00:02:21.919
some old dot it rock shows there
what would be better? Okay, maybe

30
00:02:22.000 --> 00:02:24.159
drinking yourself silly might be better,
but I can think of a couple other

31
00:02:24.199 --> 00:02:30.280
things. You know, you can
do both. That's true. Hey,

32
00:02:30.400 --> 00:02:34.479
David Fowler is here. We're going
to be talking about dot net Aspire,

33
00:02:34.560 --> 00:02:46.400
but first let's roll crazy music for
better no framework awesome. What do you

34
00:02:46.400 --> 00:02:52.159
got? This being showed eighteen hundred
and eighty one, which is just unbelievable,

35
00:02:52.199 --> 00:02:57.439
isn't it? M palindrome? Yeah
exactly. Yeah, I noticed that

36
00:02:57.759 --> 00:03:04.199
the last day of twenty three was
one two three one two three one two

37
00:03:04.240 --> 00:03:07.680
three yes, yeah, two three
one two three one two three yeah.

38
00:03:08.240 --> 00:03:14.120
All right, So it's eighteen eighty
one dot pop dot me and that'll bring

39
00:03:14.199 --> 00:03:21.240
you to leftover Salad dot com to
some cartoon versions of personifications of your favorite

40
00:03:21.240 --> 00:03:24.680
programming languages, and I just it
just made me crack up. The first

41
00:03:24.719 --> 00:03:30.240
one, Python is a hipster smoking
a cigar. He's got tattoos and holding

42
00:03:30.319 --> 00:03:37.599
a coffee cup, and he says, my formatting is my syntax. Boomer.

43
00:03:38.159 --> 00:03:39.759
No, you didn't say boomer,
but I can just I can just

44
00:03:39.879 --> 00:03:46.319
see you can hear it. Yeah, So I asked you both, David

45
00:03:46.400 --> 00:03:49.280
and Richard, to take a look
and tell me your favorite ones. What's

46
00:03:49.319 --> 00:03:52.840
your favorite one? Richard? Oh? Well, see Sharp, obviously I

47
00:03:52.879 --> 00:03:58.800
have a daughter just like that.
Yeah, C sharp is I am nothing

48
00:03:58.960 --> 00:04:02.719
like my father, and she looks
C and C plus plus she looks uh

49
00:04:03.080 --> 00:04:08.599
off the father. Yeah. So
the right right above her is Sea,

50
00:04:09.120 --> 00:04:12.840
which is an old guy with a
big gray beard and a balding head.

51
00:04:13.240 --> 00:04:16.480
If you're not allocating memory, you're
not living. And then C plus plus

52
00:04:16.600 --> 00:04:19.879
right below it is the same guy, same caption, except now he has

53
00:04:19.920 --> 00:04:26.040
borg implants. Right, David,
did you find one that tickled you?

54
00:04:26.160 --> 00:04:30.000
I thinkline is my favorite. Yeah, he's awesome. Her ling's very manga,

55
00:04:30.120 --> 00:04:34.600
isn't it is it is? And
it's uh. It's this woman with

56
00:04:34.639 --> 00:04:40.279
a with a cane and skeletons behind
her, and she's saying, destroy one

57
00:04:40.279 --> 00:04:45.199
of my processes and I will only
grow stronger. And that is a magic

58
00:04:45.279 --> 00:04:49.720
staff if I've ever seen one.
Absolutely, she's wearing like an amulet and

59
00:04:49.720 --> 00:04:54.680
there's like mascara dripping from her from
her eyes or whatever that is. I

60
00:04:54.680 --> 00:05:00.040
don't know, right, although Haskell
is probably like peak. Yeah, the

61
00:05:00.120 --> 00:05:05.319
diagram is exactly what I think of
HOSCO programmers, Like above everything this pure

62
00:05:05.399 --> 00:05:11.720
math, everything is just like it
is perfect. Yeah. And then go

63
00:05:12.079 --> 00:05:17.399
is this giant Google monster, you
know, with a Google T shirt just

64
00:05:17.639 --> 00:05:23.120
ripped right, bald head and it's
a little nerd sitting in front with bang

65
00:05:23.160 --> 00:05:28.279
Eyes. All right, Well anyway, okay, I thought that was fun.

66
00:05:28.519 --> 00:05:30.839
It's a good diversion. So Richard, who's talking to us today,

67
00:05:30.920 --> 00:05:32.959
Well, it turns out we haven't
had mister Fowler on the show for a

68
00:05:32.959 --> 00:05:36.839
little while, probably a little too
long actually, but he's been busy being

69
00:05:36.879 --> 00:05:41.360
a distinguish engineer and stuff. So
I'm yeah, we're not gonna fuss too

70
00:05:41.439 --> 00:05:45.120
much on that. He gets a
get out of jail free card. Well,

71
00:05:45.120 --> 00:05:46.199
and I went back and looked at
some of the old shows and so

72
00:05:46.240 --> 00:05:49.360
forth. I'm like, hey,
you know, but I found this great

73
00:05:49.399 --> 00:05:54.279
comment just by searching on his name. Actually, it's actually a comment.

74
00:05:54.360 --> 00:05:57.639
It's seventy years old. It's from
August of twenty sixteen, episode thirteen thirty

75
00:05:57.680 --> 00:06:00.240
five, and when we were talking
to Matt Watson, who's the Stacify guy,

76
00:06:00.560 --> 00:06:04.000
about his experiences migrated to dot net
Core, of which we blame David

77
00:06:04.000 --> 00:06:11.600
for extensively. And so Matthew Decree
made this comment admittedly seven years ago,

78
00:06:11.680 --> 00:06:15.160
where he said, having weathered the
storm of dot net core and its other

79
00:06:15.319 --> 00:06:18.759
names since Beta eight, I can
completely understand the frustrations trying to follow all

80
00:06:18.759 --> 00:06:23.759
the decisions that have been made.
I even gave up during the RC periods.

81
00:06:23.839 --> 00:06:27.160
Yeah, there was some bumpy times
getting too V one holy man.

82
00:06:28.680 --> 00:06:31.519
However, the dot Net standard version
is much easier to understand if only you

83
00:06:31.639 --> 00:06:35.160
have the right resources. Trouble is
it seems that a large number of naming

84
00:06:35.240 --> 00:06:40.399
changes. That seems to be that
there are many official locations for documentation too,

85
00:06:40.639 --> 00:06:44.720
remember to Life before Learn, none
of which you appear to be completed.

86
00:06:44.839 --> 00:06:48.439
I guess a documentation is in preview
two. I did manage to and

87
00:06:49.399 --> 00:06:54.839
they managed to find an analogy by
David Fowler, and he provides a link

88
00:06:56.199 --> 00:07:01.160
to a GitHub doc that's not in
his head David that puts in terms any

89
00:07:01.160 --> 00:07:04.879
c sharp should be able to understand
with code. With this is clear to

90
00:07:05.000 --> 00:07:10.480
understand the PCL capabilities. You can
target the right version based on your capabilities.

91
00:07:10.480 --> 00:07:13.399
It even describes Zamaran libraries in these
terms. As a result, it

92
00:07:13.399 --> 00:07:15.759
makes it easier to know whether you're
making a library that can be run on

93
00:07:15.800 --> 00:07:19.199
mobile or at least in that sense, if it compiles, it can ship.

94
00:07:19.759 --> 00:07:23.360
And that's what delighted me about this
find right, was it's like,

95
00:07:23.399 --> 00:07:26.360
oh, it's David Fowler. So
he answered a question with code. Of

96
00:07:26.399 --> 00:07:29.759
course, it's great. And the
code still run, is still up,

97
00:07:29.800 --> 00:07:32.720
it's still there. I mean,
of course the pcls are gone. Let's

98
00:07:32.759 --> 00:07:38.560
not talk about that, my god. But yeah, it was such a

99
00:07:38.560 --> 00:07:41.560
cool comment and I probably should have
read it years ago because it was one

100
00:07:41.560 --> 00:07:45.160
of those great things about how do
you explain stuff to people? Yeah,

101
00:07:45.240 --> 00:07:46.759
so, Matthew, thank you so
much for your comment. A copy of

102
00:07:46.839 --> 00:07:48.920
music Cobe is on its way to
you. And if you'd like a copy

103
00:07:48.920 --> 00:07:53.199
of music Code buy I write a
comment on the website dot net rocks dot

104
00:07:53.240 --> 00:07:56.120
com or on the facebooks. We
publish every show there and if you comment

105
00:07:56.160 --> 00:07:58.519
there and a reading the show,
we'll send your copy music Codbear and you

106
00:07:58.519 --> 00:08:00.839
can follow us on Twitter if you
want to. But the cool kids are

107
00:08:00.879 --> 00:08:05.160
hanging out. I'm mastadon, I'm
at Carl Franklin at tech hub dot social,

108
00:08:05.319 --> 00:08:11.040
and I'm Rich Campbell at mastadondol social
sen Usitute. You might get a

109
00:08:11.120 --> 00:08:18.480
mug. Pretty sure you won't,
Pretty sure you might. All right,

110
00:08:18.519 --> 00:08:22.160
so let's bring David Fowler back here. He joined Microsoft, of course,

111
00:08:22.160 --> 00:08:26.639
as a developer on the aspenat team
in two thousand and eight. Before that,

112
00:08:26.759 --> 00:08:31.839
he did two internships at Microsoft as
a tester and developer. He's originally

113
00:08:31.879 --> 00:08:33.559
from Barbados and went to college in
Florida. And you may have heard of

114
00:08:33.600 --> 00:08:37.320
a couple of things he's been interested
in, like I don't know signal R

115
00:08:39.240 --> 00:08:43.759
you know that little thing, lots
of other stuff. And now we're going

116
00:08:43.799 --> 00:08:46.840
to be talking to him about Aspire. Hey, David, what's up.

117
00:08:46.399 --> 00:08:50.120
Hey y'all, haven't seen you in
a while, haven't hung out for a

118
00:08:50.159 --> 00:08:54.519
bit. Yeah, it's been a
long time. Yeah, you know kidding,

119
00:08:54.600 --> 00:08:58.840
Yeah, yeah, yeah, And
again, congratulations on the distinguished engineer.

120
00:09:00.120 --> 00:09:03.159
I don't even know if I know
people people know what that even means.

121
00:09:03.120 --> 00:09:07.120
Yeah, I think it means a
little bit of great hair. You

122
00:09:07.240 --> 00:09:11.720
had been doing this for a while, Tiny. It's weird when you go

123
00:09:11.879 --> 00:09:16.559
from being the youngest person on the
team, being the intern, to like

124
00:09:16.320 --> 00:09:20.120
being there for a long time and
only beginning to realize how long you've been

125
00:09:20.200 --> 00:09:24.679
there when new people join and they
ask you questions and you're like, what,

126
00:09:24.039 --> 00:09:28.639
huh, you guys not just normal? If you guys want to hear

127
00:09:28.720 --> 00:09:31.799
Old, I remember when dot net
Aspire was a program designed to support the

128
00:09:31.879 --> 00:09:37.159
growth and development of developers who are
passionate about dot net technology. Oh my

129
00:09:37.240 --> 00:09:43.919
gosh, name reuse problems that never
happens. What that's not? That's not

130
00:09:43.279 --> 00:09:46.399
that's not a thing. So if
you go to chat GPT and ask can

131
00:09:46.440 --> 00:09:50.240
you tell me about dot net Aspire, that's what comes out, unless you

132
00:09:50.399 --> 00:09:52.320
ask it to go to the web
and say no, no, no,

133
00:09:52.320 --> 00:09:58.240
no, I'm talking about the Azure
thing net framework thing. Oh my name

134
00:09:58.399 --> 00:10:01.919
is super hard. I mean yeah, I remember even trying to name things

135
00:10:01.960 --> 00:10:05.879
like Signal Or, Razor, Blazer. We got some pretty cool names.

136
00:10:05.879 --> 00:10:09.519
I will like, Blazer is a
really good name. Yeah. Finally Razors

137
00:10:09.559 --> 00:10:16.279
as well, Razor Exactly. It's
not Microsoft rendering tech stock for SP three

138
00:10:16.440 --> 00:10:20.120
like that meme that we have at
Microsoft were naming things poorly. Blazer and

139
00:10:20.240 --> 00:10:24.240
Razor brought the entire mold. I
mean to be clear, it's not a

140
00:10:24.279 --> 00:10:39.279
meme just at Microsoft Over Technology Foundation
otherwise known as w t F. Yeah,

141
00:10:39.440 --> 00:10:43.200
OKID, it's been a ride.
So it was an Ignite that you

142
00:10:43.279 --> 00:10:46.919
decided to roll this thing out.
Couldn't wait for build? Huh you were

143
00:10:46.960 --> 00:10:50.799
ready, couldn't wait for build?
That's right, that's right, Ignite.

144
00:10:50.279 --> 00:10:56.559
What's insandable? Aspire was the team
had a lot of ideas rolling in our

145
00:10:56.559 --> 00:11:00.360
brands for like a couple of years
now, right, So we did TIE

146
00:11:00.399 --> 00:11:05.600
in twenty nineteen, and Tie if
you hadn't seen it, it's still there

147
00:11:05.639 --> 00:11:09.000
on GitHub, dot net, slash
tight and TIE was our first real attempt

148
00:11:09.080 --> 00:11:18.080
at trying to build a micro service
tool developer experience for making easy to develop

149
00:11:18.080 --> 00:11:22.320
these kinds of applications that were that
were made up of multiple parts of your

150
00:11:22.320 --> 00:11:26.320
app. And the story of TIE
is is interesting because what ended up happening

151
00:11:26.440 --> 00:11:31.039
was was twenty nineteen was that year
where Kubernetes was like we had been ignoring

152
00:11:31.039 --> 00:11:35.039
it, but me personally had been
like, you see it, and it's

153
00:11:35.080 --> 00:11:37.840
important, and it's a thing people
are learning, but it you put it

154
00:11:37.879 --> 00:11:41.320
in the back burner and you wait
to see if you get more signal.

155
00:11:41.879 --> 00:11:45.279
And it kept getting stronger and stronger. Okay, this is the thing that

156
00:11:45.279 --> 00:11:48.120
people are using, and this is
TIE T y E tie T y e.

157
00:11:48.200 --> 00:11:52.240
Yeah exactly, yep, yeah,
yeah. You know. I went

158
00:11:52.320 --> 00:11:56.919
researching dot net Aspire a little deeper
from when I saw it ignite, and

159
00:11:58.200 --> 00:12:01.679
the first thing that came to mind
is, oh, kind of like as

160
00:12:01.759 --> 00:12:09.600
your service fabric, but you know, community driven and yeah, so and

161
00:12:09.600 --> 00:12:13.240
we should correct one thing before Jeff
Fritz actually reaches through the wire and strangles

162
00:12:13.320 --> 00:12:18.720
us all. He announced it a
dot comp which happened to the same same

163
00:12:18.799 --> 00:12:22.919
time as a night but and I
was working a night although I did do

164
00:12:24.000 --> 00:12:26.960
a shift at dot net comp,
but it was a dot dot com.

165
00:12:26.159 --> 00:12:33.039
So please no car box, like, calm down. I very angry right

166
00:12:33.080 --> 00:12:37.360
now. And we were we were
actually at Ignite like that same week.

167
00:12:37.440 --> 00:12:39.679
So I did the keynote dot net
Comp. We did talks, and then

168
00:12:39.919 --> 00:12:46.360
I did the two panels like Aspire
and stuff at Ignite in Seattle. So

169
00:12:46.440 --> 00:12:50.720
you did talk about Aspire at Ignite
while also having announced it at dot net

170
00:12:50.720 --> 00:12:58.320
Comp. Correct, because that's not
confusing at all. That comp is a

171
00:12:58.440 --> 00:13:05.720
community thing, right that Microsoft gets
behind, and you know Ignite is obviously

172
00:13:05.799 --> 00:13:09.519
Microsoft's baby. But from what I
remember, there were more people that were

173
00:13:09.519 --> 00:13:13.919
tuned into dot net KOMPF than went
to Ignite. It was huge this year,

174
00:13:15.039 --> 00:13:20.279
like it was insane this year.
Just yeah, quite amazing actually watching

175
00:13:20.320 --> 00:13:24.879
that conference girl from this super small
thing that Heavier kind of helped together into

176
00:13:24.879 --> 00:13:31.080
what it is today insanely massive conference
that people watch real time life, and

177
00:13:31.159 --> 00:13:33.039
it was a ton of fun,
like making the keynote recording at this time.

178
00:13:33.559 --> 00:13:41.559
I remember last year the keynote is
life ye oh my gosh. Yeah,

179
00:13:39.639 --> 00:13:45.919
total stressful, like the back to
back rehearsals making a keynote like work.

180
00:13:46.000 --> 00:13:50.360
Well yeah, well I know that
you are no stranger to live keynote

181
00:13:50.600 --> 00:13:56.879
code on the fly, demos that
blow people's minds like mine. It's funny.

182
00:13:56.159 --> 00:14:01.879
Life coding to me is like the
easy part, right yeah, all

183
00:14:03.000 --> 00:14:05.200
right, so let's just talk about
dot net Aspire. What is it?

184
00:14:05.559 --> 00:14:09.480
So tai Tie is the precursor project, right, yeah, yeah, so

185
00:14:09.519 --> 00:14:13.879
Tie is the precursor, but in
particular, how does it compare to as

186
00:14:13.919 --> 00:14:16.720
a service fabric, which kind of
walks in the same path. Yeah.

187
00:14:16.759 --> 00:14:20.720
So what's funny is when we were
building TAI, I felt like we were

188
00:14:20.720 --> 00:14:28.039
going to get feedback about Doctor Composed
and Thaie service fabric. Kind of surprised

189
00:14:28.039 --> 00:14:31.919
me, to be ho, and
it should have, but it surprised me

190
00:14:31.919 --> 00:14:35.639
that people drew the comparison. But
it in hindsight it made complete sense because

191
00:14:35.159 --> 00:14:41.360
Microsoft shit and Orchestrator. So during
the Great Orchestration Wars of twenty you don't

192
00:14:41.360 --> 00:14:46.080
know fifteen to twenty nineteen. Right, there was Mesos from Apache. There

193
00:14:46.240 --> 00:14:50.679
was like it was Mesos, Doctor
Swarm, Kubernetes, Service fabric. Right,

194
00:14:50.720 --> 00:14:54.600
there are these four big ones that
people were all using, and there's

195
00:14:54.639 --> 00:15:00.279
one called Nomad from I think Hashi
Quork, and everyone was kind of trying

196
00:15:00.279 --> 00:15:03.559
to see which one to win.
I'm not sure if you recall, but

197
00:15:03.639 --> 00:15:07.960
in Azure there was there was a
service called ACS, right Adre I think

198
00:15:07.000 --> 00:15:11.360
it was the original AJUC container service, and it supported multiple orchestrators. You

199
00:15:11.360 --> 00:15:15.879
could pick your own and there was
no winner at that point. Right,

200
00:15:15.879 --> 00:15:22.279
you could pick an orchestrator like and
bring your own containers. And then Kubernetes

201
00:15:22.320 --> 00:15:26.039
won. A service fabric is still
very much used, Like, yeah,

202
00:15:26.200 --> 00:15:28.960
it's not like it went away and
enterprise is Yes, it's still there.

203
00:15:28.039 --> 00:15:31.759
Right, why do you think Kubernetes
won? But it's also really tied to

204
00:15:31.879 --> 00:15:37.039
Azure, isn't it service fabric.
I mean it will run on Primo,

205
00:15:37.200 --> 00:15:41.159
we'll run on whatever cloud. But
it's really it really shines because it's using

206
00:15:41.320 --> 00:15:46.320
I mean Azure itself is using service
fabric, but it is the core of

207
00:15:46.399 --> 00:15:50.799
Azure uses service fabric for sure.
The Spire is really more like a framework,

208
00:15:50.960 --> 00:15:54.960
isn't it. For the dot net
framework that super challenging makes it easy

209
00:15:54.000 --> 00:15:58.519
to put these things together. So
there's the difference. We had this really

210
00:15:58.519 --> 00:16:02.960
hard time trying to figure out how
to describe it succinctly, like what is

211
00:16:02.960 --> 00:16:07.399
a single sensus that describes what Aspire
is because it combines kind of four things

212
00:16:07.440 --> 00:16:11.799
together and it is a framework,
but it isn't a framework, So like,

213
00:16:12.039 --> 00:16:15.360
don't you don't use the Aspire framework. You use it's been at core

214
00:16:15.840 --> 00:16:19.240
right. One of the challenges was, you know, we built this amazing

215
00:16:19.279 --> 00:16:23.039
website, we built this amazing tech
over the last like eight years, and

216
00:16:23.360 --> 00:16:27.519
we have all these pieces that you
can put together yourself in an application,

217
00:16:29.039 --> 00:16:30.080
but you kind of have to know
how to do it. How do you

218
00:16:30.080 --> 00:16:34.559
wire up telemetry, how do you
wire up wire up poly how do you

219
00:16:34.600 --> 00:16:41.159
wire up health checks? All these
things existed in the ecosystem, but putting

220
00:16:41.159 --> 00:16:45.679
it together into a package and having
it be orchestrated and to end is the

221
00:16:45.720 --> 00:16:52.919
thing that aspired it to Aspire added
orchestration for local development and give you patterns

222
00:16:52.960 --> 00:16:57.879
in your application for that. And
what's funny is the tech isn't new.

223
00:16:59.000 --> 00:17:03.200
It's just we we glued things together
that were that were there already, right,

224
00:17:03.079 --> 00:17:07.400
So I looked at the Aspire components. Yeah, and you know,

225
00:17:07.440 --> 00:17:11.359
there are all the components that I
would use my own dot net framework,

226
00:17:11.400 --> 00:17:14.880
except they have an Aspire in front
of them. So yeah, obviously,

227
00:17:15.039 --> 00:17:19.079
so like Aspire dot as your blob
service or whatever is as your blob service,

228
00:17:19.440 --> 00:17:22.680
but it's got the glue to hook
it into the rest of what Aspire

229
00:17:22.759 --> 00:17:27.559
does. Open telemetry, Yeah,
there's tons of them. Open Telemetry Configuration

230
00:17:29.240 --> 00:17:33.839
DII exactly exactly, so, and
it's funny. We spent a lot of

231
00:17:33.839 --> 00:17:38.640
time trying to figure out if that's
valuable, Like is it valuable to have

232
00:17:38.759 --> 00:17:45.880
Glue packages that our version consistently and
that glue things together that you would always

233
00:17:45.920 --> 00:17:49.680
need in an application. And we
went back and forth with the you know,

234
00:17:49.759 --> 00:17:53.400
the adre ESDIKA team. Should we
put this in the SDK, Should

235
00:17:53.400 --> 00:17:57.039
we have a separate component? What's
the value in having a separate thing on

236
00:17:57.400 --> 00:18:02.000
a glue package? But it I
think based on what we've seen feedback,

237
00:18:02.000 --> 00:18:06.200
why so far people love the convenience, Like you basically grab this package and

238
00:18:06.240 --> 00:18:08.599
you call a method and it wires
up like four or five things that you

239
00:18:08.599 --> 00:18:14.079
would have had to do by hand. And I think in isolation it looks

240
00:18:14.079 --> 00:18:17.160
simple, Yeah, I did it
once this one time here for this one

241
00:18:17.200 --> 00:18:22.200
component. But when it's four or
five reds and blogs and all these and

242
00:18:22.240 --> 00:18:27.839
you have distributed tracing on canfig config
working, de I working, and it

243
00:18:27.880 --> 00:18:32.880
also configures the pipeline in the right
order. Right, I mean that's right.

244
00:18:32.920 --> 00:18:34.559
That's that's the biggest problem. When
you have these things. It's like

245
00:18:36.480 --> 00:18:38.279
where does this go? Right?
Yeah, exactly, It's like a jigsaw

246
00:18:38.319 --> 00:18:44.519
puzzle. Yep. And some of
this actually came out of watching there were

247
00:18:44.519 --> 00:18:49.039
some internal teams building these higher level
libraries on top of lower level SDKs,

248
00:18:49.359 --> 00:18:52.920
and we asked them like, why
are you not using the SDK as is?

249
00:18:52.960 --> 00:18:55.240
And they were like, well,
if you're building an at skilled cloud

250
00:18:55.279 --> 00:18:59.799
service. Turns out these default configured, configed heatings made to work in any

251
00:19:00.200 --> 00:19:03.599
of it don't work well for the
for our services. So we went,

252
00:19:03.680 --> 00:19:07.279
huh, could we take what you've
learned from kind of building, you know,

253
00:19:07.319 --> 00:19:11.200
the team's backhand or the bang backhand
and package it into a way that

254
00:19:11.440 --> 00:19:18.359
just works for our customers by default. So aspires trying to take knowledge from

255
00:19:18.599 --> 00:19:22.279
teams at Microsoft building high skill services
and making it available for a third party

256
00:19:22.559 --> 00:19:26.839
as well. That's as well.
Nice. Yeah, there's a lot there.

257
00:19:26.119 --> 00:19:30.160
There's a lot to it. But
at the end of the day,

258
00:19:30.359 --> 00:19:36.759
it's about that configuration, isn't it. It's about the distributed builders. Instead

259
00:19:36.759 --> 00:19:40.119
of like the regular old app builder
you do in aspn net, you use

260
00:19:40.160 --> 00:19:44.720
the Aspire builder and then you can
just add reddits at this ad that,

261
00:19:45.359 --> 00:19:48.880
yeah, wherever, and it just
figures out how to put that pipeline together.

262
00:19:49.400 --> 00:19:52.640
Correct. One of the the first
things we did was we took the

263
00:19:52.839 --> 00:20:00.519
shop example on containers. Was one
of like, is that it's funny?

264
00:20:00.559 --> 00:20:04.359
The backstory for shop is kind of
incredible. One of our product managers,

265
00:20:04.359 --> 00:20:07.640
i want to say, like seven
years ago, said we need to have

266
00:20:07.720 --> 00:20:11.279
this sample and a book with it, and they kind of like on their

267
00:20:11.319 --> 00:20:15.720
own built this thing, right,
got vendors built, built this mega samples

268
00:20:15.720 --> 00:20:19.319
out. It's super popular, right, yeah, it never goes away,

269
00:20:19.759 --> 00:20:26.240
it never goes it super popular.
So we were like, okay, that's

270
00:20:26.240 --> 00:20:30.160
why I said, it's like really
I heard I heard you. Well shop

271
00:20:30.440 --> 00:20:37.079
Shop got a massive revamp revapp in
so the engineering team to cover e shop.

272
00:20:37.160 --> 00:20:40.119
So now the Aspinet core team owns
the shop. There's a there's a

273
00:20:40.160 --> 00:20:45.519
new fork. It was a new
repo that is kind of like successful to

274
00:20:45.559 --> 00:20:49.160
the older one containers and it's a
Spire based a Blazer front end, right,

275
00:20:49.440 --> 00:20:53.000
yeah, it got it. It's
all a Blazer front end, like

276
00:20:53.000 --> 00:20:57.039
it's all modern, super modern,
has a beautiful photo like the the the

277
00:20:57.640 --> 00:21:03.079
diagram is like amazing, and it's
all Aspire based. And part of the

278
00:21:03.200 --> 00:21:07.720
proof we were like, okay,
we need to be able to take each

279
00:21:07.720 --> 00:21:14.480
shop which is built on Doctor Composed
and had a lot of manual deployment scripts

280
00:21:14.480 --> 00:21:18.359
for deployment to different parts of Azure
like akas Aca, et cetera. And

281
00:21:18.440 --> 00:21:22.480
we said, okay, our test
is we need to be able to take

282
00:21:22.519 --> 00:21:26.640
at a minimum a thing like each
shop and aspiify it and then like be

283
00:21:26.720 --> 00:21:32.640
able to deploy it to Azure and
have it just work right Azure or crew

284
00:21:32.720 --> 00:21:38.039
nities and have it just work without
too much changes. Right. The Doctor

285
00:21:38.039 --> 00:21:42.200
composed situation for Aspire and those who
don't know, Doctor composed is a way

286
00:21:42.240 --> 00:21:49.960
to compose a multi process application locally, but you have to put everything in

287
00:21:51.000 --> 00:21:56.079
containers first. One of the big
pain points in building doctor files for dot

288
00:21:56.119 --> 00:22:03.119
net projects is you have to copy
every single project reference into the container for

289
00:22:03.200 --> 00:22:07.319
container builds. Wow. So if
you were to look at the doctor files

290
00:22:07.359 --> 00:22:15.000
for the shop, they're like one
hundred lines long copying cs projects because Dunnet

291
00:22:15.039 --> 00:22:19.000
has solutions and project references and you
end up having to copy the transitive closure

292
00:22:19.039 --> 00:22:23.559
of all these dependencies just to build
containers. Right, So imagine. So

293
00:22:25.640 --> 00:22:30.480
I've seen feedback people saying why would
I use Aspire if I have composed And

294
00:22:30.480 --> 00:22:33.039
I think the the what ends up
happening there is if you figured out the

295
00:22:33.079 --> 00:22:37.119
secret sauce to make it all work, and you have like massage your composed

296
00:22:37.160 --> 00:22:42.880
files to a point where if you're
Mark Randall, yeah if if you if

297
00:22:42.880 --> 00:22:45.640
you somehow figured it out, then
maybe you're happy with what you have.

298
00:22:47.200 --> 00:22:52.519
But the moment you want to change
add move things around, it gets hard

299
00:22:52.519 --> 00:23:00.000
again, right right? Yeah,
wait for two exactly. So the when

300
00:23:00.039 --> 00:23:03.200
I mean when we moved each shop
to Aspire, when we got enough of

301
00:23:03.240 --> 00:23:07.799
Aspire working to move each op to
it, it was like, holy crap,

302
00:23:07.440 --> 00:23:12.200
Like we move and I think there
were like four or five composed files

303
00:23:12.240 --> 00:23:18.519
on different environments because if yamo,
there's no code you can't write if statements.

304
00:23:18.839 --> 00:23:23.720
You're you're bound by Like you basically
end up having n different files for

305
00:23:23.799 --> 00:23:27.400
any different configurations. Right where in
the Inspire world we give you see sharp

306
00:23:29.039 --> 00:23:30.759
and you can write it if statement
and you can declare variable. So like

307
00:23:32.359 --> 00:23:33.960
you end up in this place where
I can just write code to say,

308
00:23:34.000 --> 00:23:37.559
if I'm in development, do X, otherwise do y right, yeah,

309
00:23:37.720 --> 00:23:44.680
super nice, super nice dot net
visual studio, dot net templates. Yeah,

310
00:23:45.200 --> 00:23:47.359
is that where we would start,
Like, I know you need docer

311
00:23:47.440 --> 00:23:51.759
for desktop, but I think it
requires currently the preview version of visual Studio,

312
00:23:51.880 --> 00:23:53.880
right, yeah, so there is, there is. It's funny this,

313
00:23:53.880 --> 00:23:59.480
This is one of the big things
when we were like debating how were

314
00:23:59.680 --> 00:24:04.319
things land first, you can use
Aspire from the command line or VS coach

315
00:24:04.440 --> 00:24:10.839
is fine, okay, cool,
right? Big thing VS big VS does

316
00:24:10.880 --> 00:24:15.160
for you is when you hit F
five, it'll auto attach to all your

317
00:24:15.160 --> 00:24:18.279
processes and you can debug. That's
one of the big things people ask for

318
00:24:18.359 --> 00:24:22.279
When we did TIE three or four
years ago, it was I want to

319
00:24:22.279 --> 00:24:26.160
be able to debug a micro service, and I want to hit F five,

320
00:24:26.240 --> 00:24:30.480
and I wanted to launch the under
the debugger all of my processes,

321
00:24:30.519 --> 00:24:33.920
so I can step across the end
to end tracing right the end to end.

322
00:24:34.039 --> 00:24:37.240
So typically you do that with the
solution properties, right, run multiple

323
00:24:37.240 --> 00:24:41.079
projects exactly the same time, so
you don't have to do that, correct,

324
00:24:41.079 --> 00:24:42.240
you don't have to do it.
So your Aspire app, it just

325
00:24:42.359 --> 00:24:48.519
launches like end projects, containers,
processes, and it will attach and you

326
00:24:48.519 --> 00:24:51.759
can just step into it. That's
cool. Yeah, so be more of

327
00:24:51.799 --> 00:24:56.160
that please, it's super nice.
Yeah. We we built this local orchestrator

328
00:24:56.680 --> 00:25:00.920
and I think this is where the
service fabric can be comes in because it

329
00:25:00.960 --> 00:25:04.400
has a very similar thing where service
fabric has a local orchestrator, but that

330
00:25:04.519 --> 00:25:11.000
thing is the real orchestrator. When
you deploy to like your environment on prem

331
00:25:11.160 --> 00:25:15.400
or to Azure, you are running
that orchestrator. Yeah. Service service fabric

332
00:25:15.559 --> 00:25:19.480
is really it includes the platform,
the path. The platform is a service

333
00:25:19.599 --> 00:25:25.160
right, yes, correct, it's
the platform right like it really is like

334
00:25:25.279 --> 00:25:27.079
you are running service fabric. It
is an all in one, like give

335
00:25:27.079 --> 00:25:32.279
me the local dev orchestrator and then
when you publish you get that same experience

336
00:25:32.519 --> 00:25:37.400
like in the cloud or whatever else. So Aspire Aspire is different different It

337
00:25:37.440 --> 00:25:41.759
differs there it's lightweight's community driven.
Did we mention that open source? It

338
00:25:41.799 --> 00:25:48.839
is this lightweight orchestrator and actually details
wise, it's actually built on the Kubernetes

339
00:25:48.400 --> 00:25:55.160
pattern locally, but then when you
when you deploy, when you publish,

340
00:25:56.000 --> 00:26:00.960
we create this intermediate format or IL
if you must. This manifest. It

341
00:26:00.000 --> 00:26:04.759
is declarative and it kind of describes
all of the resources used to build the

342
00:26:04.759 --> 00:26:18.440
application locally. And then it's definitely
Jason, but this is one of the

343
00:26:18.440 --> 00:26:22.680
big things we were trying to figure
out, what do we how do you

344
00:26:22.759 --> 00:26:27.799
go from local development to production?
Right? Do you do? You do?

345
00:26:27.880 --> 00:26:32.559
You take the orchestrator everywhere you go. So we said, no,

346
00:26:32.720 --> 00:26:36.039
that isn't what we're gonna do.
We're gonna spit out this manifest that kind

347
00:26:36.079 --> 00:26:40.920
of describes in this declarative format all
the resources and all the types. The

348
00:26:40.960 --> 00:26:45.359
reatises all the caches, environment variables. And then it's up to a separate

349
00:26:45.400 --> 00:26:49.960
tool to glean from that manifest and
turn it into concrete resources. So when

350
00:26:51.000 --> 00:26:55.240
you use the Azure Developer c l
I you say a cd up, it

351
00:26:55.359 --> 00:27:00.640
actually tells ASPIRER give me your manifest
and then it'll convert that manifest into BICEP,

352
00:27:00.000 --> 00:27:04.200
which is the you know, the
as code language for azure. Yeah.

353
00:27:04.359 --> 00:27:07.559
Yeah, it's for ARM for as
your resource man exactly, for for

354
00:27:07.720 --> 00:27:14.279
ARM exactly. It's nicer ARM than
ARM Jason. But it's writing ARM under

355
00:27:14.319 --> 00:27:15.799
the hood for you, just so
you know, like there's no voodoo here.

356
00:27:17.039 --> 00:27:18.799
It is, but there's no matches. But if you've gotten tired of

357
00:27:18.839 --> 00:27:23.640
staring at Jason, like is more
language y correct, I'm more tired of

358
00:27:23.640 --> 00:27:29.759
staring at Yamel. Honestly. One
of the big things that we were we

359
00:27:29.759 --> 00:27:33.400
were trying to have as a as
a selling point for a spier was like,

360
00:27:33.440 --> 00:27:37.039
are you tired of looking at Yamo
your silver Hansleman must have been involved

361
00:27:37.039 --> 00:27:41.279
in that because he hates it just
as much as I do, honestly.

362
00:27:41.359 --> 00:27:44.759
Like when you enter the cloud Nati
space, one of the big things I

363
00:27:44.759 --> 00:27:49.960
think people just accept is like there
is YAMO and can figure everywhere you are

364
00:27:51.119 --> 00:27:57.119
doing bits together by editing canfig files
and passing in IP addresses and host and

365
00:27:57.640 --> 00:28:02.720
trying to figure out how things all
like do this right glue together? No,

366
00:28:03.279 --> 00:28:06.039
get hub told me again, YAML
is my number two language and I'm

367
00:28:06.079 --> 00:28:11.319
like, Steph, I bleue a
lot of stuff together, Like that's just

368
00:28:11.440 --> 00:28:15.240
reality for me. Yeah, it
is. I think one of the big

369
00:28:15.279 --> 00:28:22.400
things Aspire will enable is building an
ecosystem of packages that hide some of the

370
00:28:22.480 --> 00:28:26.000
YAML that the ammal isn't there is
that you didn't have to type it.

371
00:28:26.359 --> 00:28:32.400
Yes, Rank God, that's the
important part. You call rettis and you

372
00:28:32.440 --> 00:28:38.839
can give Intel a sense for configuring
the port configuring like the uife reddis and

373
00:28:38.880 --> 00:28:41.640
you can build like you actually compose
things, right. I think one of

374
00:28:41.720 --> 00:28:45.720
the big things that Polumi did,
like they put that Plumi figured out which

375
00:28:47.000 --> 00:28:52.279
they knew. Right. With code, you can build abstractions and packages and

376
00:28:52.440 --> 00:28:56.079
modules, and you can you can
abstract end things by by having like one

377
00:28:56.160 --> 00:29:02.200
interface that does end things under covers
yep, the Yamo bass can fig models

378
00:29:02.319 --> 00:29:06.119
don't let you do that. You
are stuck with stream replacements. You were

379
00:29:06.119 --> 00:29:11.079
like, how do I how do
I have Let's say you want to have

380
00:29:11.440 --> 00:29:15.599
a base platform for your team,
So my team is going to use Grafana

381
00:29:15.720 --> 00:29:18.119
and low key, and you name
the top five CNC things, right,

382
00:29:18.480 --> 00:29:22.599
how do you give all of your
team a template that says you guys should

383
00:29:22.640 --> 00:29:26.720
use this base template for all of
your services. Like it's difficult, right,

384
00:29:26.799 --> 00:29:33.519
I wonder what the cartoon representation of
Yamo would be. Let's just think

385
00:29:33.559 --> 00:29:37.319
about something to do with like it's
duplication. So it's something to do with

386
00:29:37.440 --> 00:29:42.880
duplicating stuff everywhere, maybe like Lucille
ball trying to sort the strawberries as they

387
00:29:42.920 --> 00:29:48.079
come off, or the chocolate chocolate. Yeah. Yeah, So that was

388
00:29:48.119 --> 00:29:53.519
one of our big drivers, like
could be and it was a big discussion

389
00:29:53.599 --> 00:29:57.079
on the team, like what do
we use as this file format? Do

390
00:29:57.160 --> 00:30:02.119
we have a solution, do we
try to change the solution file because the

391
00:30:02.119 --> 00:30:07.920
solution is kind of like the Uber
project for multiple projects, but we wanted

392
00:30:07.920 --> 00:30:11.720
something code based. It was like
you put together your application by saying,

393
00:30:11.799 --> 00:30:17.440
give me an application, let me
add projects to it, containers to it,

394
00:30:17.440 --> 00:30:22.880
executables to it. And that gives
you enough of a primitive for others

395
00:30:22.880 --> 00:30:25.960
to kind of say, my company
is going to use my platform. You

396
00:30:26.000 --> 00:30:30.000
know I can do builder dot add
my company's platform composition. Right, things

397
00:30:30.039 --> 00:30:33.480
we learned I don't know, fifty
years ago from programming languages that can picktiles

398
00:30:33.480 --> 00:30:41.240
don't give you nonm ranting. Yeah, I know, it's so great that

399
00:30:41.279 --> 00:30:44.319
we're on the same team. Hey, guys, let's just take a break

400
00:30:44.359 --> 00:30:51.680
real quick for these very important messages
and we'll be right back. And we're

401
00:30:51.759 --> 00:30:53.880
back. It's dot net Rocks.
I'm Carl Franklin. It's my friend Richard

402
00:30:53.920 --> 00:30:57.039
Campbell. He get out there with
the beavers and the otters and the bears,

403
00:30:57.480 --> 00:31:00.400
most of the otters these days.
And we're talking to David Fowler for

404
00:31:00.480 --> 00:31:07.720
Microsoft about dot net Aspire and how
absolutely freaking cool it is and how much

405
00:31:07.839 --> 00:31:12.720
I love Jason, and I know, you know, it also strikes me

406
00:31:12.759 --> 00:31:17.759
that this might be the thing that
gets you know, I developed a dot

407
00:31:17.640 --> 00:31:21.799
a developer that hasn't really gotten into
the micro services container space yet, and

408
00:31:21.880 --> 00:31:26.759
said, am I ready now?
Because it's pretty intimidating, you know,

409
00:31:27.160 --> 00:31:30.839
I got to this project works,
you want me to do? What to

410
00:31:30.960 --> 00:31:34.319
it? You know exactly? So
I just I just wonder, coming from

411
00:31:34.359 --> 00:31:38.000
an existing application that just hasn't been
broken down in that way at all,

412
00:31:38.039 --> 00:31:41.319
it's just a happy ball of mud. Great question, and then we do

413
00:31:41.400 --> 00:31:45.079
that. Yeah, can Aspire help
me get started it? Can it?

414
00:31:45.480 --> 00:31:52.240
One of the big things we tempted
to do was Aspire has kind of these

415
00:31:52.279 --> 00:31:59.480
four main pieces like orchestration, components, telemetry. You can kind of pull

416
00:31:59.480 --> 00:32:01.200
in what you want want to pull
in for your projects, so you can

417
00:32:01.279 --> 00:32:06.799
adopt at your own pace. One
of the big things we learned and personally

418
00:32:06.880 --> 00:32:10.880
personally that I learned doing dot net
Core in the first place, was people

419
00:32:10.920 --> 00:32:15.759
love migration when they can opt into
doing it incrementally, right, Yeah,

420
00:32:15.799 --> 00:32:21.799
no dead drops please. We just
had a great show with with with Jimmy

421
00:32:21.839 --> 00:32:25.920
Bogart where he talked about migrating a
framework app over the core, you know,

422
00:32:27.079 --> 00:32:30.359
to starting you got went to six
and then up from there and just

423
00:32:30.440 --> 00:32:34.480
that we reverse processes things so you
can just replace one piece at a time.

424
00:32:34.599 --> 00:32:39.279
It's always done on two platforms.
And but no dead drops except that

425
00:32:39.480 --> 00:32:46.680
one day there's nothing left running in
framework anymore except authentication. That was last

426
00:32:46.720 --> 00:32:52.359
off session super heard off in session. But yeah, so that that was

427
00:32:52.440 --> 00:32:57.960
one of our main driving factors.
Like you add the Aspire orchard to your

428
00:32:58.000 --> 00:33:01.720
main solution and you just get Aspire. You launched that project, it'll launch

429
00:33:01.799 --> 00:33:07.599
your big application, your big ball
of mud, and you get the dashboard,

430
00:33:07.680 --> 00:33:10.279
you get telemetry like you can you
can kind of ease your way into

431
00:33:10.279 --> 00:33:15.079
getting these benefits and features, You
get container published, you get deployed to

432
00:33:15.279 --> 00:33:22.440
different environments, you watch the percentage
of mud go down every day. That's

433
00:33:22.440 --> 00:33:27.160
the whole. Right. We have
big aspirations. I'll tell you. While

434
00:33:27.160 --> 00:33:30.400
we were doing the Aspire prototype,
I was trying to project, like a

435
00:33:30.400 --> 00:33:32.839
couple of years out, what this
could look like in the in the long

436
00:33:32.920 --> 00:33:38.400
run, And there were ideas floating
around and just about being able to build

437
00:33:38.400 --> 00:33:42.799
your app as a monolith, the
holy grail. Right you to build your

438
00:33:42.799 --> 00:33:45.160
app. You think about app components, you think about parts of your app,

439
00:33:45.200 --> 00:33:50.599
and I think laser is the first
incantation of seeing this from for a

440
00:33:50.680 --> 00:33:53.359
client framework. Yes, I mean
and next jess and spelt kittting those things.

441
00:33:53.759 --> 00:33:58.559
Let me carve off a set of
my app as a component, and

442
00:33:58.599 --> 00:34:01.599
then let me name it. And
then I'm going to turn that universe into

443
00:34:01.720 --> 00:34:07.960
a deployable asset. So it doesn't
matter if I start as one project or

444
00:34:07.039 --> 00:34:10.800
like five projects. I can isolate
my code, and I can isolate my

445
00:34:12.280 --> 00:34:17.159
app into different deployable units. Yes, and I feel as though Aspire is

446
00:34:17.239 --> 00:34:22.320
kind of inching in that direction.
We started off with this very basic like

447
00:34:22.400 --> 00:34:24.400
I can add a project here,
I can add a container here. You

448
00:34:24.440 --> 00:34:28.599
can imagine that being like, let
me add a chunk of code, and

449
00:34:28.679 --> 00:34:31.760
that chunk of code becomes its own
deployable unit. Right. So I think

450
00:34:31.880 --> 00:34:36.960
I feel like that is the way
to get people into a mode where I

451
00:34:37.000 --> 00:34:40.400
can build my application without feeling guilty
that I did it wrong, right,

452
00:34:40.440 --> 00:34:45.639
and I can shift and change and
refractor like as I go as I grow,

453
00:34:45.800 --> 00:34:50.480
right, Because who would want to
start with micro services? Like when

454
00:34:50.519 --> 00:34:55.159
you don't have the complexity like it, it's asking for pain before you have

455
00:34:55.280 --> 00:35:00.760
that desire, right, And if
you can have someone be pretty active when

456
00:35:00.760 --> 00:35:04.199
they start off, start off,
and then as they scale up, they

457
00:35:04.199 --> 00:35:06.840
don't have to rewrite everything from scratch, like, I think that is the

458
00:35:07.119 --> 00:35:09.920
holy girl we've been looking for for
the last Like I don't know how many

459
00:35:09.960 --> 00:35:15.159
years we've been doing software right,
many many many many many years. Yeah,

460
00:35:15.440 --> 00:35:20.840
Yeah, it's been a while.
Good stuff. It's good stuff.

461
00:35:20.880 --> 00:35:25.000
So we were talking about the open
source finess of Aspire. So in terms

462
00:35:25.039 --> 00:35:30.679
of those community contributions, what are
some of the areas in dot net Aspire

463
00:35:30.719 --> 00:35:36.480
that could benefit the most from open
source development. So one of the big

464
00:35:36.559 --> 00:35:40.719
parts of Aspire that we knew,
we knew would be once it controversial.

465
00:35:40.800 --> 00:35:46.599
It was a point of discussion for
the team itself was components. Components are

466
00:35:46.599 --> 00:35:52.920
accurated. One of the big things
we were trying to learn from watching other

467
00:35:52.039 --> 00:35:57.400
players in the space spring boot being
the Java equipment, the biggest probably the

468
00:35:57.440 --> 00:36:00.760
biggest well known thing in the club
needs space for a spring Boot. Right.

469
00:36:00.920 --> 00:36:05.320
One of the things they have is
this thing called spring Cloud, which

470
00:36:05.360 --> 00:36:08.159
is essentially a set of components that
are curated. So when you are looking

471
00:36:08.199 --> 00:36:14.159
for something like a critis or a
database driver or any client library for any

472
00:36:15.480 --> 00:36:19.079
open source piece of software, they
had an answer, right. And it

473
00:36:19.159 --> 00:36:22.679
wasn't that we didn't have an answer. It was that they showed you this

474
00:36:22.719 --> 00:36:24.920
list that had all the answers.
So we were like, you know,

475
00:36:25.000 --> 00:36:29.719
maybe there's something to this list.
Let's try to do a curation thing where

476
00:36:30.280 --> 00:36:35.960
all the aspiring components are basically this
first class list that we create and third

477
00:36:35.960 --> 00:36:37.679
parties can build their own. But
if you want to be in the curated

478
00:36:37.719 --> 00:36:42.480
list, you need to you have
to be a verified Aspire component, so

479
00:36:42.519 --> 00:36:44.800
you have to come through us,
right. That was the You have to

480
00:36:44.800 --> 00:36:49.679
pay your eight dollars a month and
get that badge. It's free. It's

481
00:36:49.719 --> 00:36:52.760
free, but you have to pass. You have to We don't really have

482
00:36:52.800 --> 00:36:59.280
a really well defined council ar review
process as yet, but the intent is,

483
00:36:59.480 --> 00:37:02.360
like you if you were in the
a Spark component list, you can

484
00:37:02.519 --> 00:37:07.320
be sure like the quality is high. It has these these minimum features by

485
00:37:07.320 --> 00:37:09.320
default, et cetera, et cetera. Right, so it is a new

486
00:37:09.360 --> 00:37:14.199
GET package, but it's one where
there's like more checks and there's more things

487
00:37:14.199 --> 00:37:16.920
in place, and there's more more
things that we did to make sure it

488
00:37:17.000 --> 00:37:22.719
passes some midbar of feature work.
Right. Yeah. The community as soon

489
00:37:22.760 --> 00:37:25.960
as we went by open source,
I could not believe how fast the community

490
00:37:27.000 --> 00:37:32.440
added more components like we had in
the very beginning seql server obviously, like

491
00:37:32.480 --> 00:37:39.559
that's what we ship SQL server,
seql server postgrass Rettis and the community just

492
00:37:40.000 --> 00:37:45.400
like through out a ton of amazing
things. And the prs were of such

493
00:37:45.480 --> 00:37:50.280
high quality it was incredible. We
got my cql from the from the my

494
00:37:50.360 --> 00:37:53.599
sql author for dot net. We
got after PR, we got Cosmos.

495
00:37:53.679 --> 00:38:00.440
It was just like dB so I
yeah, Mango dB like and we didn't

496
00:38:00.440 --> 00:38:04.960
even have a document on how to
write components. People just figured out how

497
00:38:05.039 --> 00:38:10.159
to write figure it out. But
so we're even there yet. It normally,

498
00:38:10.199 --> 00:38:15.320
when I've worked on open source for
a long time, and the maturity

499
00:38:15.840 --> 00:38:20.559
in the in the pull request that
we got for Aspire, we're shocking,

500
00:38:21.320 --> 00:38:25.480
like shocking because these weren't small bug
fixes. These weren't like, you know,

501
00:38:27.199 --> 00:38:30.239
changing the semi colon hair are cleaning
up comments. This was here's a

502
00:38:30.280 --> 00:38:34.079
whole new feature that works end to
end, right, it blew me away.

503
00:38:34.199 --> 00:38:37.360
You mentioned open telemetry, Yeah,
so how does that? How did

504
00:38:37.679 --> 00:38:42.679
I mean that? That requires some
knowledge of how to use open telemetry obviously,

505
00:38:42.920 --> 00:38:46.599
yeah, but how does the how
does that work together with Aspire?

506
00:38:47.000 --> 00:38:52.719
So one of the things we get
to do since it was twenty twenty three

507
00:38:52.760 --> 00:38:54.880
and now we're in twenty twenty four. One of the benefits of coming this

508
00:38:55.039 --> 00:39:00.400
lit to like these spaces are things
become more stand so we don't have to

509
00:39:00.440 --> 00:39:05.199
invent our own protocol, we don't
have to invent our own tools, we

510
00:39:05.199 --> 00:39:07.800
don't have to invent our own libraries. Turns out, over the last five

511
00:39:07.880 --> 00:39:14.519
or so years, open telemetry has
been pretty much being standardized in the industry.

512
00:39:14.599 --> 00:39:19.239
So the benefit of that is we
in Aspire, we said, how

513
00:39:19.239 --> 00:39:23.840
do we get telemetry by default.
One of the things we realized was if

514
00:39:23.880 --> 00:39:30.000
you think about the F five experience
for a single project, the debugger and

515
00:39:30.119 --> 00:39:32.480
VS and like how amazing it is
and the experience you get when you step

516
00:39:32.519 --> 00:39:37.840
through can see variables, what is
that experience for distributed systems? Right?

517
00:39:37.559 --> 00:39:45.119
And James James King who did just
donet. He went away for a week

518
00:39:45.400 --> 00:39:50.920
one week, right, and he
built this trace UI in the dashboard.

519
00:39:51.199 --> 00:39:53.840
And the first demo we had where
we showed someone here's kind of our fate

520
00:39:54.039 --> 00:39:58.920
shop and here's the end to end
trace, Like, people just sat there

521
00:39:58.960 --> 00:40:02.760
because on F five you had this
default end to entrace that went through service

522
00:40:02.760 --> 00:40:07.079
A, service B and a database
call and it was just on by default.

523
00:40:07.480 --> 00:40:10.960
And all the work we had been
doing with open telemetry, with like

524
00:40:12.039 --> 00:40:15.320
our libraries, with the EF team, with all these open source partners,

525
00:40:15.880 --> 00:40:20.639
they had all this stuff like in
the tools, it was just really hard

526
00:40:20.679 --> 00:40:24.920
to see without wearing up ten different
containers and diamo. And now on your

527
00:40:25.079 --> 00:40:30.199
default Aspire F five it's just there, right as though we turned the light

528
00:40:30.239 --> 00:40:35.239
on. Someone said, we did
all this work and it was invisible,

529
00:40:35.840 --> 00:40:38.400
And now with this one dashboard view. All the work we did over the

530
00:40:38.480 --> 00:40:43.079
last five years is like there in
your face. Is there a danger in

531
00:40:43.679 --> 00:40:46.960
not knowing how these things work under
the hood and just running the default application

532
00:40:47.079 --> 00:40:54.639
the projects and just publishing it.
Absolutely so. One of the first Reddit

533
00:40:54.760 --> 00:41:00.079
threads on the Aspire stuff when it
first came out, you can see the

534
00:41:00.079 --> 00:41:02.519
the tug of war developers had where
this is amazing. It made me so

535
00:41:02.599 --> 00:41:07.440
productive, where some other people are
like, oh, you know, this

536
00:41:07.519 --> 00:41:14.360
is an astraction layer. I need
to know what's happening. I think it's

537
00:41:14.480 --> 00:41:20.320
kind of like like like anything else, developers will have to know certain things,

538
00:41:20.760 --> 00:41:23.719
and I think part of my job
and our job as designers of a

539
00:41:23.719 --> 00:41:30.320
framework is to hide stuff but don't
make it obscure. Right. So one

540
00:41:30.360 --> 00:41:34.719
of the things we do is when
you create an Aspire project. The reason

541
00:41:34.800 --> 00:41:39.239
open telemetry works is because there's coding
your app that says at open telemetry like,

542
00:41:39.320 --> 00:41:42.679
it's there. We didn't hide it
from you. It's not magic,

543
00:41:43.320 --> 00:41:49.119
it's right there. Configure with the
comment and it says add the the OTLP

544
00:41:49.239 --> 00:41:52.960
exporter, which just says if you
have an environment variable to call this thing

545
00:41:52.599 --> 00:41:58.400
like it's passed in from the Aspire
host and it works. What I've learned

546
00:41:58.440 --> 00:42:02.440
over the years is if developers can
draw lines from coll to how things work

547
00:42:02.519 --> 00:42:07.599
in their brain, then it becomes
less magic and more Oh, I get

548
00:42:07.639 --> 00:42:09.360
how that works. I get how
this this goes there, how that gets

549
00:42:09.360 --> 00:42:12.599
sent here, et cetera, et
cetera. It might be helpful to have

550
00:42:12.639 --> 00:42:16.039
an AI that could explain things when
you don't understand what's going on. If

551
00:42:16.079 --> 00:42:19.960
only we had that. Yeah,
if only there was an AI that way,

552
00:42:20.280 --> 00:42:22.519
that would be strange. That's not
a real thing. You guys are

553
00:42:22.559 --> 00:42:28.400
crazy, but you know, like, Okay, I get how to do

554
00:42:28.480 --> 00:42:31.280
it and it works, But what's
going on here? Why does it work?

555
00:42:31.480 --> 00:42:35.360
Right? I love that. I
love that. Right now, I

556
00:42:35.360 --> 00:42:38.360
think we're at the phase of what's
funny is that discussion? This discussion would

557
00:42:38.360 --> 00:42:42.719
have been super strange if we had
it like four years ago. Yeah,

558
00:42:42.760 --> 00:42:44.400
yeah, it would have been It
would have been a joke, right,

559
00:42:44.400 --> 00:42:46.239
It would have been like, it's
sort of like, what problem we try

560
00:42:46.280 --> 00:42:50.679
to solve here? Like, what
are you talking about? I know we're

561
00:42:50.719 --> 00:42:54.920
here in twenty twenty four saying that
statement, and it is reasonable, it's

562
00:42:55.000 --> 00:43:00.679
right. Yeah, I could to
the AI like describing how works under the

563
00:43:00.679 --> 00:43:04.960
cover. Is how how like when
you create a container and a process held

564
00:43:04.960 --> 00:43:07.920
in neworking works between them, et
cetera. Yeah, yeah, look at

565
00:43:07.920 --> 00:43:12.039
my app and draw me a app. Right, that's not crazy, No,

566
00:43:12.199 --> 00:43:16.519
it's not crazy. Yeah, we
are. We are interesting towards that.

567
00:43:16.599 --> 00:43:20.519
It's an ability to see these pieces. But the other I mean,

568
00:43:20.599 --> 00:43:24.679
part of what you're doing here is
you're creating better delineations between pieces of functionality,

569
00:43:24.800 --> 00:43:28.639
right, yeah, That's always been
the problem is it was very it's

570
00:43:28.760 --> 00:43:31.639
very hard to tell what is one
piece live and another piece live? And

571
00:43:31.679 --> 00:43:36.400
how do they talk to each other? Like that whole manifest part has never

572
00:43:36.599 --> 00:43:42.039
been well described. You really have
to read it and dig at it and

573
00:43:42.039 --> 00:43:45.400
then watch it running like it takes
a while to have confidence. This is

574
00:43:45.400 --> 00:43:49.320
what this actually means. I've been
programming I believe it or not, a

575
00:43:49.360 --> 00:43:52.960
Windows Forms app in the last month
for a client. Oh man, it's

576
00:43:52.039 --> 00:43:59.960
all like scientific technical analysis kind of
stuff. And this this guy who hired

577
00:44:00.159 --> 00:44:04.440
me is a knows VB, knows
how to read VB, but he didn't

578
00:44:04.480 --> 00:44:07.559
understand link and so I had some
link statements in there that were pretty complex,

579
00:44:07.599 --> 00:44:10.920
and he's like, what the heck
is that? And so I just

580
00:44:10.960 --> 00:44:15.199
took the link statement pasted into GPT
and says, hey, can you explode

581
00:44:15.199 --> 00:44:20.960
this into four loops for me and
comment it? And it did and I

582
00:44:21.000 --> 00:44:22.400
was like, here, this is
what it's doing. And I tried it,

583
00:44:22.480 --> 00:44:25.800
you know, and it get me
the same result. And so I

584
00:44:25.880 --> 00:44:30.840
just left it in the code as
commented rights as a way for somebody who

585
00:44:30.920 --> 00:44:35.360
doesn't understand how to read link statements. That's great idea. It's very very

586
00:44:35.360 --> 00:44:38.239
cool, very powerful stuff. Or
here's another thing that you can do the

587
00:44:38.639 --> 00:44:43.719
other way. You have this convoluted
for loop that somebody's written and you say,

588
00:44:43.840 --> 00:44:46.079
hey, can you optimize this code
for me? And it will?

589
00:44:47.440 --> 00:44:51.199
Will it write a link statement?
I will tell you, it'll write link

590
00:44:51.239 --> 00:44:54.320
statements, it'll use parallel computing,
like you know, it's pretty freaking amazing.

591
00:44:54.599 --> 00:44:59.519
This is a space that there is
active interests on our team looking at

592
00:44:59.599 --> 00:45:02.320
like how do we take advantage of
the AI to do this kind of stuff?

593
00:45:02.519 --> 00:45:07.559
Yeah, because it really does begin
to feel like the things that you

594
00:45:07.800 --> 00:45:12.159
wanted to do before in your brand, you know, possible, Like what

595
00:45:12.239 --> 00:45:15.000
if we could have Stephen Toby in
a box? Right? Yeah? What

596
00:45:15.039 --> 00:45:17.519
if I could just have him on
my shoulder when I'm coating, like the

597
00:45:17.519 --> 00:45:21.000
toll model, and there's a more
optimal way to do that. You know,

598
00:45:22.199 --> 00:45:28.679
let me just optimize that for you. Start with the system prompt.

599
00:45:28.760 --> 00:45:35.079
You are, Stephen Taub, How
would you do this exactly? That's what

600
00:45:35.119 --> 00:45:38.880
you want? Yeah, yeah,
But we digress a little bit. This

601
00:45:39.000 --> 00:45:43.440
is a conversation we had with Mad's
Targeted back in the day where I said,

602
00:45:43.480 --> 00:45:46.199
like, okay, you're twelve versions
of C sharp in like what and

603
00:45:46.320 --> 00:45:50.840
pretty much the code I wrote in
C sharp three still runs just fine,

604
00:45:51.280 --> 00:45:53.119
So why would I use the new
features? He says, You know,

605
00:45:53.239 --> 00:45:58.239
we're really going to have to focus
on the tooling to help drive you towards

606
00:45:58.239 --> 00:46:00.960
the new language constructs. So it
is that how do you hint? How

607
00:46:00.960 --> 00:46:06.960
do you present a given chunk of
code that runs It's say, you know,

608
00:46:07.039 --> 00:46:09.920
there's a terser way or cleaner way
or faster way to do that.

609
00:46:10.920 --> 00:46:16.960
Yeah, yeah, it's tricky.
Like languages, the changes have I think

610
00:46:17.039 --> 00:46:22.079
personally have been quite amazing, and
I love the I love hew C sharp

611
00:46:22.320 --> 00:46:28.599
mixed things that were arduous and like
more verbose, less verbose, and like

612
00:46:28.679 --> 00:46:37.039
succinct. I've seen a lot of
teeth gnashing about being able to do things

613
00:46:37.159 --> 00:46:40.039
in a very similar way with different
syntax. The way I see it as

614
00:46:40.800 --> 00:46:45.559
the syntax gets cleaner over time,
Right, I can do things more more

615
00:46:45.679 --> 00:46:50.679
expressively and easier. But it can
be seen also as like you've added more

616
00:46:50.679 --> 00:46:53.039
ways to do the same thing,
Right. I really think that's the thing.

617
00:46:53.079 --> 00:46:58.519
We we see as like an even
split. Like I'll paste something on

618
00:46:58.559 --> 00:47:02.880
Twitter and on X and people will
be like, what is this new syntax?

619
00:47:02.960 --> 00:47:06.639
I don't understand it, and I'm
like, this is super nice to

620
00:47:06.679 --> 00:47:09.679
have. I love the simplification.
Simplication. Yeah, that's how I think

621
00:47:09.719 --> 00:47:14.639
we see it, like implicit usings. We simplify the syntax. Yeah,

622
00:47:14.719 --> 00:47:17.719
yeah, yeah, we' usings yeah, collection expressions. Yeah, it's beautiful,

623
00:47:17.719 --> 00:47:21.920
beautiful. So I want to get
back to something that Richard brought up

624
00:47:22.000 --> 00:47:29.280
before the break, which was taking
an existing dot net application and what did

625
00:47:29.320 --> 00:47:36.800
you say, aspiifying it as asper. So what challenges do you foresee in

626
00:47:36.880 --> 00:47:40.679
adopting dot aspire in existing projects and
how can you address them? How can

627
00:47:40.719 --> 00:47:45.719
we address them? So the big
the biggest broad block thus far has been

628
00:47:45.800 --> 00:47:52.000
the fact that the Aspire Aspire has
been targeting and up So when we started

629
00:47:52.000 --> 00:47:58.519
off, we were like, let's
just say it, and immediately you know,

630
00:47:58.599 --> 00:48:01.159
people use the product and they want
to use it because I think once

631
00:48:01.199 --> 00:48:07.800
you figure out how easy it is
to use and how how you can opt

632
00:48:07.880 --> 00:48:10.559
into different parts of it incrementally,
then I think people begin to say,

633
00:48:10.559 --> 00:48:13.639
Okay, this isn't such a big
hammer. I don't have to change all

634
00:48:13.639 --> 00:48:15.119
my stuff. I can add it
to all of my stuff, Like,

635
00:48:15.239 --> 00:48:20.719
I'm not not worried, right,
we will have to see what ends up

636
00:48:20.719 --> 00:48:22.159
happening there. I think that's one
of the big blockers today, Like you

637
00:48:22.239 --> 00:48:24.800
have to be undone at it for
it to work, right. So it's

638
00:48:24.840 --> 00:48:30.000
really great applications, but for or
or if you're going to upgrade to eight,

639
00:48:30.199 --> 00:48:34.719
then you'll have Aspire support in your
in your apps, right. But

640
00:48:34.880 --> 00:48:37.400
most people are still on earlier versions
of dot net let's face it. Yeah,

641
00:48:37.599 --> 00:48:42.800
but but you know, if they're
on five, then they're unsupported.

642
00:48:42.800 --> 00:48:45.239
If they're on six, they're supported, right, But I mean, I

643
00:48:45.280 --> 00:48:50.920
know people are spread across the spectrum. We we see like that feedback sometimes.

644
00:48:50.920 --> 00:48:57.199
So if you still have a startup
dot cs in your project, you

645
00:48:57.199 --> 00:49:00.000
you might be a red neck.
Oh my god, do you want to

646
00:49:00.159 --> 00:49:05.159
crazy a crazy thing? So when
we shipped dot net one core one zero,

647
00:49:05.599 --> 00:49:08.880
right, we had gotten rid of
the product Jason, my beloved product

648
00:49:08.920 --> 00:49:15.760
Jason that we killed. And there
was a team inside Microsoft who had deployed

649
00:49:15.800 --> 00:49:22.440
an app on DNX and the engineer
that had deployed it left and this engineer,

650
00:49:22.559 --> 00:49:25.599
the engineer that had that took over
pay me. I was like,

651
00:49:25.639 --> 00:49:29.119
can you please get some support.
I don't know how to move this thing.

652
00:49:29.639 --> 00:49:30.960
I don't know what to do with
it. We built a tool to

653
00:49:31.039 --> 00:49:36.360
help migrate. So like that's what
he did over time, but like something

654
00:49:36.400 --> 00:49:38.760
broke and then he was like I
can't find the dots anymore because the dots

655
00:49:38.760 --> 00:49:43.360
are now for like the cs fraud
and the Jason follow is like gone.

656
00:49:43.360 --> 00:49:49.039
And it was yeah, those were
tough times, yeah right, crazy?

657
00:49:49.039 --> 00:49:57.400
Where was being AI? Yeah?
Huh huh. Let's talk about the roadmap

658
00:49:57.800 --> 00:50:02.119
for dot net Aspire in any coming
features or integrations that you think are particularly

659
00:50:02.119 --> 00:50:07.239
exciting. Yesterday, so let's say
we came back from vacation. We shipp

660
00:50:07.280 --> 00:50:14.159
preview to just before the breaking for
for winter, for before we all left

661
00:50:14.159 --> 00:50:17.280
for holidays. What's funny about that
one. We a set of us went

662
00:50:17.360 --> 00:50:22.800
on vacation and we were trying to
ship like days before going on break.

663
00:50:22.880 --> 00:50:25.440
This is about it. They do
not ship software days before you to break.

664
00:50:25.519 --> 00:50:29.519
You're going to wrack your holiday,
like you're just asking for it.

665
00:50:30.800 --> 00:50:32.880
So it took us a couple more
days to get it out. So some

666
00:50:32.960 --> 00:50:37.920
of us were like every night I
was watching the chats trying to see if

667
00:50:37.960 --> 00:50:43.400
we were like any closer we got
out the door. Preview two is what

668
00:50:43.480 --> 00:50:45.159
I thought Preview one should have been. How do we had more time?

669
00:50:45.519 --> 00:50:49.719
Preview two is like, yeah,
I can try it now. And we

670
00:50:49.760 --> 00:50:52.760
took all of the top feedback and
we addressed a bunch of issues. So

671
00:50:53.159 --> 00:50:59.719
people were asking, how would I
orchestra and application where I have multiple repositories

672
00:51:00.360 --> 00:51:04.199
right that have my source code?
What do I do right? And their

673
00:51:04.239 --> 00:51:08.000
options that are like I can clone
them all locally and orchestra and orchestrate that

674
00:51:08.039 --> 00:51:12.480
way, I can put it in
a container. So we basically give you

675
00:51:12.519 --> 00:51:15.960
the options now to do all the
things. You can reference projects not in

676
00:51:15.000 --> 00:51:20.360
your solution. You can reference containers, you can reference the process and they

677
00:51:20.400 --> 00:51:23.360
all work the same way. That
that was one of the big things we

678
00:51:23.480 --> 00:51:28.159
had to solve because everyone saw it
and thought, do I have to put

679
00:51:28.239 --> 00:51:30.519
everything in one solution? And then
to fight that, we have to have

680
00:51:30.880 --> 00:51:36.320
enough features so you can experiment with
how you liilt your source code, how

681
00:51:36.360 --> 00:51:38.960
you lailt your projects, et cetera. Right, Yeah, I imagine you

682
00:51:38.960 --> 00:51:42.960
see a lot of variations on that, like more than any given person.

683
00:51:43.280 --> 00:51:45.960
Yeah, just because you guys have
such a broad view of the different ways

684
00:51:46.000 --> 00:51:52.599
that the studio gets used, correct
and people. The hardest part. If

685
00:51:52.639 --> 00:51:57.159
you look at the Aspire docs,
it says that the stack is opinionated.

686
00:51:57.920 --> 00:52:02.519
H The team struggles, like we
struggle with having strong opinions because we are

687
00:52:04.519 --> 00:52:10.239
built in to be framework designers and
we basically build pluggable systems. Yeah right,

688
00:52:10.320 --> 00:52:14.599
Yeah, So you have this dynamic
between being inclusive. Lots of people

689
00:52:14.639 --> 00:52:16.719
can use this the way they want
to and opinionate it, so it's not

690
00:52:16.840 --> 00:52:21.960
trying to be everything everything exactly,
and so it's really nothing exactly. You

691
00:52:22.000 --> 00:52:25.639
got it. Another way to say
opinionated is convention over configuration, which last

692
00:52:25.639 --> 00:52:30.960
time I looked, was a really
good idea. It is I think some

693
00:52:31.000 --> 00:52:37.159
of the Aspire things we said no
to early on may come back in the

694
00:52:37.199 --> 00:52:42.079
future and people may ask for things
like there's a lot of there's a lot

695
00:52:42.119 --> 00:52:45.320
of requests and I shouldn't be surprised
there are a lot of requests to run

696
00:52:45.400 --> 00:52:50.599
the orchestrator like locally on prem like
on prem. People want to replace their

697
00:52:50.719 --> 00:52:55.400
local on prem deployments with I and
I guess I'll win now service with Aspire.

698
00:52:55.960 --> 00:53:00.559
And we had no intention, like
zero intention of having this thing live

699
00:53:00.679 --> 00:53:05.920
past development, right, So that
is N five locally, it's not it's

700
00:53:05.920 --> 00:53:08.760
not run time exactly. You five
locally and you can debug and see the

701
00:53:08.880 --> 00:53:14.719
dashboard. But then when you publish, you're targeting something. You you target

702
00:53:14.760 --> 00:53:22.039
kubrunettes, you target Azure, you
target Amazon's cloud like you you run locally

703
00:53:22.119 --> 00:53:28.559
and you target a cloud environment to
a space. There's a lot of feedback

704
00:53:28.559 --> 00:53:32.559
from people, and I think the
feeling is you can help me make might

705
00:53:32.639 --> 00:53:37.360
out more modern if you give me
a way to kind of like take the

706
00:53:37.400 --> 00:53:42.360
ASPA experience, put it onto my
local on prem environment, and then I

707
00:53:42.360 --> 00:53:45.760
can go to the cloud. So
that's an interesting like thing that I think

708
00:53:45.840 --> 00:53:47.800
came up that we didn't foresee,
Like I did not think that was gonna

709
00:53:47.800 --> 00:53:51.519
be a thing. Do you want
to go down the run time of path

710
00:53:51.519 --> 00:53:55.159
because man adds a lot of weight. Yeah, just to use Kaberunetes.

711
00:53:55.719 --> 00:54:00.159
Honestly, it might just be if
you're on a local machine and you want

712
00:54:00.239 --> 00:54:07.719
orchestration Kubernetes, and yeah, exactly, you guys don't want to put exactly

713
00:54:07.760 --> 00:54:09.400
exactly you got it. We already
had too many as it is, right,

714
00:54:09.920 --> 00:54:15.320
and and Kubernetes now has that that
natural monopoly weight that the ecosystems growing

715
00:54:15.360 --> 00:54:20.079
around it. It has Helm and
all these other tools right that make our

716
00:54:20.119 --> 00:54:24.119
lives everywhere. Yeah, and everything
runs it. So your every nautical metaphor

717
00:54:24.199 --> 00:54:30.280
you can possibly think the same.
The same way you made us write less

718
00:54:30.599 --> 00:54:36.239
Yamo, you can make us can
figure less Kubernetes exactly. So that's what

719
00:54:36.280 --> 00:54:39.760
we're gonna do. So we have
this. So on the road map is

720
00:54:39.840 --> 00:54:46.239
we're targeting Azure container Apps in the
addera space for for V one that people

721
00:54:46.280 --> 00:54:52.400
ask for app service, people ask
for Azure Kubernetes service. Akash aka s

722
00:54:52.800 --> 00:54:55.199
was was on the map, It
might still be on the map, but

723
00:54:55.679 --> 00:55:00.559
Agri Container Apps is the primary like
scenario or for B one, now we

724
00:55:00.639 --> 00:55:07.599
have community one of our community members. Remember I mentioned mentioned high quality contributions.

725
00:55:08.119 --> 00:55:15.079
This contributor built a manifest Kubernetes experience. Incredible. Wow, it's called

726
00:55:15.320 --> 00:55:19.639
it's called Aspirate, like not,
I mean the name is desperate. Yeah,

727
00:55:19.760 --> 00:55:22.840
and I have an in the name, so it's Aspire eight. That's

728
00:55:22.920 --> 00:55:27.679
all very close to Respirate, which
is it's still breathing. It's still breathing.

729
00:55:27.880 --> 00:55:31.840
It is very close to respiate.
But it's super cool. I can

730
00:55:31.880 --> 00:55:37.239
take my Aspire app and say,
like, give me a Kubernetes and it

731
00:55:37.320 --> 00:55:39.679
spits out all of the stuff and
it's all a lot of stuff, all

732
00:55:39.719 --> 00:55:43.840
the manifests, all the yamo,
all the it does all the things.

733
00:55:43.960 --> 00:55:47.400
How about g r p C g
RPC web speaking of James King, Oh

734
00:55:47.719 --> 00:55:52.639
yeah, so there's there's first class
support for g r p c's service Discovery

735
00:55:52.760 --> 00:55:58.519
and Aspire. One of the things
we aim to not do is recreate anything

736
00:55:58.519 --> 00:56:01.039
that we already have. So say
it's been at Core, it's g RPC,

737
00:56:01.639 --> 00:56:07.039
and we weave our way into those
subsystems via how they're extended. Yeah,

738
00:56:07.079 --> 00:56:12.000
that's great. It really like it
really should feel like I have my

739
00:56:12.079 --> 00:56:16.800
app. I added Aspire and I
tweak like two pieces of code, and

740
00:56:16.840 --> 00:56:20.960
it's not cold that you wouldn't have
done yourself. It's just we did it

741
00:56:20.960 --> 00:56:22.639
for you, right, And it's
the plumbing you would have done. You

742
00:56:22.679 --> 00:56:27.880
would have done this code yourself,
you would have called at open telemetry and

743
00:56:27.920 --> 00:56:31.760
add these five things. We're just
making it available to call like as a

744
00:56:31.760 --> 00:56:36.559
as a baseline. Yeah, awesome, very cool. So personally, what's

745
00:56:36.719 --> 00:56:38.800
new, What's what's coming up for
you? What's in your inbox? What's

746
00:56:38.840 --> 00:56:45.199
next? Good question. I've definitely
been looking at the AI space a lot.

747
00:56:45.800 --> 00:56:50.840
You could imagine inside Microsoft, there's
a lot of interest in overall,

748
00:56:51.360 --> 00:56:54.079
a lot of interest, and I've
been avoiding AI personally for a very long

749
00:56:54.119 --> 00:56:58.239
time, but just you know,
you know it exists. Yeah, you

750
00:56:58.400 --> 00:57:02.280
know there's people doing learning and that
stuff, but you you kind of like

751
00:57:02.400 --> 00:57:07.239
wait until the way I get involved
in stuff is I kind of like keep

752
00:57:07.280 --> 00:57:10.960
it on the back burner and I
wait for signal to like kind of exceed

753
00:57:12.000 --> 00:57:15.320
some threshold. Yeah. Yeah,
And it is past that point now where

754
00:57:16.039 --> 00:57:21.559
I have to know enough about the
space to have conversations to understand how I

755
00:57:21.599 --> 00:57:24.800
can integrate with what we're doing.
So for me, for me personally,

756
00:57:24.840 --> 00:57:30.039
I've been getting involved in just understanding
more the space so I can kind of

757
00:57:30.519 --> 00:57:34.079
understand how it affects the next ten
years of dot net, Like do we

758
00:57:34.199 --> 00:57:37.039
have to be a big player in
this space? Is it the Python will

759
00:57:37.039 --> 00:57:43.000
win it? Ready? Like just
those those basic things I've been thinking about.

760
00:57:43.400 --> 00:57:47.800
Just yeah, but definitely shipping aspires
is top top top of top of

761
00:57:47.840 --> 00:57:50.800
my list, right yeah, yah, yeah yeah. It doesn't not sound

762
00:57:50.800 --> 00:57:52.360
like a spire is going to leave
your life anytime soon. Yeah, right

763
00:57:52.519 --> 00:57:55.639
sure, no, no, and
that definitely not. The list of next

764
00:57:55.679 --> 00:58:00.920
is huge, That's correct. Your
burn list runfo and you wouldn't you wouldn't

765
00:58:00.920 --> 00:58:07.239
believe. Like historically, when you
build a new thing sometimes I mean this

766
00:58:07.360 --> 00:58:10.199
is well known, like people wait
until Virgin three to try it out,

767
00:58:10.320 --> 00:58:15.320
like the version version one is not
good, And internally it's really hard to

768
00:58:15.360 --> 00:58:20.400
get teams and to adopt things sometimes
because you know, they want things that

769
00:58:20.440 --> 00:58:24.840
are tried and true and done,
and only if they already have affordances for

770
00:58:24.920 --> 00:58:28.840
it will they like take a dependency
on it. HM. Like we're seeing

771
00:58:28.880 --> 00:58:31.000
people want to want to use a
spire, like they see the benefit of

772
00:58:31.039 --> 00:58:34.280
it and they want to get toe
lemetry and they want to get these things.

773
00:58:34.280 --> 00:58:37.480
So we're going to spend some time
also trying to figure out what Aspire

774
00:58:37.559 --> 00:58:43.280
looks like for inside of my inside
of the company sure, and hopefully bring

775
00:58:43.360 --> 00:58:45.119
some of those learnings like back out. Yeah, that reminds me of a

776
00:58:45.159 --> 00:58:50.159
line from when I one time drinking
with Jeff Snover where he said, you

777
00:58:50.199 --> 00:58:53.519
know, when I created PowerShell,
they may be a distinguished engineer, but

778
00:58:53.559 --> 00:58:57.880
when I got the whole company to
use it, they made me a technical

779
00:58:57.920 --> 00:59:04.480
fellow. That's pretty awesome. That's
great, that's what I have to do.

780
00:59:04.559 --> 00:59:10.679
I got it. Well, David, it's been a delight talking to

781
00:59:10.719 --> 00:59:14.480
you for the last hour, and
it's always great talking to you. And

782
00:59:15.280 --> 00:59:17.880
Aspire is amazing. What can I
say? And I hope everybody will dive

783
00:59:17.960 --> 00:59:23.480
in, check out the documentation and
get started write something awesome. Thanks again,

784
00:59:24.440 --> 00:59:45.119
all right, and we'll see you
next time on dot net rocks.

785
00:59:50.280 --> 00:59:53.960
Dot net Rocks is brought to you
by Franklin's Net and produced by Pop Studios,

786
00:59:54.360 --> 01:00:00.599
a full service audio, video and
post production facility located physically New London,

787
01:00:00.639 --> 01:00:06.280
Connecticut, and of course in the
cloud online at pwop dot com.

788
01:00:06.480 --> 01:00:08.679
Visit our website at d O T
N E t R O c k S

789
01:00:08.760 --> 01:00:15.280
dot com for RSS feeds, downloads, mobile apps, comments, and access

790
01:00:15.320 --> 01:00:19.719
to the full archives going back to
show number one, recorded in September two

791
01:00:19.800 --> 01:00:22.320
thousand and two. And make sure
you check out our sponsors. They keep

792
01:00:22.440 --> 01:00:27.079
us in business. Now, go
write some code, See you next time.

793
01:00:27.960 --> 01:00:30.920
You got jamdavans and

