cover of episode Building .NET 9 with Glenn Condron

Building .NET 9 with Glenn Condron

2024/11/21
logo of podcast .NET Rocks!

.NET Rocks!

AI Deep Dive AI Chapters Transcript
People
C
Carl Franklin
G
Glenn Condron
R
Richard Campbell
专注于软件设计中的耦合问题,提出了强度、距离和波动性三个维度的耦合模型。
Topics
Carl Franklin 和 Richard Campbell 讨论了 .NET 9 的新特性,包括性能提升、安全性改进和稳定性增强,并重点关注了 Aspire 项目和 AI 工具集成。Glenn Condron 详细介绍了 Aspire 项目,解释了其简化云原生应用程序构建过程的目标,以及如何通过改进的工具、集成和库来实现这一目标。他还解释了 Aspire 如何解决开发人员在构建云原生应用程序时遇到的常见问题,例如配置、依赖注入和弹性策略。此外,他还讨论了 .NET 9 中的 AI 集成,包括用于与大型语言模型交互的 Extensions.AI 库,以及如何使用 AI 来改进应用程序的各个方面,例如客户支持和报告生成。 Glenn Condron 深入探讨了 Aspire 项目的细节,包括其对工具、集成和库的影响。他解释了 Aspire 如何简化使用诸如 Redis 之类的服务的流程,减少配置步骤,并提高可靠性。他还强调了 Aspire 项目的“极端所有权”原则,以及团队如何与其他团队合作以解决问题并改进用户体验。此外,他还讨论了 Aspire 项目的社区参与,以及如何鼓励开发者贡献和改进。 Richard Campbell 和 Carl Franklin 讨论了 .NET UI 框架的现状,以及跨平台开发的挑战。他们还讨论了 .NET 9 中 AOT 编译的改进,以及其对性能和应用范围的影响。此外,他们还讨论了 .NET 团队在 AI 工具集成方面的努力,以及如何使用 AI 来改进开发人员的工作流程和应用程序的功能。

Deep Dive

Chapters
Glenn Condron discusses the significant enhancements in .NET 9, focusing on performance improvements, security, and the introduction of Aspire for cloud-native applications.
  • Continued performance improvements with AOT compilation.
  • Enhanced security features and stability.
  • Introduction of Aspire for easier cloud-native application development.

Shownotes Transcript

Translations:
中文

How do you like to listen to dark hat rocks with no ads? easy. Become a patron for just five dollars a month, you get access to a private R S S feed where all the shows have no ads. Twenty dollars will get you that end, a special dot net rocks patron mug. Sign up now at patron t dot net rocks dot com.

Hey, welcome back to dot net rocks. I'm carl Franklin and emerge ago and happy autumn season to all here was halloween last night recorded .

when we're recording IT. But yes, this is later than that because .

time shifting and we hoping to get some more stuff we had drawn on last week and we were hoping to get more, not last. Okay, time shifting a few shows ago, yeah, but we are hoping to get this closer to dot net conf. But you know you glen bing, you know experiencing all things start at nine.

Just not, not just blazer. We thought we would do recap of what they talked about that that comes. So hey.

Richard, me really .

lets I think we should just jump into Better, no framework.

Tell you, do the thing right. Roll the music.

I have got ten .

into the .

habit of looking at trending github repository. okay? And this one came up. It's called little big mouse o. It's an open source APP designed to enhance the multi monitor experience on windows ten in eleven by providing accurate mouse screen cross over locations within multi dpi monitor environments. Nice, particularly useful for setups involving a four k monitor, a long side of ten T, P, monitor.

the ten p, ah, so there was scaling thing. The D, P, I thing happens in your mouse to is little nut.

Yeah, not just a mouse, but there's a video right there on the repo. Yeah and he takes like no pad and tries to drag IT between the two screens. Yeah, that's always a not fun experience, but is pretty good. Yeah, pretty good stuff.

I'm gonna use IT well like this, this recording rig. I have a portrait oriented like fourteen forty screen, and then a landscape oriented curved like thirty eight, and drag them between. Those can get wacky, wacky.

yeah. So i'm going to download this too, because i've got a few screens and I got a forty nine in sure like you yeah and couple other screens right. So that's what I got. Richards, who's talking to us today.

come shown nineteen or three, the one we did with our friend best masi when we talked bit about mali and blazer yeah and got what a good comments on this show because we had a lot of on there. And this comment is from elf b, who said, I love you shows my feeling when hearing all these UI named like W P F, win UI three mouse web view to CS s that we debs would love to have. Not so many different UI tax tax.

The fact that still W P F seems to be the most used dot net uv tells quite a story. And microsoft s dot net us strategy, the past we are using avalon ia for our cross platform development, which we've done to show an envy m. We would love to get such a thing from microsoft. Now, the avalon ia, you is there. I hope that the current wild pace of adoption keeps going.

So there's two things that worry me, the current and future quote, mess, sorry, with dot net UI frameworks where we could have just won for just stopped mobile, potentially wash in the cross platform form for windows, linux, macos, IOS, android and the broster and an unclear class spot from ID strategy and very much individual studio, not at all in the VS code. I guess most debs would want VS twenty twenty eight to be across platform to e. What are your thoughts on this?

Did you say twenty.

twenty eight? Yeah, like the next, next version of visual studio. OK. I mean, to be clear, I kept over couple years there. Yeah the vigital studio runs exactly on one platform windows.

There was A I visual studio for the mac, which was actually mono develop when they acquired example in they released IT, which I thought was unwise to do, but now they've stopped working on IT. So that's really not a thing. I think your wish is a good wish. It's also never been achieved by anything right to have desktop, mobile, you know I plus all of the Operating systems and IT just works. That would be awesome.

Well, I think is you know origins are example informs the the phones being the sort of subset that you need to start with and work out from, but it's really hard to start with that set and then knew a good job of windows in macos and the and the larger stream platform. So I think it's still a story are here mai's intent was to try and unify all of these things right? Um and yeah you I think what you're feeling your concerns are reasonable because what you're really feeling is that somewhat of a political struggle going on inside of microsoft about what folks want to work on, who's one, what where like. This is a lot going on on all of this, I gotta tell.

I just wrote an APP in mali for myself because, no, i'm a solo artist and I play out we on my guitar and i've got sheet of paper, usually with big song list and some lyrics and usually they're like on the floor by the end of the and I got an ipad totally .

