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
