.NET Aspire 9.1 with Rob Richardson - podcast episode cover

.NET Aspire 9.1 with Rob Richardson

Mar 20, 202557 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

What's the latest with .NET Aspire? Carl and Richard talk to Rob Richardson about his experiences with .NET Aspire to help build great .NET cloud apps. Rob talks about all the goodness that comes out of the box with Aspire, including OpenTelemetry, containerization, good security practices, and the excellent dashboard. The discussion turns to the challenges of evolving .NET to be better in the cloud, retrofitting existing applications with Aspire, and all the container choices you have in front of you with these tools. There's more than one way to fall into the pit of success!

Transcript

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

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android