Normal players thing to happen yeah i'm .

like I got an ipad. Let's do this so I went looking to see if there were apps out there and there are ah but they want thirty forty books a month for a freak list, a mum yeah or something I don't know. They were just expensive like i'm not giving you my money for that stupid thing.

So anyway, I wrote an APP and it's beautiful. And here's the thing, like my machine is really fast, faster than my ipad. So I could, I put like a devil express HTML editor in there, right? And on my machine I can add songs and that add lyrics and stuff.

And then I buzz over to the ipad and IT just reads the data, yeah, you know, and and I used this on the gig last night, nice. And IT IT ran like a champ. yeah. So I love that whole blazer hybrid thing, because I could, I could take that and run in the brothers too.

But I also say you were putting up on one platform on ipad two.

two running and windows right on my dead and then ipad yeah okay look IT .

yeah I think this struggle browse is pretty cross platform yeah the struggle for a unified cross plant story is heart. And um this always going to be an origin platform is going to be strongest and are going to battle to make the other one's good. And you know first come from a lot of different directions.

So there's a reason you feel a little concern and glad you are happy with that polonia. We thought that was an impressive product. yeah.

And maybe we had to do another show that's very, very maybe so in that. Thank you so much for your comment. And a copy music coby is on its way to you. If you d like a copy misto cobi read a comment on the website, rocks down on the facebook we publish, show there, maybe come up there and I really, the show will send you a copy music go by.

or if you wanted, just buy a music to go by. Go to musi C2Code by tha t net, right? Well, before we start here, this is episode nineteen twenty five. And I kind like to run down a little history.

What's your your favor?

Piece of history from twenty some events? Well, of you musli, in january makes a pivotal speech in the italian chAmber of deputies, which will be regarded by historians, is the beginning of his dictatorship. awesome.

Here's a happy note. January twenty seven to february first, the one thousand hundred and twenty five serum run to known the great race of mercy release dip theory anti talks in by dogsled across the U. S. Territory of alaska to combat an .

epidemic, right?

Yeah, march teeth try state tornadoes, the deadliest and U. S. History rampage ages through misery and I in inDiana, killing six hundred and ninety five people in injuring two thousand twenty seven. That's crazy.

But that's before there was ways to warn folks really right? Yeah, they're just the sirens.

So there's more to that. But in April, TNT f Scott fits publishes the great gatsby in new york.

O bra sixteen to communist .

assault on sane in adelia church claims roughly one hundred and fifty lives in Sophia, bulgaria, a place we have been several times at .

that time was part of the the sov union. yeah.

June thirteen american engineer Charles Frances Jenkins achieves the first synchronised transmissions of pictures and sound using forty eight lines and a mechanical system in the quote first public .

demonstration of radio vision radio forty eighth. Put up four eight p, forty eight .

p july, the scopes trial, right in a stage test case, the monkey trial and date tennessee john tea scopes, Young high school science teacher, technically arrested on may fifth and edited on may twenty fifth, is accused that was signing a reading from a state Mandates a textbook on Darwinian evolution in violation of a tennessee state law Butler act. He has found guilty and find a hundred dollars through the verdict.

Though the verdict is later overturned on a technicality, the trial makes explicit the fundamentalist slash modernist controversy within the preceptory, an church in the united states of amErica with William janning brian, who dies and enjoy twenty six, being chAllenged by the liberal clarets. Darrow, I swear to got him not onna go through all these, but ly tenth eight off hitler publishes mine comp August ates, the coup clock clan demonstrates its popularity by holding a parade with an estimated thirty five thousand marchers in washington, dc. August first, Margaret me, the anthropologist, lands in american samoa to be in nine months of field work.

Would that accumulate in her one thousand nine hundred and twenty eight book coming of age in samoa? This best selling book will become the first popular anthropological study. You will change many attitudes for tribal peoples.

The local canal treaties negotiated october fifth through sixteenth and signed in london december first. Very, you know, getting ready for a world war two here. Yeah grand old of three, november twenty eight, first broadcast on W S M radio national al tennessee as the w sm barn dance.

Oh yeah. So there was an interesting year. Do you have anything that yeah hit?

There's not a prison publishes mine camp, reforms an atc party and create CS s all in the same year yeah yes, which we were go and friends, right? Like just like that. His right back on the mission, nine months in prison, didn't seem to dissuade to him much and after the beer hall push so you're .

saying he was a convicted felon.

He was actually, but he prepares tly LED out. I mean, he was a five year sentence, only nine months. Yeah, I like to pull that off .

as friends and .

good behavior .

because he's busy writing a book. Friends in high places.

I guess something I don't think had any actually okay enough for that.

Let's bring on our guest. Glen condron is a program manager on the application platform team at microsoft, where he spends most of his time working on the national core run time. Before becoming a pm, he was software developer and consultant for eight years. His work before microsoft was primarily .

for australian .

government clients. Welcome, glen. hi. How you in?

Yeah indeed. Um I guess my updating of my bio, I suppose could I probably having done IT for a while, I am now the lead of the on that platform team P M T, which an almost everything there's not tooling and male right all those pms am I okay? So yeah that's that's so all .

the heart of dot net, not a language. The framework .

a and are very recently including the landing madtom to be but like he's bad. I don't actually I don't have and the language design and the language design meeting doesn't thing in all those people. I don't pret influence that anyway.

But technically that yeah great.

Yeah yeah. That's my, that's my part of the world. A which means this kind of release we have to talk about on at nine, it's been a lot of for me, it's been a lot of a spir, especially because IT goes out that goes out of what I was doing before I started moving into. I am now lots of a spire, lots of, lots of kind of A I of two hours A I for us cities. I for you and me and us as dev .

like .

copilot and friends, I I for code, and then I for how I going to how my, you know, my boss is, said he wants to check board. How do I make IT real um or how do I integrate I into my apps that that bit is more aware where I like because well, now you need library, you need sd cates, you need experiences.

How are you going to talk to the LLM? How you gona do generally by I, right? How you going to make a work? We got lots of samples to do, lot of partner as a lots. And then after forever, goals provide security, quality, performance.

right? Yeah, security, big one, I know. But we talked to dan roth a few weeks ago. He was mostly focused on blaze zer in the changes to blazer, but we thought we would get more breaks about .

