Speaker 1: How'd you like to listen to dot NetRocks with no ads?
Speaker 2: Easy?
Speaker 1: Become a patron for just five dollars a month. You
get access to a private RSS feed where all the
shows have no ads. Twenty dollars a month, we'll get
you that and a special dot NetRocks patron mug. Sign
up now at Patreon dot dot NetRocks dot com. Hey,
welcome back to dot net rocks. I'm Carl Franklin and
Averchard Campbell. We're here again for your listening pleasure and
you're geeking out pleasure and all of the things that
come with dot NetRocks. It's not just about dot net
as you know. Geez, We've been doing this since two
thousand and two, Richard, can you believe it?
Speaker 2: Yeah?
Speaker 3: Well, wow, be clear. I was a guest in two
thousand and four. I only came on routinely two thousand
and vivees, Oh, come on, man, you know I'm the
new guy, the new guy. Yeah.
Speaker 1: It is kind of funny when people ask us, you know, hey,
do you have ever heard of podcasts? I'm like, no,
never heard of never heard of them. And then when
I actually tell them, you know, like what what? Okay,
let's get into better no framework.
Speaker 2: All right, man, what do you go? You know what,
this is.
Speaker 1: The first time I've actually looked at Microsoft power toys.
Speaker 3: Oh really, yeah, I just I've done shows over on
run as on them. Well yeah, I think we've even
done them on Rock. Yeah, but I mean, I'm just
I'm not one to do that, right but right. However,
I did notice that a lot of Mark Rosenovic's tools
have made their way into power tools, such as zoom It,
you know, And so I took a look and there's
one thing in there that just lows me away. Then
I'm going to start using right away. It's advanced paced.
Oh so, there's a tool that.
Speaker 1: Enables you to paste the content from your clipboard into
any format needed. It can paste as plain text, mark
down Jason, a text file, an HTML file, or a
PNG file directly within the user experience, or with a
direct keystroke invoke and get this. It can also extract
and paste the text directly from an image in your clipboard,
or transcode audio or video from your clipboard into an
MP three or MP four file.
Speaker 2: What. Yeah, that's impressive. When did this happen? That's crazy?
This is some good stuff.
Speaker 3: Yeah, there's a lot. I mean, there's so many zoom
it's an obvious win. Yeah. The mouse utilities, you know,
I have a lot of screens. Yeah, and they're not
all symmetrical, so being able to turn on where the
hell's the mouse?
Speaker 2: You have it light up?
Speaker 1: It's I know, I have three screens, and every time
Kelly and I play like a game or something, she's
like she's ticking the mouse and then she's like rolling
it around on the desktop to find out where it is.
Speaker 2: Where is the mouse? Where's the mouse? Look out?
Speaker 3: The mouse finders great, The imageer sizer is amazing, Like
just a great tool. There's so many good tools in this.
If you're not using power toys, you're missing out.
Speaker 1: Oh I totally have been. So I am definitely installed.
I've already downloaded. I didn't install it before the show,
but definitely installing it. This is good, good, good, good.
Speaker 2: Yes.
Speaker 1: Yeah, So Richard, before we do the comment, let's talk
about nineteen forty two.
Speaker 2: Okay, what do you want to talk about.
Speaker 1: Well, many significant events took place in nineteen forty two,
many many, including the Battle of Los Angeles, the Second
Battle of l La Main, and the Battle of midway
right where the US Navy defeated the Japanese Navy, which
was a turning point.
Speaker 2: Of the war. Yeah, they never recovered.
Speaker 1: Right, And while in Germany, Nazi officials met to plan
the quote unquote Final Solution of God and Ann Frank's
family went into hiding. Also teen forty two, and this
is probably what you were going to talk about. The
Manhattan Project needed to create a chain reaction, a crucial
step toward proving that it would be possible to make
an atomic bomb. And these scientists achieved this sustained nuclear reaction,
the first created by humans, on December two, nineteen forty two,
in a squash court under the stands of the.
Speaker 2: Stag under the squash court.
Speaker 1: Yeah, yeah, under the stands the stag field at the
University of Chicago.
Speaker 2: Now that's America. Now listen.
Speaker 3: Pile one was not a lot of power, right, It
was just a little bit, but it was Remember this
was all theoretical. Is it actually possible to have a
chain reaction to heat up?
Speaker 2: Right?
Speaker 3: And so literally there's they learned that they had to
use graphite, and it had to be very pure graph
light or it would burn blocks of graphite, blocks of
aluminum of uranium oxide blocks of metallic uranium, and they
would literally slide them in these tubes closer together, further apart,
and so forth. So they got to they were pursuing
this thing called K, the rate of reaction. They were
trying to get a K above one. So there was
an increasing chain reaction.
Speaker 2: But not a lot above one.
Speaker 3: But it just sort of proved the point that criticality
was a real thing. You know, they the physicists had
figured this out. And this is weird, right, And most
of the time we have empirical data, like we know,
this natural thing does this thing, and then we use
science to figure out why it does it. Right, here
was science saying this should happen, and now that we're
physically doing it to prove that it did app.
Speaker 1: Yeah, wow, big big invention innovation there. But I just
like how you know it was like a squash court
at the University of Chicago.
Speaker 3: Yeah yeah, And not only that, but they left it
down there for years before they finally we should take
that away.
Speaker 1: Yeah, anything else you want to say about nineteen forty two.
Speaker 3: This was the year of the creation of cyanoacrolytes, or
what you would know as super Glue. Oh Eastman Kodak.
Speaker 1: Superglue is currently holding one of the arms onto my
metaquest two.
Speaker 2: There you go, because this is funny.
Speaker 1: When I went to, you know, figure out how to
take it apart and put things on, I misread the
instructions and ended up pulling one of the straps off.
So oops, Yeah, that wasn't good.
Speaker 2: But super Glues to the rescue.
Speaker 3: This is also the forty two is also the first
year that they sort of began the idea of radio astronomy.
There was so much advancements in radar during the war
that the idea that we could actually detect radio ways
from other sources. So they're trying to read their own
radio waves to find aircraft coming towards them, but they
realized there's other ones going on and these were actually
emissions coming from the Sun, and so the research that
guys like James Stanley Hay did in the early days
became radio astronomy. But the first sort of written down
version of there are radio waves coming from the summays
in nineteen forty two.
Speaker 1: Well, I guess that's enough geeking out for now. Who's
talking to us today?
Speaker 3: Richard grabbed a comment off show nineteen oh nine, the
one we did back in augusta twenty four with jah
Shen Shang, which was talking about Aspire, specifically an approach
to using containers because the spier gives you a framework
to kind of go about that. We got this great
comment from Michael Warrence who said, a great episode. Although
I noticed a slight weariness in Carl at the start
of this episode. I know it's been a long strange
journey for you guys, but you do a great job
that is widely appreciated developer community. Still thanks, But in
this episode, hearing Jian Shen's down to earth approach, which
is what we really liked about talking here, which she
immediately practical, super easy to engage with. All my knowledge
has come from screwon around and getting burned. The great
thing about Donna Rodgs is the way a given topic
off and triggers super interesting chats about deeper subjects. During
your conversation, a couple of topics emerged. Opinionatedness, this is
such a word, and also the definition of micro services,
which we pressed on both right and Michael goes out
to say, it seems that the fellow developers have been
most opposed to opinionated software are the most opinionated developers. Yeah,
it's usually the person who wants to be able to
do whatever they want, however they want.
Speaker 4: Right.
Speaker 3: It gets annoyed when tools are built to be opinioned.
They want ultimate flexibility, which creates more problems I think
than it solved.
Speaker 2: Yeah, my opinion, not yours. Right.
Speaker 3: As for micro services, all I can say is that
all the software I've worked on the past ten years
has distributed components in it which all need to be
coordinated correctly.
Speaker 2: For the application to run.
Speaker 3: And as they used to say, the sum is greater
than the whole, right, So having an opinionated orchestration approach
like a spire is great. Dashboard telemetry, service discovery all
out of the box. And I very much agree on
XML XAMAL YAML versus Jason. I thought Jason was a
great improvement to XML, but I can see the place
for XML and MAUI to continue the concept of markup.
It was a great guest and a great show. Keep
on rocking.
Speaker 2: You know.
Speaker 1: I had a meeting with the customer today and they
asked me if I'd ever done EXSLT transformed. Oh my goodness,
and I said, Yeah, back in the early two thousands,
I tried it once and I had to have therapy afterwards.
Speaker 2: Yeah, we all did it. May rest in peace. Yeah,
so it's okay, we can let it go.
Speaker 1: Yeah. Well, and what I got to say about that
comment is that, yeah, I love dot net Aspire because
you know, it's opinion, ain't but it's flexible. You know. Yeah,
we're going with my opinion first, but if you've got
another opinion, it's okay.
Speaker 2: You swap it in and it's all right.
Speaker 3: I just like, Yeah, I like that ability to experiment,
to try different services and so forth, to not be
locked into something right up front.
Speaker 2: Right.
Speaker 3: Yeah, so, Michael, thank you so much for your comment.
Any copy of music Cobey is on its way to you.
And if you'd like a copy of music Code, I
write a comment on the website at dot net rocks
dot com or all the facebooks you publish every show there,
and you comment there and I read on the show.
Speaker 2: We'll send your copy. Music go buy a music.
Speaker 1: Code by has a new track track twenty two, and
the orders are coming in, and not only just for
twenty two, but for the collections. We have MP three,
Wave and Flak collections now all twenty two track. If
you're a flacker, yeah, if you're a flacker.
Speaker 2: Uh.
Speaker 1: Maybe people don't know what flak is. Flak is lossless
like wave, but it's half the size.
Speaker 2: Yeah.
Speaker 1: So you can download the flack zip file which is
half the size. Unzip it, convert him back to waves
and you've got perfect audio again.
Speaker 2: Nice.
Speaker 1: Yeah, so it's good. All right, let's bring in our
friend Rob Richardson. We haven't talked to in a long time.
Speaker 2: Too long. Yeah.
Speaker 1: So Rob is a software craftsman building web properties in ASP,
neut and Node, React and View. He is a Microsoft MVP,
a published author, frequent speaker at conferences, user groups, and
community events, and a diligent teacher and student of high
quality software development. You can find his talks on robrich
dot org, slash presentations and follow him on masthodon at,
Rob rich at Hackeyderm dot io. Welcome back, old friend.
How are you, dude?
Speaker 4: Well, it's great to be here. It's fun to be
able to dig into all things code.
Speaker 2: Yeah, sure is.
Speaker 1: I was hanging out with you and a bunch of
people after Tulsa Users Group, and that's when I almost
did a double take because the last time I saw
you in person, you looked like a yogi. I did
you know long hair, long beard? I mean you're and
you're tall. So yeah, it was quite a striking presence.
And now short hair, no facial hair. You like cleaning
up real good?
Speaker 4: Thanks?
Speaker 2: Yeah.
Speaker 4: Yeah, my niece has started calling me sasquatch.
Speaker 2: Yeah, there's a line. Do you just grunt er?
Speaker 4: Yeah? After a while I was Uncle Harry dude, and
now I'm uncle Unhirry dude.
Speaker 1: Ye.
Speaker 2: Anyway, what you've been doing lately.
Speaker 4: I've been doing a bunch of conference speaking and a
bunch of coding. It's fun to dig into all things
dot net and dot net Aspire came about, which is
really cool. It kind of brings open telemetry into view,
and so it's been fun to dig into the DevOps
parts of all the things doctor and kupernettes, but also
fun to kind of dig into the code too. With
open telemetry and dot net Aspire, it's been a lot
of fun.
Speaker 1: Do you think more people are using open telemetry as
a result of embracing dot net Aspire that otherwise would
not have I.
Speaker 4: Think so open telemetry has kind of become the de
facto standard for how we do logging, tracing and metrics,
and so it's getting built into appliances and software frameworks.
And so the really cool part is now we get
to play with that in dot net as well. You know,
we've already always had activities and interesting things there, but
now because it's a very well paved paths it works
out really well.
Speaker 1: Yeah, isn't Azure app insights using open telemetry in the
background now?
Speaker 2: I think?
Speaker 4: So it becomes an open telemetry sink in a really
elegant way. Yeah, it did speak its own protocol for
a time, but yeah, we're all kind of moving towards
open telemetry as the protocol for how to do these things.
Speaker 1: I think the first time that we heard about open
telemetry was with Leila in Porto, and yeah, kind of
kind of blew our mind. But I also thought about
all of the third party telemetry packages that you could
buy or subscribe to, you know, and what was their
reaction to to it. And you don't really hear too
much about these guys anymore, although I don't. I don't,
but maybe you do.
Speaker 4: Yeah, the cool part is now that we kind of
have reached a standard. Maybe we don't mind. You know,
I can still pipe it off to Splunk or new
Relic or wherever I want to send it, but now
we're all speaking the same protocol.
Speaker 2: Yeah.
Speaker 4: So for example, I was futzing with engine X and
I'm like, hey, I wonder if engine X can do
open telemetry.
Speaker 2: YEP.
Speaker 4: I just pull in the engine X protocol and the
way it goes and now I get tracing through Engine
X on the way past. It's really cool.
Speaker 2: Just comes by default. Yeah.
Speaker 3: Yeah, And that's the whole thing is like it's part
of the plumbing. It kind of it's there automatically, like
you've got to fight to turn it off. It's just
normally there and it complies all these standards, so it
appears everywhere like that's the advantage. It's just because they
open tell them stuff really comes out of the Linux world.
Speaker 2: It's just we had to adopt it. We're kind of
late comers to this.
Speaker 4: Thing, right, And it's not so much that I have
to fight to turn it off, but rather the moment
that I handed a place to go, it'll just light up.
And so until I tell it where to go, then
it really doesn't impact my app at all.
Speaker 2: Yeah, and it's just it's yeah, it's just lost bits.
They don't go nowhere, right, Yeah, that's a good point.
Speaker 1: And people may think that, you know, I don't want
to turn something on that's going to take my cycles
in the background, and you know, steel performance and blah
blah blah.
Speaker 2: But you're right, unless.
Speaker 1: Unless you can figure it, it's just sitting there.
Speaker 2: Yeah.
Speaker 4: And there is a little bit of a sharp edge
right there, because well, as I'm working with these activities
inside of dot net, I may go reach for the
current activity and if nothing's listening, it could be NOLL.
So I do need to check to see if it's
NOLL on the way past.
Speaker 2: Right, Yeah, we dot net programmers have gotten used to that. Yeah,
nols will never hurt you. Well, maybe a little. Well.
Speaker 1: The language, though, sea sharp really evolved to handle knowles,
didn't it.
Speaker 4: Yeah, now that we have noble reference types, this is
really not a big deal.
Speaker 2: It's not a big deal.
Speaker 1: And the c sharp expressions to if noel do this,
if not do that, I think you can't read them, but.
Speaker 2: Certainly is expressive.
Speaker 4: Well, the Coole syntax is that we just put a
question mark before the dot and you know, coding and
audio is always weird. Yeah, but like that same syntax
works in JavaScript and in other languages as well. So
I think as a programming community we've kind of figured
out that NOLL handling is easy. You just question mark
first and it just works.
Speaker 1: It's great, right, And if you're using visual Studio, Copilot's
going to tell you the rest of it anyway. Just
hit tab, Yeah, question mark dot tab.
Speaker 4: There you go.
Speaker 2: What could happen?
Speaker 3: Yeah, it's funny how much we're copilots now, reflect like
already it's only been a couple of years and we're
already like, yeah, you just do it this way.
Speaker 2: Yeah. I like Copilot finish that for me. I love that.
Speaker 4: In the latest VS Code there's an experiment where Copilot
has a Clippy icon.
Speaker 2: Ah. Oh no, we kept threatening to bring that back.
Why not?
Speaker 3: Why what's wrong with a paper clip? Animated paper clips
are your friend? No?
Speaker 2: No, they're not.
Speaker 3: Can't have a little fun, They're evil? Yeah, they the
whole trick there. You know what went wrong with Clippy
back in the day is the interruption. You think about
how much smarter we are with you access today, Well,
how carefully studio tries not to interrupt you, tries to
still provide the hint, the swiggle or the little light
up tool or all of those things, that there's something
I could help you with here without actually interrupting your food.
Speaker 1: Well, is it that, Richard, or is it that we've
all become much more eighty eight so we don't notice
it because everything interrupts us all the time. I tend
to think it's somewhere in the middle degrees of interruption.
I thought Clippy died a long time ago. You know, hey,
it did. Is that Is that a business graver or
a personal grave you're digging?
Speaker 2: Can I help you with that?
Speaker 4: And what was hilarious about Clippy was how irrelevant the
suggestions were, Right, I think, you know, co Pilot is
so much more relevant now and that can be really
really helpful.
Speaker 3: And Aaron lies the point, right, It's like, I don't
mind you interrupting me if you're actually providing me help,
like you're going to shorten my effort. I just you know,
we're all pretty skeptical of that because we've had pretty
bad experiences with right, well had options.
Speaker 1: Yeah, I mean AI for coding help in general is
really good.
Speaker 2: Yeah.
Speaker 1: I was just today I'm working on an old project
that needs to be brought into the you know, twenty
first century. Starting there with, there was no models. You know,
the models were part of a SPX pages that were
all combined with Java script, and so there was no
fresh model. So the first thing I had to do
is go to the database. And I know that there's
ways to scaffold that, but I just did a create
two clipboard for a table, pasted into chat GPT and said, hey,
make me a class from this. I was like, yeah,
no problem.
Speaker 3: It's great because conversational mindset with your software is just interesting, right, Yeah,
And I think the interesting part of that is you
would do this with a person anyway, and you tend
to make better software when you explain yourself.
Speaker 2: Yeah.
Speaker 3: How many times have I gone to write something in
stack overflow and the process of writing it answered it? Yeah,
and then I've never posted it absolutely, And so this
tool stimulates that behavior really well. Rubber ducking.
Speaker 2: You're ducking all the time.
Speaker 4: Interesting thing about that process though, Yeah, I spent the
time kind of interviewing myself to figure out the proper question.
And now that I'm on stack overflow and I have
figured it out part of me wants to just ask
the question and then answer it because good for tomorrow
or next week, some ignorant developer me is going to
ask that question again, and so can I pave the
path a little bit better for the next generation m.
Speaker 2: M, yeah, the next generation of you.
Speaker 1: Yeah.
Speaker 4: What's really annoying is when I'm really struggling with something
and I go to Google it and I find this
really cool post on my blog explaining it, and I'm like,
oh wait.
Speaker 3: I figured this out a while Well that was Handsoman's line, right,
I'm just writing this down so I don't have to
remember it because I'm.
Speaker 1: Not gonna yea And then anytime anybody asks him a question,
he just answers it with a ur l.
Speaker 3: Yeah it's not real sociable, but okay, now sufficient.
Speaker 2: True enough?
Speaker 3: So you you've already Carl's already said scaffold, but I
heard it's a dirty word with dot net aspire. What
is is dot aspire scaffolding or is it a framework?
Speaker 2: Like? Because what is it?
Speaker 4: And that's one of the weird things is as we
look at dot net Aspire, we kind of go, what
is it? You know, what are we trying to solve
here what is and we say words like open telemetry
and service discovery and all those kind of get around
the topic. But yeah, it is kind of difficult to quantify.
The biggest purpose of dot Net Aspire is to help
us fall into the pit of success, right, to help
us build distributed software. And so there's a whole bunch
of stuff in there to facilitate this, all of the
web's best practices like open telemetry and service discovery and
injecting environment variables to do cool things. But as we
start peeling the onion there, then we end up with
just really cool experiences that allow us to do really
fun things. And so in there is launching projects all together.
Project tie did this for us back in the day,
where we could say, hey, I want to get this
project to call that project, and I don't want to
have to figure out open ports, just like kind of
do that. And so then we also get really cool
container orchestration where we can say and start this container
as part of it, and if it's a database container,
let me inject in the data that I need to
be able to spin it up. And so now we
can orchestrate containers and dot net projects and command line
executables and inject environment variable so that they can all
get to talk to each other. And that's a big
piece of it. But then we also have kind of
the piece coming back where we can say, well, let's
collect all the logs and traces and metrics and surface
them in a really cool discoverable dashboard so that no
longer do you have to figure out how does this
call that, what was the error there, which console window
was it? And so there's that part of it, But
then there's also another part of it of simplifying dot
net experiences. So we have a bunch of two projects
that it creates, the app host project, but also the
service defaults project. And in that service defaults project, it
will rig up health checks, and it will rig up
open telemetry, and it will rig up all kinds of
interesting things. But unlike some of the other places where
they kind of hide that away, they're actually giving us
the code, so if we have different opinions, we can
express those opinions in there too. And then as part
of that, there are dot net Aspire components that just
make connection strings kind of melt away, so no longer
do I need to rig up the details of how
this connects to that or even how this connects to
that database. I just kind of say, hey, I would
like this Aspire component that hooks me to, for example,
Postcress or redd Us, and then with an app host,
I say, oh, and by the way, spin up postgrass
or redd Us. And now there aren't connection strings in
my application at all.
Speaker 2: Right.
Speaker 4: Dot net Aspire just kind of handles that with environment
variables poked into it. And so it's all of these pieces.
It's the dot net best practices at the service discovery,
it's the launching multiple things at the same time. It's
the simplifying configuration pieces. And because it's all of those
things kind of wrapped into one, then we kind of go,
well what is this? And it's really easy then to say, well,
this is huge and overwhelming, and I have opinions on
that and I don't want to do that. But what's
beautiful about dot net Aspire is that I can use
as much or as little of it as I want.
And so if I like this opinion, I can do that,
and if I don't like this opinion, I can do
something else.
Speaker 1: Yeah, and the thing that the red flag goes off
in my head probably a lot of listeners who aren't
using this and who don't have experience with it, is, well,
how am I going to know how to do that?
Speaker 2: Like?
Speaker 1: How am I going to say? Am I going to
be ab test you know, my way versus Aspire's way?
And am I going to screw anything up if I
change any configuration?
Speaker 2: Yeah?
Speaker 1: You kind of have to understand the whole thing. It's
kind of like co generators. You know, stuff that generates code.
You use it and it's great, but if you don't
really know what it's generating.
Speaker 2: Should you?
Speaker 1: How do you trust it? How do you know when
things go wrong what to do, how to fix it?
So there's some trepidation I think among some people to
jump in because they think, oh, this is going to
do all this work for me. Where am I going
to look when something doesn't do what I wanted to do?
Speaker 4: And the cool part there is, for the most part,
the majority of open telemetry can be a development tool.
So it's not like I'm expressing opinions into production that
I may not agree with or may do ut understand.
But instead I can say, well, let me see if
this makes my developers more productive, and I'll deploy the
way I deploy today, or maybe I'll even rig up
connection strings the way I do it today. But let
me in development start up all the micro services that
I need to be able to accomplish this, startup containerized
data stores or other dependencies. And if that's helpful, then
that's great. Maybe I can retire the doctor composed file
that I was using before, But if it isn't, then yeah,
it's just a new get package. I don't need to.
You know, I had a friend that talked about, well,
it's kind of nice, but you have to make it
look like Chicago. Well what if I wanted to make
it look like Chicago? And d net Aspire has some opinions,
but doesn't really force those opinions on you. If you
don't want it to look like Chicago, then don't.
Speaker 2: Okay Chicago meaning the version of Windows.
Speaker 4: Well, it was like, well, I can configure this one
little thing and I can adjust my car in a
certain way, But now I have to make the skyline
look like Chicago. I see, And what if I don't
like Chicago? What if I like New York or what
if I like the country?
Speaker 1: Right, But it's not really a visual style, it's a yeah,
it's stuff that helps you on the back.
Speaker 2: End with your plumbing code.
Speaker 4: Really yeah, yeah, exactly. It's configuration details, not so much
user experience details.
Speaker 1: I like to think of Aspire as a sort of
a gigantic visual studio template, you know, if you think
of it that way, like when you when you go
to create a new project, you create a Blazer project,
you can create a you know, Docker whatever you're going
to do, asp Net, empty core, and there's some stuff
that's set up for you there to make it easy
for you to get started. Yeah, if it's a Blazer project,
you're going to delete the counterpage, and you're going to
delete the weather page, or you might not even include
those at all, but at least you know where you're starting, right,
And I think of Aspires like that. When you create
an Aspire project, Yeah, you got some checks and some
options and things, and then you've started and it's already
done so many things for you that you probably are
going to do yourself at some point, but they're already done.
So that makes it easy to discover how Aspire works,
just by creating a project and seeing what you get.
Speaker 4: Yeah, the new project template for Aspire is amazing. One
of the things that I do. And the talk that
you actually saw in Tulsa was highlight how you might
get started with an existing project as well. It's not
like you can't do dot net Aspire inside of an
existing thing. And inside an existing project, you already have
configuration details, you already have logging, you already have connection strings,
and so you can just not use those opinions from
dot net Aspire and instead just use it as an
open telemetry sink a dashboard.
Speaker 1: I think I said this before on a different show,
but one of my customers we did that for them.
We added Aspire to their existing application. The only problem
we really had, ironically was with Polly HM, you know,
because of the difference between using polydirectly and then using
the HTDP request factory. I think it was the HDP
client factory. Yeah, yeah, those Poly guys, which is I know,
good thing. We're not like them, I know.
Speaker 2: Screw those guys.
Speaker 3: But he's in poll part of a spire like it's
deployed a lot as part of the scaffolding.
Speaker 4: It's one of the best practices that it pulls in
part of the service defaults. And if we like that opinion,
we definitely can and if we don't, we can rip
it up.
Speaker 2: Right.
Speaker 1: But here's the thing, though, Polly has a project. If
you have it in your project, right, and then you
go to using HTDP client factory that uses the stuff
from Polly that's in dot net core. So it's already
doing or doing a resilient strategy. Now you've got to
pick one or the other. That's the thing.
Speaker 2: Too many resilient strategies at once.
Speaker 4: Yeah, yeah, yeah, it's like too many cashes.
Speaker 2: Yeah, you already have a cash? Would you like to
cash the cash? No, you really shouldn't do that. That's
not a good idea. Oh, not a good idea.
Speaker 3: Yeah, we should take a break for a minute, friends, Yeah,
let's take a break. We'll be right back after these
very important messages. And as a reminder, if you don't
want to hear these messages, you can become a patron
at Patreon at dot netroocks dot com for five bucks
a month and you get an ad free fee.
Speaker 2: All right, here we go.
Speaker 1: Did you know that you can work with AWS directly
from your ID. AWS provides toolkits for visual studio, visual
studio code, and jet Brains rider. Learn more at Aws
dot Amazon dot com. Slash Net, slash Tools, and we're back.
It's dot in a Rocks and Carl Franklin, that's Richard Campbell,
hey in the fine country of Canada, indeed, and our
friend Rob Richardson, who we're talking about dot net Aspire
in detail now, but I got a feeling that we're
you know, we've been talking about more things than just Aspire.
But the latest template is what you were just talking about,
the latest visual studio template.
Speaker 4: Yeah, it's really cool because getting started with dot net
Aspire is super easy. I used to have to install
a visual studio workload. That's no longer a thing in
using dot net Aspire in net nine and so now
I just file new project and I there's a dot
net Aspire starter template. I can check whether I want
to include Reddus or not. If I include Rettus, then
I need to have a container orchestrator like Podman or
Docker desktop. And if I unchecked that, then it just
won't include those bits. I can fire it up and
I can get a feel for how dot net Aspire
might integrate into an application. It's a great way to
get started, really really easily.
Speaker 3: And we just got to We just had a version
number update Right, it's nine point one. Now, I mean
they started with nine cheating.
Speaker 4: Well they started with eight. But yeah, now that we
have nine point one, it's pretty cool.
Speaker 2: Okay, what's the point one?
Speaker 4: The number after nine?
Speaker 2: Nice?
Speaker 4: What I found really cool is even the upgrade from
dot net eight to dot net nine or dot net
Aspire eight to nine wasn't all that significant. It wasn't
all that changing. We now had the ability to wait
for services to start up, which is really cool. But
what's new in nine dot one? The command that you
need to run update.
Speaker 3: It I see in the notes here it's like Polish,
Polish Polish, Like they're just making a little easier for
things to have to happen.
Speaker 4: There's a bunch of new features in nine point one.
The one I'm most excited about is that you can
start services on demand, rather than having them start at
the beginning as the app post starts. But you can
now do nested resources. For example, you create a database server,
and then you create a database on that server. The
database is now nested under the server. You can now
clear and download the logs and traces, which is really cool.
They're still not durable, they're not still not saved to memory,
but you can clear them and download them, and so
if you download them now you can compare them to
what you did yesterday. The resource can fig screens on
the dashboard now show not only the configuration details, but
which resources depend on them, which resources it depends on,
and so that can kind of help you discover dependencies.
Previously you could emulate Azure storage, which with an Azurite container,
but now there's emulators for Azure Service, Bus, Cosmos dB,
and Signal R. There's some testing improvements, like you can
add disabled randomized ports and enable the dashboard during tests.
That can be really helpful, and the release notes doesn't
call it out. I'm sure everything is more, better, faster.
They're always doing performance improvements in everything. It was so
amazing to me in dot net six how span of
t just made everything faster just by upgrading. So I
wouldn't doubt that there are some performance enhancements here too.
But the one I'm the most excited about is starting
services on demand. For example, I don't want my Azure
functions to start every time. I mostly want to work
on the website, so now I can figure the function
apps to not start automatically. And instead when I started
the app post, the website starts up and the other
ones are stopped, and so I can just go push
play if I need them. But in most cases I
just I don't need those resources, and so it can
work out really great. These are a lot of new
things in dot net Aspire nine point one. But the
cool part is, Yeah, the upgrade is just you know,
upgrade and everything that you've used before. There's no breaking changes,
I believe, and so the upgrade is just super simple,
and if you happen on features that are really interesting
to you, it can be really great.
Speaker 2: Yeah.
Speaker 3: I think the dashboard is a thing that hooks people. Yeah,
because you're going to need to build one. So the
fact that it just generated for you and then you
can tweak it is a great hook besides all the
other stuff.
Speaker 4: And here's where my opinions probably differ from others opinions.
But I would say that that dashboard is great for
local development, but you probably want to use a different
dashboard in production. That dashboard doesn't have any durable storage.
There are plugins that allow you to get durable stores,
but it's like I found an error that happened yesterday.
It stores it in memory and that's already gone.
Speaker 2: Oh.
Speaker 4: It also collects all of the configuration details for all
of your applications. And so if we deployed this and
put it in production and accidentally exposed it publicly, then
we've just exposed the entirety of the configuration of all
of our application.
Speaker 2: Right the black hats, thank you for your service.
Speaker 4: Yes, But the cool part is you can use this
dashboard as a standalone container. And so if you have
a Python app, or I actually have a JavaScript front
end to React app in my demo, I'm doing view,
which then pipes all the data into open telemetry. And
so a View front end and a Python back end
using dot net Aspyrus dashboard without dot net running? Are
you really cool? Hey?
Speaker 1: Say where are you from anyway?
Speaker 3: You know it's called dot net is fire. Yeah, yeah,
I don't know what you think you're up to.
Speaker 4: Right, Well, the cool part is it just becomes an
open telemetry think.
Speaker 1: So there's no Windows servers here anywhere, It's not, it's
just dot net is all about it.
Speaker 3: Like you can't if you're deploying any the cloud, you're
still deploying on a Windows instance. It's you're literally throwing
money away, right, Like if you're running modern dot net,
it runs on a Linux instance and it's literally like
a twenty five percent price cut.
Speaker 1: Yeah. The point there was that there's still a large
group of people who haven't looked in dot net in
fifteen years because they think it's all about Windows. Yeah,
and it's kind of stinks that that branding has stuck.
Speaker 3: Well and it's a non trivial mom folks that are
still on you know, four or five two, Like they're
for a reason, They've got dependencies, They're not going to
give up their web forms, Like it's just not that simple.
Speaker 2: There's a lot of work done.
Speaker 4: Yep, I agree. I have a dot net for it's
now dot Net four seven app runs with Crystal Reports
and Windows forms and it's like, yeah, that's not going anywhere.
Speaker 2: Oh man, oh that hurts.
Speaker 3: Yeah, no kidding, Like Crystal Reports. You said that with
words out loud, like what the what the what?
Speaker 1: I remember I remember being at a v bits and
it was in the early days of Internet Information server
and a guy from Crystal Reports came up to me
and he said, Hey, we've got Crystal Reports running on
the back end in iis isn't that awesome? And I'm like,
oh my god, how much memory do you have to
have to have that behemoth of an application running in
the background, which, by the way, was apartment threaded, so
you could only use it one at a time.
Speaker 2: Oh my god, what a nightmare. Yeah.
Speaker 4: I found a similar app where they were launching Excel
from the web server and I'm like, yeah, I'm not
sure if you get this.
Speaker 2: It's just because you could, doesn't mean you should.
Speaker 3: And then and then it would crash or fail to close,
and so you'd end up with multiple instances of Excel
on the machine. Yeah, and then you eventually write an
Excel watcher that pokes in yeah to task manager and
kills orphan a instance of Excel. Why do I know
this stuff? Why is this stuff? Fill in my head?
I remember I did that.
Speaker 1: You know, I tried it, and you know it was possible,
but nobody really understood the whole apartment threading thing.
Speaker 2: Yeah, I'm sorry, I want to bring us back to
the nineties.
Speaker 4: But geez, And that's really cool. Is you set all
that aside and you can run dot net inside of
Linux containers in community hosting and it is just amazing.
Dot Net has come a long way.
Speaker 2: Certainly has well.
Speaker 3: This sort of explains the spire, right, It's like, this
is the language that once upon a time was for
building client server apps, and then you know, evolved into
web as well, and now it's cloudland, and so give
us a set of defaults that are for cloud Land.
Speaker 1: Should we take a moment to just praise Microsoft for
making dot Net nine so much more performance crazy and
memory less memory use. It's just ridiculous.
Speaker 4: Dot Net six was that way as well. It was
a major sure was a breakthrough performance boost. And it's
really cool because upgrading from dot net three to one
all the way up to dot Net nine is just
really easy. You know, change the version number in the
cs prog files, update new get packages, and you're there.
Speaker 1: Yeah, it's that whole update new get packages thing that
usually people have a problem with, only because some of
those new get packages don't exist anymore. They don't work
in dot net core or whatever. Yeah, do it nine rather, Yeah, Yeah.
Speaker 4: Dot standard was an interesting dilemma. And yeah, now that
we've set that aside too, yeah, it's just smooth.
Speaker 3: In Well, it's a good reminder that dot Net standard
wasn't for US.
Speaker 2: It was actually for Microsoft.
Speaker 3: Yeah right, it was Microsoft trying to get all of
their internal versions of dot net aligned, and we may
have been the beneficiaries of it, but once that alignment
was done, they really didn't care about anymore.
Speaker 4: It was no longer necessary.
Speaker 2: Yeah, just wasn't the thing. And you know that.
Speaker 3: It's also why xammal standard failed because they couldn't get
all of those internal versions of Exammal aligned.
Speaker 1: Wishful thinking, like running Excel in iis.
Speaker 2: That's going to be.
Speaker 3: Burned in like a norphan Excel instance on a server
somewhere somewhere.
Speaker 2: Wow.
Speaker 3: Yeah, I'm just double checking the version numbers, and four
eight one last updated August of twenty two, so it's
two and a half years since that Windows only frame
version was updated.
Speaker 2: Yeah.
Speaker 3: I feel for folks that have to use it, because
there's folks who have to use it in the two
ways about it, right, But there are I, meantime, living
over here in dot net Nineland, where things are really.
Speaker 2: Fast and well real.
Speaker 1: Cloud friendly, I still have to write tools that work
with Windows that only work with Windows every once in
a while. And thank god the dotnat framework is there
because damn yeah yeah, send keys.
Speaker 2: I love send keys. Yeah, that's amazing what that can do.
Speaker 4: I also love how diverse it is. You know, previously,
when I wanted a really little thing, I would have
to reach for nude, and now I can use minimal
ap eyes for that.
Speaker 3: Yeah yep, yeah, And you don't have to open studio.
You really can do what you need to do inside
of code if you want to, like or nope, pad
we've stripped away the battleshipness if you don't value the
battleship like I, studio is my happy place. But maybe
it's just because I'm old. I just feel like that's
the tool i'd want to point a beginner too, because
it has everything in it already. You don't have to
roll your own you don't have to figure that stuff out.
The problem is it's intimidating. It's like a cockpit of
a seven forty seven. Inside of there, everything's there, you're
just afraid to touch any of it.
Speaker 4: And you don't have to collect all the plugins. With
vs code, it's like it's completely useful by itself.
Speaker 2: You have to assemble a deb environment.
Speaker 4: Yeah, but the moment that you start doing anything, really
you want a collection of plugins that do all kinds
of wonderful things.
Speaker 3: It's exactly it. And for a beginner that's a challenge.
Not that we haven't made it easier. There are good
templates and things like that.
Speaker 4: But and vus code's also pretty good at noticing, Hey,
it looks like you're doing this. Is this the plug
in that you want to help you with that?
Speaker 1: So it's like Clippy, that's what you're saying.
Speaker 3: This is clippy? Is that a code? And it wants
to help you get a plug in that's going to
make your life better. Weird, it's a weird time to
be a software developer man, and then probably the conversations
of my software.
Speaker 2: But I have a digital duck.
Speaker 1: It's a good time to be an old timer like
me though, because in you guys, because we've lived through
the whole progression of it and we felt the pain
and we saw the problem areas, and we feel elated
that I feel like I could do anything right now.
It's like there's nothing, there's no challenge. Somebody could say hey,
could you write? And I say, yes, hey could you possibly?
Speaker 2: Yes? Yeah?
Speaker 4: And I love it too because my stakeholders, my users
are starting to get really creative here they are chatting
with chat GPT and it's generating all kinds of stuff
and they're like and now they're just thinking really big, Yeah, hey,
can you create this thing that automatically does it? And yeah,
I love getting to build really cool experiences like that.
It's a lot of fun.
Speaker 1: It's a lot of fun. It's like, yeah, it's a
good time.
Speaker 2: Yeah, really good time.
Speaker 4: It's kind of open their creativity.
Speaker 1: So what haven't we talked about that's lighting your fire
with Aspire?
Speaker 3: What are the rough bits of Aspire? Like what do
you still have to sit down and fight with to
be successful?
Speaker 4: So that Aspire has some conventions that allow you to
automatically rig up dependencies, and sometimes those conventions can be
a little bit weird, especially as I'm starting to talk
about deployment. Deployment to Azure container apps is really really
well baked. Deployment to Kubernetes is a little bit less baked,
but still doing pretty good. But when I start getting
outside of just those standard to Azure deployment mechanisms, then
it's like, well, so how do I want to deploy it?
And as I'm deploying, how do I match the conventions
that dot not Aspire Local dashboard was doing for me automatically.
It's like, well, now I need to form this environment
variable using exactly the syntax to be able to get
it to inject the dependencies just so. And so it
feels like deployment is that sharp edge still sure?
Speaker 3: And what's the strongest deployment path right now? Is it's
containers more than Kubernetes. Is like az your container service, or.
Speaker 4: It's Azure Container apps, which is Azure's abstraction over the
top of Kupernetes.
Speaker 2: Right.
Speaker 4: You know, apparently Kupernetes yembo files are too complicated, so
let's all invent our own.
Speaker 3: Lots of people struggle with them, rob like, let's be fair.
Speaker 4: Yeah, And fargate is interesting in this way as well
on AWS, where it's kind of an abstraction over top
of Kupernetes. Right, but as your container apps is Microsoft
substraction over Kupernetes. And so that's their very very well
paved path.
Speaker 3: Well, and I do appreciate the idea of, hey, you
probably don't need anything exotic in containers, so let me
just give you a default set of configuration, which if
you end up needing something exotic, you can haul all
this back out known it yourself, but since you probably don't,
you're in the eighty ninety percent case that defaults are
going to be fine for you.
Speaker 4: Yeah, And the cool part is it will automatically package
up my dot net projects into containers and automatically push
them to Azure container registry and rig up other best practices,
like it'll put connection strings into key vault and day.
It does all the best practices, which is great, right
for you if you subscribe to that as your deployment mechanism.
Speaker 3: I love key vault, Yeah, and it's a good thing
to use, but it's also not trivial steps and it's repetitive.
So the fact that the tool will just do it,
presume you're using qu vault, give me the credentials off
we go is good.
Speaker 2: Yeah.
Speaker 3: Just again, it's that pitt success thing that Rob mentioned
up front that we've never used that term before, but
you know, I'm going to let you own it today, Rob.
There you Yeah, just doing all the right things. That
to me is what really gets me excited about a
spire is like, the right way to deal with telemetry
is this way, and the right way to deal with
secrets is this way and the right we'll do cashing,
and you still have choices like which cash do you
want to use? You like reddits final, let's use reddis
you want to last a gal to use elastic like
it's just youuration setting.
Speaker 1: Are there architectures where aspired doesn't make that much sense.
Speaker 4: If you already have a whole lot of opinions about
how you want to do logging, metrics and tracing, you
already have a whole lot of opinions about how you
want to do deployment. If you have a large monolith
that you know really doesn't have a whole lot of
web request dependencies, yeah, like a single server, then it
may not make sense because well, you don't need the
service discovery, you don't have services. You don't need the
configuration or deployment piece because you already have those solved.
So you really don't need a dashboard that helps you
aggregate things because you don't have pieces.
Speaker 1: I'm thinking of a Blazer server web app where you
can scale out just by adding more servers and it's
completely invisible to you, and you know the servers, the
users have affinity for one server or another. There really
isn't much that you need to do. And like you said,
there's no service layer, so yeah, you know, everything's sort
of baked into this one thing. I guess that's the
thing I'm thinking about.
Speaker 4: Yeah, if you already have a whole lot of opinions,
you've already climbed these hills, then maybe it isn't necessary.
Speaker 3: Right, Yeah, And by that token is just more of
a greenfield tool than a brownfield.
Speaker 4: To I would argue that it's not. It's more of
a web tool than a greenfield or brownfield. I've added
it to a bunch of brownfield projects. I've also used
it in a bunch of greenfield projects, and it's just
really nice to be able to discover all the things
you know. In visual studio, you write click on the
solution manager and you say configure startup projects, and that
dialogue is nasty. Just having just being able to say
goodbye to that dialogue is worth the weight in gold.
Speaker 2: Yeah right, yep, I agree.
Speaker 4: If you use dot net Aspire for nothing else than
being able to launch all your projects simultaneously, it is
worth it.
Speaker 2: Yeah, yep, that's interesting, it's good.
Speaker 3: It's funny. The plumbing pain. We still have building building
software in studios.
Speaker 1: So multiple projects, multiple machines, clients, servers, services. That's where
Aspire is really going to help you.
Speaker 4: Yeah, and container orchestration like as part of launching this solution,
I also want to launch all of those containers for
data stores or external services or whatever.
Speaker 2: What does it do to Kubernetes.
Speaker 4: The cool part is there's a project called Aspirate Aspirate
I'm not quite sure how to pronounce it that allows
you to connect dot Net Aspire deployment into Kubernetes. And
it has two different modes. The one is it will
do the same deployment like you do to Azure container apps,
where it will automatically do all the things. And the
other mode is where it scaffolds out the Kubernetes bits
that you need, and it doesn't scaffold out all the dependencies.
You know, it won't spin up your Rettis cluster or
your postcrests or sql server database, but it will get
all of your dot Net projects into place in a
really elegant way. So I really like to use Aspirate
to scaffold out my deployments and services, and then I
already have ingress and secrets and can fig maps associated
with other places then when I get to Kupernetes, I
just keep ctl to apply and I've got my all
of my services that dot net Aspire was orchestrating locally
orchestrated by Kupernetes in production.
Speaker 1: So it snugges up to Kubernetes nicely when you already
have that infrastructure. But if you don't have a Kubernantes infrastructure,
does it make sense to you know, Okay, we're going
to use Aspire, but we're also going to use Kubernetest.
Speaker 2: Does that make sense?
Speaker 4: They are super correlated. But the cool part is typically
when you're reaching for a whole lot of micro services,
you know, if you embrace that micro service architecture, then
you need the ability to host all of those pieces. Sure,
and if you're starting to look at I'll use Azure
as my cloud of choice. If you're looking at your cloud, okay,
and Azure, I could run each of those micro services
as an Azure web app. But now I have a
whole lot of web apps, right, it would be easier
for me to put these in a spot where it
can handle a lot of micro services, right. And so
that's where Kupernetes was really built to host micro services.
So dot net aspire.
Speaker 2: But if you have a container service.
Speaker 4: Yeah, Azu container service is a simpler paradigm there. Yeah,
but dot net Aspire and Kupernetes then kind of solve
two sides of the same coin, where dot net Aspire
solves it really nicely in local development and Kupernetes solves
it really nicely in production.
Speaker 2: Okay, that's well.
Speaker 3: If you have the amens who want to administer Kubernetes,
yes you are not that automated. Folks need to needs
care and feeding. Like if you're going down that path,
other way, I stay in the Azure Container apps land.
But if they need more dynamic control I want They've
got other ways they want to do things. You got
somebody who knows their way around Kubernetes in ops bhind Yeah.
Speaker 2: Yeah.
Speaker 4: The people who administer Kupernetes and the people who use
Kupernetes are usually different people.
Speaker 3: And you need both, right, Like that's that you get it.
I get a dev team all jacked up to use Kubernetes,
and it's like, so you guys going to stay here
and offer rate this because it doesn't just offerate on
its own, like it needs some care and feeding.
Speaker 4: Azri Kupernetti service does a pretty good job of keeping
track of it. For example, upgrading Kupernettes versions in Azure
is just super simple. I just picked the new version
from the drop down right. Doing that by hand is
way hard. So you don't need a dedicated ops team
to manage Kupernettes in Azure, but it helps.
Speaker 3: If you're using Azure Cubineti service, you're not running your
own Kubernetess instance switch and you know, folks go down
that path. I don't know why, but they do.
Speaker 4: And there are definitely reasons for that. But if you're
getting started with Kupernettes, then my first instruction is don't
install Kupernettes. Go to your cloud and click that create
a Kupernettes button.
Speaker 2: Yes, the first rule of Kubernetes. Don't install Kubernetes.
Speaker 3: Now, have you done the path of like from Azure
Container Apps to Azure Community Kuberneti Service.
Speaker 4: I actually got into Kupernettes before Azure Container Apps was
a thing, right, and so I kind of look at
Azure Container Apps as like the train wheels to the
gateway drug to get you to Kupernetes. Yeah, and I'm like,
I'm already at Kupernettes. I don't really need to step backwards.
Speaker 2: Yeah, I've just heard.
Speaker 3: It's not that easy to move between these things, Like,
it's not a trivial thing to pick up and shift over.
There's no butt that says, hey, I want to run
this in AKS now, please.
Speaker 4: Right, the config files are significantly different. Yeah, if you
understand Kupernetes, you can look at the Azure Container Apps
Gammo files and kind of see the Kupernetes bits kind
of starting to come through. But yeah, there's a whole
lot more concepts in kupernettes that you don't see in
Azure container apps. For example, Kupernettes has a difference between
services and pods, and Azure Container apps kind of paves
over that to make them one thing.
Speaker 2: Oh yambo.
Speaker 1: Yeah, yeah, so much hammal, so much ammal.
Speaker 2: All right, there is asure Migrate apparently for doing this.
Speaker 4: But yeah, yeah, it's not impossible. And the cool part
is that your dot net projects probably don't change at
all when you move from Azure Container apps to Azrikruperneti service.
It's just all of the DEVA and ops things under
the hood.
Speaker 3: Yeah, that's what I figured. It's just you know, we
also keep offering this whole. You can start here and
move there. But it's question is how hard is the move.
Speaker 4: And if you're building all these things with Polumi or
Terraform or even Bicep, then you're rebuilding a.
Speaker 2: Bunch yeah right now.
Speaker 3: And we've done shows before on Bicep and Polumine and
even Terrorform.
Speaker 2: Do you have a preference?
Speaker 4: I really like Terraform, a project that I'm working on,
has a whole lot of platform engineering things built up
in Terraform, and so that was the one that they
handed us. I like that Terraform now is starting to
embrace other programming languages. CDK is the project that allows
you to start writing Terraform in other programming languages like
c Sharp or JavaScript or other things. And that was
kind of the big draw of Polumi is to be
able to get this outside of Terraform into real languages.
Speaker 2: Right.
Speaker 4: Bicep is interesting, but it's Azure only and.
Speaker 2: In the end, it's just generating arm files under the hood.
Speaker 4: And your Terraform or Pulumi files won't go between clouds automatically.
You know, Amazon's content is different than Azure's content, but
having a single language across all of the clouds is
really nice. So yeah, I've really embraced Terrorform.
Speaker 3: Okay, Yeah, and it feels like Polumi pressed Terraform to
do a better job because Tariform was there first, oh
of course. And it's never been window centric. I mean,
the biggest complaint I've ever heard from Terraform from an
Azure perspective is that they're behind on new Azure features
that if you're in Terraform, you don't get access those
feature right away.
Speaker 2: Takes time for their interface to catch up.
Speaker 4: Right, And that's unfortunate. But if you're not on the
bleeding edge of Azure, then you're not really bothered by that.
Speaker 1: Yeah, And there are two different things, right, isn't Polumi
like a c Sharp based and Terraform is PowerShell based
or something like that.
Speaker 4: Terraform has HCl files, which if you squint real hard
you can see JSON or graph ql, and by comparison,
Polumi is in Typescript or c sharp or you know
any language right, right, And so at the end of
the day, you build these files defining all the configuration
that you want, and so you know, do you have
semi colons and curly braces. That's kind of the big
difference here and then you run on firm command line.
Speaker 1: Eight yamil in ein' yamil. That's good enough for me.
Speaker 2: Uh, Robs, the.
Speaker 3: I see more BICEP folks from the men side of
DevOps more than the dev side of DevOps, where I
think Pulumi was very much a dev centric DevOps tool,
And yeah, Terrorform certainly was, but was embraced by Mode. Again,
Terraform has the avengage of being the oldest and the
large largest diversity, and it just felt like they fell
behind and it was innovation spots. But with CDK, Terraform
seems to be there, like you get your biggest pool.
You're definitely platform agnostic, like it's it's a really strong choice, and.
Speaker 4: You have access to all the Terraform providers and modules
that you always had with Polumi. Yeah, you kind of
had to make sure that they got them too.
Speaker 1: Yeah, you're starting over, rob, Is there anything we missed,
anything that you want to mention before we go?
Speaker 4: What's really cool at dot net as is that it
gives you the chance to do as much or as
little with it as you want. And so whether you're
coming at it from a greenfield or a brown field, perspective.
I think dot net Aspire has really intriguing options for you.
It's definitely worth kicking the tires there.
Speaker 1: Definitely, Rob Richison, thank you very much. It's a pleasure
catching up with you again on this show. It's been
far too long and I hope it's not too long
before the next time.
Speaker 4: Yeah, I can't wait to do it again. It's great
catching up with.
Speaker 2: Kill you too. Thanks Matt.
Speaker 1: All right, and we'll talk to you later on dot
net Rocks. Dot net Rocks is brought to you by
Franklin's Net and produced by Pop Studios, a full service audio,
video and post production facility located physically in New London, Connecticut,
and of course in the cloud online at pwop dot com.
Visit our website at d O T N E t
R O c k S dot com for RSS feeds, downloads,
mobile apps, comments, and access to the full archives going
back to show number one, recorded in September two thousand
and two. And make sure you check out our sponsors.
They keep us in business. Now go write some code.
Speaker 2: See you next time. You got jam Vans
Speaker 4: And