that net nine .

with you yeah um so we know about player. What are some of the other big wins in that at nine over thirty eight H.

I see. So lots with continued our perf journey. I don't know. I'm sorry, not perf. I mean, yes, we've continued up earth journey.

But the thing that I was going to say was in donate eight, we talked about, I believe I was in eight, maybe even have been as early as seven. But for many years now, we've been on this steady march of nativity. Yeah, as we kind of give keep giving you this more, more of the stack becomes kind of very able. We make another good ahead of time at that ahead of time completion that's kind of compiling hardest for a Better description, get pilot native. And what that gives you is, you know a Better cold start times maybe and things like that because is no jit.

And what you what IT takes away is dynamics ism, right? So if you're in that world, especially if you're in like I have a small service and I don't need any of the kind of run time kind of dynamic from time features that made the difficult in for in an aot world, then you might want that extra calls that time in a container on on ster, right? So we made more roles towards that.

We made this is stuff in the G, C. There's the a new like dynamic conductive uh gc mode for server G, C. A. There is garbage in garbage, garbage collection, all in support of cloud and building these new workloads and these ways people are using a connect right?

Um a spire was a kind of big lift that we kind of talked about at the end of done at A I don't confident on that. I didn't I did talk there. We fell and then I think you've had fell around to talk about that and some people right? Yeah sure.

And hunter and uh Jackson.

yeah ah shows .

you road think .

about a spie e is how many things needed to change yeah I know.

I bet I think of IT is tooling. You seeing it's in the framework too?

Yes, because spire is kind of ten IT. IT actually crosses almost the entire intersection of the team, like he doesn't impact the language, but the impacts almost everything else, right? right? So you have tooling, yes, because you have the dashboard to give you all your metrics, to give you your hotel, to give you that dev focused, what's going on in my upper right now, you right, uh, then you have in integrations.

So integrations were a new gate package, their libraries the same as all the other things that I build on my team of libraries, right? But they are configured. But if out of the box to assume that you're in this world you're using cloud stuff, stuff might be unreliable, right? Ah we did work in Polly, for example, with the beginning of doing a spire to make to improve help improve its per for.

I like we contributed a lot into the Polly project that was kind under the umbrella of building this suspire project is going from elements and ingredients of a stack polis faster. We've got a reduction thing. We've got a this ability to uh you know we have big retried and such in faster um all these ingredients, then you start stacking them together and stacking them together and stacking them together until you ve got to stack right, right.

And so now you've got a now you've got libraries that make IT easier to get. You know, I want to talk to reduce, but I need you, I need a good to policy. I need to make sure to figure with D I properly with the right lifetime.

He's the redis client thread safe, I don't know, is supposed to be a single thing or not. I got no idea. I could do, you know?

D, D, I, can you define that?

A, D, I, so dependently judge. D, I, so if I described this out, if I pulled this out into a list for you, if lets say you're gna use redis, this is this is kind of favorite example and this was part of our um when we were creating what is a spire gonna be when we were giving this pitch, we had this slide and on that slide to say if you're going to use redis today in the modern cloud, this is what you have to do. And IT was fifteen steps long.

right? I could .

configuration, setting all of the settings, right?

Yes, current parameters.

exactly. You need to add the right, add the new package, right? You to find the right one.

You have to add a dependency injection in your life over APP. What is the lifetime? Don't know.

You have to go rid the dogs, make sure you've got the right one. Because if the thing cannot be a single or not, not is the main decision point, right? I'm gonna IT to D I is IT logging properly.

Is that going to go into my log stream? How do I do that when we started this effort? That was a shame that you had to do that.

You had to go on that's significantly like improved now right then. How do I consume but in my in my like controller or in my function? And then like is that what is the resiliency policy? Is that turned on if IT this is a little bit flaky one day, or if something happens, is IT onna .

recover like IT just kept going?

IT goes everywhere. And what we IT almost becomes viral of was, how do you, uh, collapse that into just a redness? And for the love of god, give me some, give me a really can make IT work with all those things we described. Well.

just give me the settings that would make me in the cloud .

absolutely right.

Because the bigger thing here is going, hey, what if we did elastic instead and just being able to switch IT? If you actually got red is running, right, you'd little go OK don't touch IT.

Yeah, it's working right now.

Yeah exactly. Well then brings up another point, which is if you if you start with aspire, right, and you do all the things and you pull all the switches and everything, you add red this, do you give up the whole idea of adding things manually after aspire, like you always have to go through the aspire e thing to to add things with so that you don't disturb you, right? I mean, if you're going to add another service. Can you just add a service and will get all the aspire stuff follow?

Yeah absolutely. So I think what you're talking about is like at inspire and integration.

like gesture in tooling or even even if you start with a spire. But you know we have many years of manual configuration experience, and that's where we go, right? As developers do, we now have to put that aside. And before we add to IT to expand our application, our applications, do, we now look for the aspire way to do things?

I mean, I hope I hope that the aspire way means that you can delete some code and therefore, i'm always supportive of you bring out a delay code if you if that you don't care about all that you don't need to worry about, right? So that maybe, but no, it's not not not, not required for you to go to change the way that you do things, right?

So there is an a risk of of doing something that conflicts with what i've set up and inspire that maybe I don't even understand, like all that stuff that you said.

So the largest risk is probably that um you had a red to say and we built in like so you reach a particular set of uh policies .

with Polly policy, yes.

And then you wrap them in your own and now you ve got a double layer of retrials or something .

like that actually that happened to a customer of mine that we we went out and tried to add aspire to. We already had Polly, right? yeah. And so that's .

probably the biggest risk is you didn't realize that the client you're getting that was already retrying and doing all that for you and then for you are doing your own logic for IT, that's problem. The biggest yeah yeah but ultimately like you know um I heard this thing as part of me like being all yeah let me make sure I remember I sten to friend Chris um he was talking about he talk to you about how he like you wanted to be a developer today because of all these things to learn you wouldn't like you couldn't imagine how overwhelming and must be day one showing up and then then saying, cool you're building this kind of APP right?

So what we ultimately, what i'm trying to achieve within a spire is today, I would say that the learning curve for how to build a current APP is like a rithmetic IT goes like straight up yeah and then IT dust even out right? And I want to make a ena like you slowly learn more and more bits, and you can make IT new again. Can we flatten this curve of what how much you need to learn to be productive, to get something that works and can work for real, with real internet traffic, eating IT and not like fall .

over and can be maintained .

and can be maintained, right? Because today is just this mess. It's well, it's very, very hard, right? And so is a bunch of interesting chAllenges .

because is not that tough to toss and APP service up and get IT to run? Yeah, that's but you haven't done a lot of things at that point.

No, that's track. yeah. And if you and if you good with building that kind of up where it's kind of APP service, talking to a database spire is still useful in that world. And that IT makes IT easy to spin up the database every time you press ve five and stuff like that. But then it's mostly useful when now when you've got to have you've got three, four backing API or a couple of functions and an a in a database and then you start to stretch the rooms what APP services is kind of really before and in that world, right the um that so that's that's what that is.

So yeah flatly in that curve is super, super important to us like we one of the customer calls that I did leading into with spy, I was talking to this engineering lead and he said we said one of the questions we were asking our standards script because we were trying to ask consistent said the questions was what's keeping you up at night because i'm looking for the i'm looking for the answer to that question because if for something keeping you up at night, I can try and solve, right? yeah. And his answer was, I don't know if I put in the lego together properly.

A good one.

My APP is built on a parameter of ugar packages, and I know that IT works, IT runs, but are these too supposed to go together? Have I can figured this, what properly like this? So much to exercise left to me that I am fight that tomorrow of my thing will come crashing down.

And I don't really know if I quite possible. I put two things together. I'm supposed to go to get spire working with other things i've done, and that's going to cause me something that causes the world to fall apart. And so ultimately, you're trying to make itself of that person can go to sleep at night and be like i'm pretty confident, i'm good. I used all the things that they said would work that a kind of proving based upon this community and ecosystem of aspire people building stuff to make IT so that I can be more confident that I haven't made that mistake right that's why in in um the donet nine keynote I assume has come hopefull.

This comes out after the key them what you have seen is this community took the idea with the spy, which is just the idea of trying to make IT so more and more people can build things that are is by a components that you can guarantee good at here, to the same kind of requirements and guidelines that are inspire, I call the components still, even though we change the name of integrations. So like because like what is an integration is effectively we have this idea of a spec IT means you know you know you can wire into dependency injection. You know there's a set of you know ten, fifteen things that in order to be an integration, you have to tick.

And so this idea of this bia community to kid is you or anybody who has a, has a library that they want to be able to be an aspire and negation, can also go and be in the list when you say add, inspire and integration. And we can, then we'll have a whole community tk IT kind of effort around making sure that, that we can continue to build up this community of when you building this type APP and you really want this kind of guarantees, what are you do IT? When how does that work? right? It's also still very early in a spie.

There's crazy, crazy stuff we could right, like a spire has the model of your retirement application. We could map IT. We can give you the full description of all the pieces of your APP.

What's more, you could do things that are crazy like some of them to pik. Some people on the team also talked to yesterday who were like here, what if we put a proxy between every communication section? So on your dead machine, you could turn on packet loss between any ticul individual connection, and you can just make that a feature of the tooling.

So you run to happen. You turn on packet loss, right? Or things like that, right? That's possible to do today. But to develop us, go to the effort of figuring out how to do and and turn IT on like probably not, but if he was just there and you just had to click a thing, try will try, right? So there's a lot of that kind of work that you can do in the aspire space is just to try and help people build, make their apps more, rely the begin.

not finding the hard way that finding out .

the hard way. We had a lot of horror stories of people finding out the hard way. And we're trying to be tried to fix all of those things for those people when we were building up.

You don't find out you're logging wrong until you're eating IT and then you go looking for the logue and can find when you find out you've it's been a year.

yes, right?

I mean, you talked about a spire the first time at dot net come for dot net eight when we did our first show with out or I think january of twenty four. So are we on is this v two or this really v one? Like I felt like you were just experimenting a year ago.

This isn't the common microsoft saying that the v two is when you start trying IT. Isn't that we always, never, people used to say.

I three, the three, what is great? The three is .

the golden version. The .

golden version.

yeah. But I mean, you had a year of feedback and pressing against this. I mean, to get up world now, right.

and watch the issues, it's crazy. So yeah so yeah that was the goal was to get that get IT the the ah was addressing what of the things I think is part of this discussion now, which is like what are you done? What is the what customers hit real early?

So so one of the biggest things that we that people hit a lot that we've started to try to address is just so we had this concept of develop a first ops friendly that we did I used to talk about with the team because like you can't like this thing has to fit into that world like and what if you super partial towards only the develop like this because you can do right um and so you needed to build a solution that you lets you that is attractive of and productive of and good for developers, but then lets you easily fit into the flow that those is adin folks one. So IT was very obvious to us almost immediately once people started to use this thing, that they people desperately wanted more ability to customize what the thing that they were delaying to when they were using the kind of default deployments. We should probably talk about deployments more ginerally ally.

But when using the like A D experience specifically, they wanted something more. So this is where this is. The interesting thing about aspire is a is not my, but another principal that we had was kind of extreme ownership. This idea that we can inspire, at least we were not going to let the gaps between the different parts of the things that you needed to be needed to work for you to be successful, stop us from, make the changes.

So if the A D team needed to do something to make the thing good, or even the A W S team needed to do something to make the A W S experience good, we will go talk to them and we will try figure IT out, right? Right department. So one of the big things with action container apps and inspire e and doing A D APP was, well, how do I change the name of the thing, or like, tweet this one setting or the single thing is very good, except this bit.

And I don't want to to have to completely reject from the system. So you can always generate all the device step, and then you hand that off and then involved from there, check IT in. But I want to do that if I had avoided IT.

Can you give me something else? And so now there's a lot more flexibility and you being able to drop into effectively A P rapper around what the bye derated would be within A C D. So you can tweets names.

You can change settings that you previously you would have had to fully ejected into a generate bye p check IT in and then use bye p and then on. And so there's a lot more of now you can kind of pick the right spectrum to be able to fit that. Then there's a lot there was a lot of people who desperately wanted, like wait for.

So I can say I want this to start after this thing. Yes, right? So you got support for that. You have support for persistent containers to keep the school, keep the city will server running in between the executions of my APP so you we have support of that all of these things.

We are all really driven from people who really who were using the thing and we're saying, yeah, we need this. We need this support, right? As well as a few like big internal people who are using IT. Um you went have seen a video from a video in the keynote. If you watch IT from uh one of the architecture works on copilot, the unified like backend for copilot is built using a spire. And so whenever you're using one of the microsoft co pilots and through the the same the same kind of copa back and that's an aspire like back and A P I said that is the orchestrated and the development of despair, right? IT doesn't impact their production.

And glad i'm going to interview for one moment for these very important messages.

Is your on prem dut net framework application a prisoner find freedom on A W S with elastic scale and pay as you go pricing port to cross platform dot net and run on linux without license fees find out more at A W S on amazon dot com slash dot net slash modernize hey, call here today, we're spotlighting a tool that turning heads in the tech community. Ray guns.

A I error resolution brings you smart A I powered insights directly into your development workflow. This feature doesn't just identify errors. IT suggests how to fix them quickly and efficiently in seconds.

If you're ready for a deeper dive into smarter debugging, you won't want to miss what regan has to offer. Visit regan. Dot com slashed dot network ks that's ragan R A Y G U N dot com slashed D O T N T R C K S for your free fourteen day trial to explore the way regan is revolutionizing debugging.

And we're back. It's dat, rox, amazon Campbell, let's call Frankland. Hey, hey, hey. Talking to our Frank glam condron about all the dot net nine goodness of that.

yeah. And just a reminder that you can get an add free feed of dt net rocks by becoming a five doll month patron. A patchy on that dutch ioc sta come. Okay, you were saying lenn.

I don't remember that was some think about we had, we took I think my pain point was there was lots of feedback. We did a lot of features. I highlighted some of them yeah, but he was all trying to just our goal was between when we kind of shipped half way through, doh, half way through to nine now was all about top pain point, fixed top pain point, top pain point when we so that's what it's been. And now with ring is what I think is a really nice state. We have a lot of people who are using IT for real.

And that way to pick my interest, when you we're talking about drop into A A sea sharp rapper around stuff that you don't really understand or need to learn, no.

yes, this is part .

of a aspire. That's not something that's .

able to doctor developers without feature of the asia, develop the A D, C. And the A D experience. We've give you a method and we make an intuitive when you within a spire.

But we are we layer the software Better, layer and kind of segment the software Better than that, right? So you should also be able to get that outside of the aspire experience love that the spy is very much on a collection of pieces that all work fine on their own right, but get Better when you put them all together, right? So the dashboard that shows you all your otel data, it's just an note's dashboard. You can make anything that talk hotel appear .

in that thing and .

does um there and if you you will notice if you go to as a container apps now they have the dashboard, the aspire dashboard, right, because it's just how they just took IT and hosting A C I. I said he is a cool LED point. Let's put IT in there right?

Integrations of juice uga packages the add the add integration vegetate in visual studio is literally a search or new get for things owned by the aspire account like then no, there's nothing special about them there. Renew ga packages with some where up code right? The the kind of way the service discovery is stuff is in marm variables, right?

Like and is very much a you could do all of this stuff to that. You could have done all of things that inspire IT does for you, but IT but IT makes IT puts all together for you. So you don't have to think about IT as much. And yeah.

it's the classic thing of, you know, you want to use this library or whatever, this component that might be an open source component, whatever. First you download the new get package, then you wired IT up in programme CS. And then you might have to add a ccs file or exact java script link or all of that stuff.

And so how do we hope you get there? That's kind of a lot of what he does. Um and then yeah and then when you put IT all together, the over the experience of all those things together is kind of my blowing people look and say, and where was this been on my life?

Ah yes.

real powerful effect, right? The thing is a very .

powerful new effect, but they're individually adaptable and they are super tightly coupled, which is very nice.

And more importantly, if you you know if you've got strong opinions about how you want your club to apps to be built, you can take the pieces out that .

don't work for your plan.

I appreciate that. And so he's still early, early days, but clearly, you guys have been taking a lot of feedback like just look at the issues list 哦 yeah.

I haven't had .

time to trios yeah, but imagine you do this. How much of these issues are people don't understand how to use this versus people want to take IT further?

Yeah yeah, yeah. So there is a lot of ice this not as many issues for I don't understand how to do. There's lot of discussion, right?

So feedback channels are filled with yaba. What is IT? Yes, right. Filled with yaba. What is IT? Um yeah.

I think building an APP with aspire would be a great learning opportunity for somebody who doesn't has never done redis, right? And instead of going to the documentation spending a whole day or two reading IT in trying to figure out how to cramp into your APP, you use a spire and then you go and look and see what I what I did, you know that that makes total sense to me. Yeah.

yeah. IT is good. And that got right. That's partly because that effort to try to kind of make learning linear again, right?

yeah. And to smooth these things out, give us a bit of success here. Yeah if you just follow the deep fault, you're going to be place that if you wants to go further, you can.

right? And then that helps you bigger enterprises because the bigger enterprise wants to try and .

get some level of consistency and plates. I don't want to do a whole show on aspire because it's more stuff going on a dot nine. Lets do the A I conversion.

你看 在 it's kind of .

on the radar for a lot of folks these days.

for a lot of people. yeah. So one of the big things at the first call that I think I would say on that front is if you haven't looked at sAnderson's kind of sample apps um in eight, we talked about e shop. We did this kind of rework of the e shop sample lap make IT all cloud to fied is running with the spire and stuff like that, right?

So as one of the engineers on our team said, we are now expanding the shops cinematic universe to create this e shop back of house application, which is, imagine that you were the like support person have to do with customer support for that e shop kind of APP, right? We build that APP. And so IT uses a lot of A I in ways that sometimes are convincing as, sometimes not as obvious to people, because they are every I don't know you ever seen is, how do I yeah yeah.

sure.

And so IT uses IT for filter and uses IT for summarizing, and uses IT to like, help me make sure i'm work looking at the most important issue, help me find the right when I get the feedback ticket that where I want na respond with T, F, M, read the manual with an f in the middle. How do I ask the I, I to find a bit in the manual that I should too, so that I don't have to go search through the menu or like things, all of those sort of functionality exists in that sample APP, and it's all put together and it's working well.

And senate talks on IT and send present to his video from us party so amazing absolutely so that especially .

if you like yeah but what do I care about? I I if I if I don't have I don't work in APP er I need a chatbot. So what I do go look at some of his stuff. IT is very good. It's inspirational .

for thinking more broadly about what these tools can do for you.

Absolutely, right? And so they mean support of that. So what does the donet team do? What does my team do? So we have this way.

We have started with effectively primitives where looking at, okay, you need to tokens, ze strings in this world, what's the fastest, best, most? What's the best cocoeni zer that everybody in the world should use? Let's make sure an implementation of that exists like this, very bad, like numerous, like these very unfair level, underline primitives that build a bunch of this stuff.

And then effectively, we just start building up as we build building blocks and building blocks and building blocks that allow you to do the, to communicate with the, to do this generated by task. And I want to say community with right. So in the donor ecosystem, you have metic channel and you have, uh, H S D case. You have also like these libraries to be able to do kind of generating vi stuff, and we help and support all of those things.

And then we look at, okay, well, what is the underpinning that we should be building that all of these people need? And this cause is, is the forever question, what is the thing we should build so that they don't have to? And then everybody will adopt IT and there will be everybody be in a Better place.

So that's where we've been going. So one of the things you've seen and on and nine is this extensions I I um we talked about a bit beforehand, semantic kernel already exists and then extensions I I is this kind of building block layer for I want to talk to an L M. How I want to talk to an LLM.

And what that library settled lows you to do is do kind of a chat completion, which is what a lot of the stuff, even the stuff that isn't chat kind of boils down to going to send a dream to a service. I'm going to get a stream back. I'm going to figure out what a means, and I want to do the stuff where I teach that about my own data, and I want to have telemetry plugged in and such.

And he gives you a consistent abstraction over many different types of the m. So if you're going to use open eye to some local thing, are you onna use like allah or you gonna? You can have the same programme experience against a bunch of different models that can plug into the system.

What's interesting about IT is IT effectively uses a middle are pipeline. So the same as they has been to call middle are for those of you playing a loan at home. So you made your request effectively in this world, which is a test completion and IT goes through this middle pipeline.

And so that moves implementation of things like logging out of the provider that is specific to the l, into the generic library, such that every provider doesn't have to do all log stuff. So you was a consumer, get consistent logging. You get consistent tool calling.

Where where one of the things I do, you will call you own methods, if I can, if I can, if I need to, right? IT has all that sort of stuff building to this middle, where layer as supposed to, being each provider that makes IT easier to write providers that hopeful, he means we get more providers. IT also allows other things like semantic coral to like a layer on top and get those same benefits.

Do you do you foresee people using A I for things we typically code forms over data for? Like got giving an example um selecting a report right with a whole bunch of filters.

Could you, instead of having drop down como boxes and things that fill and refill and check boxes and whatever, would you foresee somebody just opening a text box and say, give me all the this data between the state and that date with this particular turn blub a blood and replace all of that U. I code? yeah.

Seems entirely key. That would happen. And I think what i'll happen first is that you'll use A I to build that food, that form that you just described.

First step right? Copilot and friends and all tooling and video virtual code like like you see the explosion of the coding, right? The first step one would be I want to build that for him and is sure he's all the ui.

Um the second part would be um would be yeah I think you could get to that point. Will IT be fast. H would IT be Better for the end consumer? I'm not a hundred percent shore, right? Like least giving them the option.

right? You given the option.

I think what absolutely happen will IT be. But I still suspect you'll have kind of you'll still want your your thing. That is the thing everybody looks like. We already know what IT is. So as I make IT real, as so I don't have to check because I think that process will involve some moderation to get exactly what you want every time. So you will want to do that for the report you have to look at every .

second day right then on top of that, you could add speech recognition so that you can literally talk to the APP. And so you what you want out of IT.

But more important, but more also interesting is that is just mining for insights, right? Like if you're going to have that conversation away where the thing can understand all the data, can you ask questions just like, you know, what has my growth been? What is my year over year growth now above? And I would just tell you and then you don't need to go to look at the chart to interpret what the year video IT is, right? So give you much.

You might have an APP, which is your main APP, and then you might have this A I bought for a lack of a Better thing that you just converse with to get data out of solution that end yeah.

And then you see the other experiments people have gotten where you're effectively getting a free junior death of, like which is agent writing xing do for you against issues on right asking.

well, at least writing my P, R are comment, like.

good look, yes.

ability to actually remember, well, not remember. But I analyzed everything i've changed .

and give, ultimately you want, you want to get to a point on that. A, I assistance where the A I is doing all the toil of code so that you can do the fun parts, right? And but that's yeah I just their .

augmentation tools and their good one. IT doesn't rights unit test that are OK, but you know it's still easier to edit a test and IT is to write them from scratch. And sometimes it's spits out stuff you you just .

have a thought of. Absolutely what's interesting for me, like I guess I to talk about chAllenges that I maybe a unique to me on this front and maybe not, but hopefully interesting the people is like you can put that stuff in a box of ships annually. Yes, yeah because it's something something like this.

This is chAllenge within the I O S. Space is within a spire as well. Difference I guess it's it's common for both of those, the inspect for different reasons.

But um both of those areas are resistant to we're onna ship at once every year and call a good and put IT in a stop on everybodys machine, either because the Price is really fast or because you're depending on lots of stuff that you don't control in the case inspire, right? Um if we need to update the redis client that we depend upon, what need to do do update right? Um and in the I S case, this there might be some new way of doing something that is very important.

Therefore, both of them are kind of not there is where shipping them along with everything else seemed on at nine. But we're making sure that mechanically, they're not tied to shipping, only being able to ship when we ship. A major version of thing.

是 you need to be able to swap out what open eye library using。 absolutely. I would hope you can switch to a local intense of cloud if you want or allama right? Like.

yeah, that's all. That's what a stuff yeah. But and also like what's interesting about that is spire nine works on done at eight, right? But like Normally, we have for some time tried to keep nine is nine and eighty eight, seven and seven because it's just easier it's far easier to reason about, right? What is brain breaks when you start saying. But technically, you could be used in seven version seven of these on version six of that we version four of this thing over here and then your brain explodes yeah.

where I kind of feel like one version of aspire is good .

and that's and so yeah so but if it's two versions, if it's a spirit as a world and nine as a world and they are working on a dont version which don't that's probably um but that's part of this like that the things I don't necessarily always ship in the box now the same as with kind of extensions. I I and it's we can't go to the world where everything, individual ships, because we tried that in the early days of core, if if you remember.

I, we do. And that was a battle. But I also think that IT is L T S. Like IT makes sense to me to support two versions of that.

that which is now the discussion that you then internally about. Maybe this makes a lot of sense. Maybe we should do this more. Would we have decisions on this front we talked about IT.

Yeah no, but you're definitely feeling around for at some things you just want to keep sink like i'm okay with you calling IT inspire nine yes.

even though they made versions anything. So because it's just you gotta try and you have to baLance the worldcon ally, these things can all be independent is yeah, but what how should you people think about IT? Because you need to make IT easy for everybody at the keyboard and trying to figure out what they got to do.

You have to baLance all of the that. You got to baLance that thing. And then it's easy to invent scenario like, but what if we had a thing, he a feed bug fix to this package journey and somebody really wants that and like, yeah but really well and especially .

in investor or any stuff, there should only be one current version of aspire that does I don't care what you work in on the back and IT works yeah I and same for all of this gene I stuff because that is so initiating so rapidly yeah .

and then then then freeing the I I stuff.

The chAllenge is figuring out the things that are gonna enduring yeah, because you don't want to push everything down, right? So we have check completions in and some people will look at that and say you, that's cute, like, but what about this other like mountain and stuff that existing that you go system, right? What about all do? What about streaming audio, that words of fords or like some other thing, right? We like, yeah, yeah.

But we can't. We can't move different layers of dont need, can move a different speeds. We don't help anybody if we if we evolve too fast in the library, in the, in the systematics.

Well, some folks are arguing that a version of dott in every year is too fast.

Yeah, exactly. Some that already too fast for some people, right? yeah. I, my, I and I think with that is actually often more about people when people don't want to feel forced to move. Yeah, more than I care about the fact that there's another version. And also if people feel bad, if the versions .

get too far ahead of them.

yeah, a lots of people are on on six most popular, not the most .

popular version.

So the data tells us that roughly half of the data base only moved from L, T, S to L T S. That's fine.

That's good. That's good thing to know. Yeah, they just speaks to people care about that like there's the other debate.

This is why why have L T S and non L T S like just make them all the same? yeah. But clearly that matters to a certain provos does.

Yeah, yeah.

yeah. And I I mean, all I included a link to even toves every year. Amazing, ridiculously complicated. You need to spend an afternoon reading blog post on performance. yeah. So that I firmly in the camp of when you step to the new version of dot net stuff faster and ways about IT. Yes.

yeah, for all, for everybody listening, every version is poster. Yeah, that's a true is full stop. We try to, we make, we try to make every version of us and is some amazing experiments happening.

A like um the runtime team has been experimenting with, I think, and like a different version of I think like like not a different version, but we're not going to change the way approach, different approach. What if what if I think was more of a runtime feature and less of a compiler feature resting? What is do the yeah what scenario of Better? What scenario is worst, right? Like what does .

that look like rather just spitting out A A think I L with all of its overhead? What if you actually had underpinnings in the O S. Underpants in the language that did this.

right? So like experiments for that, like a grow growing out of, you know, you I maybe you saw some of experimenting with Green threads and doesn't make sense to have a Green thread model in a dot net. The come of that was, yes, we could do this, but he would like me yet in other way.

I'm doing asic, yeah, really, what is the way I don't know IT. What are Green threads? It's there kind of like the way that go routine in go uh work.

It's just A A, A different way of doing. I think i'm not I don't get far from the point to worry about IT. We can grab a link, but what will do is grab a link to .

have a link to the original issue called the Green through experiments. It's it's a good.

interesting way if you care about learning what is threads or about this this topic in general but to be honest, something the most you all probably don't have to care about .

so yeah like you know so I wanted just go back before we sign off here you are talking about at and how A O T is progressing. Our friend dalan bey, we just talk to think last week before this comes out. right? rich?

Yeah.

right. so. He has a language called rock star and .

course one.

but he was waiting for a ot to really come into its own. And he was, like, gotten at eight, finally delivered. So he can, you know, with a githa action, produce a fully native version of his his interactions that all platforms.

And so that's there in the eight in dot and night. Does IT just make faster and smaller? executor? Les, no.

I, so it's more of IoT at this point is the more of the ecosystem just works. So like in A F doesn't really work, right? If does a lot of things that don't work super great inot. So you're trying to do a compiler, it's one hundred percent five, like some parts of the stack don't necessarily work super well with IT. And so it's it's more about broadening the ecosystem so that more and more of the things just work without you thinking about IT is what the progression for the um is for least the next year or two. O K in the context .

of A O T. This is another subject before run at time, windows on ARM. Yeah so mean, my presumption has always been you guys going to take care. This for us is not not developers. If you want to run ARM, you run on ARM and .

jit will simply do IT magic IT.

Yeah ah but if you are ot, do you have to pick a platform? yes. yeah.

So here and and the obvious one is at sixty four and does that's what everybody he's running. So that makes like pretty easy. And then flip and ARM shows up you like.

And then now you've got to do a new build. You need a new company.

You need a new compilation for .

the new platform that armed to absolutely. But if you are a compiler, you probably want that up and well.

And if you are deploying a back in chunk code that needs to be absolutely as fast as possible and only runs in exactly one place, a specific in instance in in asia, you can A O T that .

if you're running in A A, A taino. And when you have a lot of control over this thing, you might always specify a lot of that platform information. So you know, it's never going to change, right? But to your point, to some extension, do running on a CPU what you you are.

And next, the job of the run time was to at the C L R. Ways to take care of this for IT is interesting to think because they are starting to roll out those big mayor ARM processors into azure. Now that is one thing for me to build a dot net and run IT in a regular APP service or then run IT on a linux instance. But now i'd have the option to run in this an army instances say you that it's like twenty percent, twenty five percent trip around another incenses. I wonder what is gonna on enormous less performance?

You no, yes. If you're using Normal.

yeah you know it's going to work. It's just like the simple er architecture of ARM, the way that IT processing structure that I am clearly a hardware geet. I I wonder if he will actually i'll perform and be cheaper from a resource consumption perspective. But you is also haven't had as much time to optimize for ARM yet like maybe another version or two from now, your ARM optimizations will be stunning.

Well, be that that's the thing that makes the perfect changes .

in the version in the right, just out sing to rock run IT on an armin.

Since I I always I still can't get out of the mindset that, well, I will but that ARM IT means lower power, right? That is is that is totally change. Isn't the macbook m two kind of stuff is not an armed ship the .

up for now and yes, I would say higher performance set up the this right now. That's because it's a super asic, right? Like it's the processor and the GPU and the C B A and the np u and like everything integrated on this chip of duo, right? yeah. So and that's where they're getting a lot of their wins and that's that dragon did with their ultra acts, right? That this new windows on ARM platform is that process.

Yeah this is and I this is part of the world that I don't spend as match timing. But the um the assembly when you start looking at the assembly that he's getting generated when against x ty six or a vers vers ty two and the ARM instruction said he is getting fairly large. But like there is some cool stuff. I watch some people recently where you do on pilot, if you use like um one of the tools to do the completion and you put like excited six versus ARM yeah and then you take the same code and you look at what the assembly looks at, its vast ly different frequently. Look 4x has this .

baggage of decades。 You know that it's bridged from eight bit to sixty bit to thirty two bit to sixty four a bit and ARM is only a bit thirty two or sixty four like a just fundamentally simpler er to the point where that snow I G machine is emulating x sixty four fast enough that you you barely noticed IT it's more power consumption of but it's fast.

Yeah for the for some of the people there who are interested in this should absolutely well first of uh tob and hands m and do some deep dnet I drop assembly, I believe you should watch some of, but also just jump ing to some of the deep pillar apps that are out there.

It's ride something basic, just do a yeah do a console, the right line and then good look at the I O, that then start and then start clicking around and look at some of the assembly not to try and understand IT, just like heavy work and see how IT goes. And if you and if you do want to learn that layer of the stack, I go not it's so easy, it's not, not easy. IT is so available now, right for you.

If you want to choose to go into that part of the stack to go, do IT like you can do that. Now I was kind of impossible for a long time for you to really figure that stuff out. And now there's what's more resources available.

This was a very easy tool to just write some code, see what the output would be look like. Um last at last weekend I spent two hours and I had a basic APP. I had a basic O S riding to the console, right? Like I had created a grab boot load that, like booted an emulator in Q, M U, and like was riding hello well to the screen, right?

That was like I could follow a tutorial on the internet to get to the point where I was booting hardware. That's insane. And it's amazing. Crazy like doesn't matter which part of the computing world that you want to be involved in right now, the availability of materials is is ridiculous. So even though we said earlier that he would be scary in hour and maybe I wouldn't to be develop, developed these days here, on the other hand, man, yeah, how much more stuff is available for the add if I would do develop these days?

And so much more to do. But this is where the tool in comes in to play. You know, two years ago, building club innately and dot net hard, right? Aspire, maybe Young, but it's easier now. Yeah, I need to only get easier from here.

Yeah this is the vantage of kind of donas a platform is because you have us, my team, constantly looking at what sort of apps as everybody have to build. How do we make that as easy as possible? And then as so as donate evolves type apps, you need to build chances that we will be making that easier for a bit for you or at least we will be any year from now. Yeah, one of the chAllenges I tried to set for myself and for my team is that constant progression of what what does modern mean?

Yeah, right.

really. Like, what is what is if I was to go do, if I, if I am, got a Green fields project today? And i'm like, yes, this time this time we to do the right then what I think I would build yeah like and how do I make that thing that you're trying to build be amazing yeah without flying, the people who are don't get the chance to do that. Gree felt for by the westside, right? Because you also need you the that is often far more impacted for me to help the person who needs to get to that new, that the different architecture.

Think two steps. First is what's the perfect Green fill of mutation? And then how do I these tools to bridge my Brown field after that?

exactly. And you see I spire trying to break that. Well now yeah, years ago we didn't know what the idea Green will field spaces is, right? Ah um you can and they still like areas of the stoom about lots of areas to go look at in in that in that all in this whole place.

Well, glad what's next for you after that net nine?

What's in neuron box? I suspect I think ten is the next number after nine.

You know, I had a feeling that says we're funny, like take vacation or something before you jump back in.

And I got a bit there's a .

bunch of .

stuff .

that sitting in like .

the next topper that didn't make IT there is.

So there's a lot of teams, there's a lot of people who are now going through their backlogs. Es, so there's a lot of backlog. E grooming happening at the moment, like one of the things we want to want to pop that we want to bring up in.

In the next version, a spire needs to do like some miners before ten, so you to do some like backwards is compatible like let's throw a few brand new features in here like we just chip support for big areas like functions and friends so that i'll have ship and i'll have to ship before the next version yeah, there's a lot of that. There's a lot of which of these experiments do we now want to bring for? Which of them do we want? A lot of those kinds decisions have to be made.

And then some botches and blazer that needed dressing this.

There is a lot of work on all of the like platforms, right? Is all need constant evolution and constant love to make Better. Now he has got a way Better blaze, significantly Better. But blazer in practice are only very recently well kind of switching into this full stack, kind of almost any framework being a web stack. So like there's a lot of work there.

There have been talking a lot about reliability of connections within blazer and trying to make sure circuits and connections and stuff and much more reliable, resilient in what way you can do, for example, like as well as a whole backlog of stuff at that team has who knows what's onna happen in I, I, six months from now that people are going to need to use? Like I need people, like I need big companies who are today knocking on my door saying we've got a fleet of dont applications and we want to them to be using this new generation by ice staff today. What do you got? So I need to figure out how to answer those people. yeah. And then then and all of stuff like every every week is different.

Pretty cool problems. Yes, I am are still .

problems, but they are cool ool. Not many other jobs where I get to listen to somebody talk to me about like A G, C, and like a run time, like icing stuff as well as I, I, I, and like how we're going to do class native stuff. And all in .

one week.

I can do.

It's all a good stuff that glen counter. And thank you for spending this time with us. And wow, what a great. What a great conversation.

Thank you. Enjoy everybody.

You will talk to you, dear listener, next time on dot net ves.

Dn rox is brought you by Franklins net and produced by pop studios, a full service audio, video and post production facility located physically in new london connective and of course, in the cloud online at P W O P dot com.

Visit our website A D O T N T R O C K S dot com for R S S feeds, downloads, mobile apps, comments and access to the full archives going back to show number one recorded in september two thousand two, and make sure you check out our sponsors. They keep us in business. Now go write some code, C, N, X.

fun.

That day I was time.