Speaker 1: How'd you like to listen to dot net rocks with
Speaker 1: no ads? Easy? Become a patron for just five dollars
Speaker 1: a month. You get access to a private RSS feed
Speaker 1: where all the shows have no ads. Twenty dollars a month,
Speaker 1: we'll get you that and a special dot net Rocks
Speaker 1: patron mug. Sign up now at Patreon dot dot NetRocks
Speaker 1: dot com. Hey, welcome to dot net Rocks Live from Build. Well,
Speaker 1: it's not live to you, but it's live for us.
Speaker 2: It turns out every time we record it's live.
Speaker 1: We used to say that at the beginning.
Speaker 3: From dot net rocks, what's the what's the alternative dead Dead?
Speaker 3: From dot com? It's Do Not Resuscitate otherwise known as DNR. Okay, well,
Speaker 3: it's dot ne rocks where build. We just got out
Speaker 3: of the keynote and Scott Hunter shows up and we're
Speaker 3: going to have a conversation.
Speaker 2: Yeah, I bet we will.
Speaker 1: And before we talk to Scott, we have to do
Speaker 1: a little thing about what happened in nineteen fifty three. Yeah,
Speaker 1: because this is show nineteen fifty three. Scott, you're welcome
Speaker 1: to join us, dive in on this, Yeah, if you want, sure, So,
Speaker 1: Mount Everest Sir Edmund Hillary have Tensing Norgay, who is
Speaker 1: his sherpa. Right, Ye became the first people to reach
Speaker 1: the summit of Mount Everest on May twenty ninth. You
Speaker 1: kind of went up Mount Everest.
Speaker 2: I went to base camp, went to the bottom of Everest, Yeah,
Speaker 2: which is the same altitude as the top of Kills.
Speaker 1: Also and Fuji, I have done Mount Gratton, which is inton.
Speaker 1: It's basically a recycling pile that I walked to the
Speaker 1: top of and is twenty feet all right.
Speaker 2: Okay, but that's the thing that kills you after doing Kelly.
Speaker 2: Then you go to beverstpace camps, like I am at
Speaker 2: the bottom of this mountain and I feel like I
Speaker 2: felt getting to the top of a chilly yeah Fortal.
Speaker 4: It's crazy that you, you know, you people go to
Speaker 4: a base camp at Everest and stay there for a
Speaker 4: couple of weeks to acclimate before they go all the
Speaker 4: way up. So it's like, you know, for Killy, we
Speaker 4: didn't really do much a lot of acclamation a little bit,
Speaker 4: a little bit, yeah, but you told me.
Speaker 1: I think that the grade for Fuji and for Killy
Speaker 1: is a little more easy to traverse, whereas Everest is
Speaker 1: kind of a steeper grade.
Speaker 2: Yeah, I don't know. It was very gradual getting to
Speaker 2: the base camp. I didn't go past that. But there's
Speaker 2: a bunch of different routes on Killimanjero and I think
Speaker 2: you did. You did the sixth day route too, didn't you.
Speaker 2: I did, and that has more acclamation time, which is
Speaker 2: actually important. They say, if you do the sixth day route,
Speaker 2: it's like a ninety percent summit, but if you do
Speaker 2: the four day route, it's like a fifty percent Summit's
Speaker 2: you just pushing your body too hard?
Speaker 1: All right? Well? The Korean War officially ended in nineteen
Speaker 1: fifty three an Armis disagreement signed on July twenty seventh.
Speaker 1: DNA was discovered by James Watson and Francis Crick, building
Speaker 1: on Rosalind Franklin's work. I don't think there's a relation.
Speaker 1: According to King's College, London, Joseph Stalin died on March fifth.
Speaker 1: Dwight D. Eisenhower was sworn in as President of the
Speaker 1: United States on January twentyeth Queen Elizabeth iiO Is crowned
Speaker 1: on June second. Jesus A good year, yeah, and some
Speaker 1: tech advancements, Richard, I'm sure we'll have more. But the
Speaker 1: US detonated the first thermo nuclear device code named Mike. Yeah,
Speaker 1: in the Central Pacific Ocean. I know Mike, who was
Speaker 1: like a thermonuclear device.
Speaker 2: Yeah. The big one is IBM's six fifty, which was
Speaker 2: the sort of first mass produced computer. So we're finally
Speaker 2: you know, up until then, every computer was bespoke. Yeah, right,
Speaker 2: they were calm built. You know. I told that story
Speaker 2: about when they built that the first that first machine,
Speaker 2: and the Census bought it, but then they wouldn't give
Speaker 2: it to them because they didn't were afraid to take
Speaker 2: it apart. Right, So yeah, the six fifty was the
Speaker 2: first sort of reliable, rebuildable computer that they've asked.
Speaker 1: All right, well that's just a few things that happened.
Speaker 1: But geez, what a year.
Speaker 2: Yeah, ninety fifty three important year knowing about.
Speaker 1: It all right? Well, as I said, Scott Hunter is
Speaker 1: here and we have to do a thing first called
Speaker 1: better no Framework roll the crazy music. Awesome what he
Speaker 1: got Our friend Simon Krawn, of course, he is a
Speaker 1: font of good stuff. He finds things. He's part of
Speaker 1: the app and X team. Also he's helped me out
Speaker 1: with some of my GitHub projects and just a great guy.
Speaker 1: So he's created z link z l huge his project.
Speaker 1: Oh no, it's not his project. He found it and yeah,
Speaker 1: so he found it and shared it with me. It's
Speaker 1: a zero allocation link library for dot net. What does
Speaker 1: that mean, Well, allocation, zero allocations means you don't create
Speaker 1: anything on the heap, right, you don't create anything that
Speaker 1: needs to be garbage collected. So that's a good thing.
Speaker 1: And I was talking to my buddy Scott before you
Speaker 1: got here, Richard, about zero allocation. And it turns out
Speaker 1: a lot of the optimizations in dot net have been
Speaker 1: because of zero allocation.
Speaker 2: That's been very much a move, right. I mentioned a
Speaker 2: lot of the work they did in that exotic version
Speaker 2: of Polly, which about minimizing allocation.
Speaker 1: Right, and so then we got talking about ring buffers,
Speaker 1: which is.
Speaker 4: I was going to say, yeah, Kestrel and dot Net.
Speaker 4: We were actually sitting in a room and building forty
Speaker 4: four one day and we're trying to figure out, obviously,
Speaker 4: how do we make the web server, you know, allocate less, Yeah,
Speaker 4: because that's the you know, the negative of garbage collection
Speaker 4: is if you allocate a lot of memory, well, the
Speaker 4: garbage collector has to go work in the background to
Speaker 4: go get rid of that memory, and that's going to
Speaker 4: burn CPU and that's going to slow things down. And
Speaker 4: so we were trying to find you know, a lot
Speaker 4: of the early optimizations in dot net the dotin corbets
Speaker 4: were how do we reduce the allocations that we're making
Speaker 4: in the first place. And so one idea was, hey,
Speaker 4: the webserver is always turning through requests. Let's just put
Speaker 4: a ring buffer inside of there, and then we're not
Speaker 4: allocating at all, we're just reusing memory.
Speaker 1: What's a ring buffer?
Speaker 4: Actually, I just think it's think think of it like this,
Speaker 4: a big circle of memory. And what you do is
Speaker 4: instead of allocating memory, you just keep reusing some part
Speaker 4: of that that buffer again and again and again, going around.
Speaker 4: You know, as as things are done, they fall off
Speaker 4: the end. And but a big chunk of kestrel is
Speaker 4: basically first buffering a big ring q if you think
Speaker 4: about it like that way. And when we first did it,
Speaker 4: we were using you know, uh unsafe sea sharp to
Speaker 4: do that because it's just memory and pointers and stuff
Speaker 4: like that. And we actually added features to c sharp
Speaker 4: later they got.
Speaker 2: Remember remember memory created a whole framework to make it
Speaker 2: safe so we didn't have to do that sort of thing. Yes,
Speaker 2: and then he did it inside of it anyway. Anyways,
Speaker 2: that's clever.
Speaker 4: But but then we put the sea sharp features in
Speaker 4: so we could go get rid of all that stupid
Speaker 4: stuff that we were doing. Anyways, So as.
Speaker 1: It turns out, you know, uh remember I don't know
Speaker 1: if you remember this or if you were with dot
Speaker 1: net Rocks back then, but Chris Sells Richard uh talked
Speaker 1: about how he wanted to bring reference counting back into
Speaker 1: dot net. It was the early days, and uh, you know, yeah,
Speaker 1: he was used to reference counting in Calm, and you know,
Speaker 1: he had control over what happened and what got deallocated
Speaker 1: and when I think it was when he did that
Speaker 1: whole thing gets ten Yeah, disposed and I disposable and
Speaker 1: all that. Yeah, but his sense man in that crusade,
Speaker 1: of course, we went into lake.
Speaker 4: I was say, reference counting. Oh my gosh, I mean
Speaker 4: technically the garbage collector is doing that. You just don't
Speaker 4: have to see it. So it's like it is reference
Speaker 4: counting behind the scenes. You just don't else how would
Speaker 4: it work. Yeah, some are it has to go. Nobody's
Speaker 4: using this anymore. Yeah, I can now get rid of it.
Speaker 2: And there was a there was a bake off in
Speaker 2: the early version of dot net between a reference counted
Speaker 2: implementation and the garbage collecting implementation. Patrick Dessaud did the
Speaker 2: the the garbage collected version and kicked But yeah, it
Speaker 2: was Admittedly the guy had an advantage because he'd done
Speaker 2: the Microsoft imilmentation of the JAVM, like he knew that
Speaker 2: cold and got to do it all from scratch. Like,
Speaker 2: I don't think we can underestimate the number of benefits
Speaker 2: that dot net had from having folks from deeply familiar
Speaker 2: with JABA to say, hey, we're going to do generics right,
Speaker 2: we're going to do the type system right, and we're
Speaker 2: going to do garbage collection right.
Speaker 4: Yeah, people forget that. You know, visual j plus plus
Speaker 4: was a thing, was it that Patrick worked on, Andrews
Speaker 4: Halsberg worked on, and so literally, you know what we
Speaker 4: call net today is kind of a fork of that
Speaker 4: thing with the different language, but it's got the same
Speaker 4: garbage collector and all that stuff. And that's where that
Speaker 4: I'm sure that's where Patrick brought the garbage collector from.
Speaker 2: It, even if he started from scratch it. You know,
Speaker 2: it doesn't matter. He had it in his head, he
Speaker 2: thought about it, and implemented more than arguably anybody else
Speaker 2: in the world at that time.
Speaker 1: I remember when Microsoft killed Visual j plus plus, and
Speaker 1: I can't remember who it was, and I probably wouldn't
Speaker 1: want to say their name anyway, but I said, hey,
Speaker 1: why don't you guys killed j plus plus? He said,
Speaker 1: we kept getting sued.
Speaker 4: We sort of deserve to get sued in this particular case.
Speaker 4: So you know, we we The reason we got sued
Speaker 4: was because we had built a JVM, and we added
Speaker 4: features to our JVM that were not standard Java features.
Speaker 4: The problem is because because we have an operating system
Speaker 4: that's installed on a billion machines, our JVM with its
Speaker 4: non compliant features, is suddenly on everybody's Every Windows device
Speaker 4: in fact, is there. And so in those features, those features,
Speaker 4: commonly enough are are super important.
Speaker 2: C sharp features.
Speaker 4: There's delegates were one of those features. And UH the
Speaker 4: father of of p and voke which probably I think
Speaker 4: it was called jada rec back then. UH, And and
Speaker 4: so those features. Anders put those features in as he
Speaker 4: was building. UH, basically the father of of UH wind forms.
Speaker 2: The way I've heard it described is with it. So
Speaker 2: I think Silverburg is quoted as saying this, it's like
Speaker 2: the day that Sun and Microsoft signed that agreement, both
Speaker 2: companies were in violation of it, and it just continued
Speaker 2: from there. He that he, you know, through pure force
Speaker 2: of will, and whatever I've seen of Silverberg lots force
Speaker 2: of will. He got both parties to the table to
Speaker 2: sign that thing. But he doesn't mean he was going
Speaker 2: to change their personalities. There's only so much you could do,
Speaker 2: and so at some point they just had to call
Speaker 2: the ball on this. It's like, look, this is not
Speaker 2: what the intent was. You got to stop.
Speaker 1: Well, it sounds like we're starting the show, but we're
Speaker 1: really still in the preheader, so I think it's your turn.
Speaker 1: You need to tell us.
Speaker 2: Read a comment. Yeah, I got to comment off the
Speaker 2: show nineteen thirty eight when we did with Frank Suadengue
Speaker 2: and Sasha talking about the new version of Uno. Yeah,
Speaker 2: because it's a great comment, which which is from Fabian
Speaker 2: Hugil who said, I really liked that Carl relativized good word.
Speaker 2: I like that hot design and hot reload at some
Speaker 2: point I have had that. I have had very similar
Speaker 2: experiences a visual designer just cannot match what a scene
Speaker 2: graph based UI can do, you know, like HTML, like
Speaker 2: you know said it. So for every non trivial UI
Speaker 2: you will eventually write some zammal code and as to
Speaker 2: hot reload, yeah, it's fancy, but even for non UI
Speaker 2: dot net assemblies, it often fails for even not too
Speaker 2: large changes. I mean this is a challenge long reload.
Speaker 2: You can only do a little fudge before it's like, dude,
Speaker 2: you need to compile, Like sorry.
Speaker 1: Yeah, you need to stop and run again. But fabe
Speaker 1: my experience. Yeah sure, yeah.
Speaker 2: Fabian goes to say, you know, I never really use
Speaker 2: it and I don't miss it, which is interesting. I mean,
Speaker 2: we put a lot of hype around hot reload, but
Speaker 2: it's like, if you've got a workflow that works for you,
Speaker 2: you don't have to go further than you know where hot.
Speaker 1: Reload works best if you're changing CSS.
Speaker 2: Yeah, tweaking, tweaking all that little fence posty stuff.
Speaker 1: Change one line of code.
Speaker 2: Oh no, it's time to read about yeah.
Speaker 4: Usually, Yeah, we just haven't done enough work to make
Speaker 4: we can make hot reload better. It's just not good
Speaker 4: enough yet. So it's we had a huge effort, uh
Speaker 4: that we went. We first put it in the in
Speaker 4: the product, and then we kind of got busy with
Speaker 4: other stuff and it hasn't had enough love recently.
Speaker 2: It's got to go back into the looping. It needs
Speaker 2: to go back in the loop. Bitt ten maybe so Fabian,
Speaker 2: thank you so much. You're commented. A copy of music
Speaker 2: co By is on its way to you. And if
Speaker 2: you'd like a copy of music, go buy. I write
Speaker 2: a comment on the website at dot net rocks dot
Speaker 2: com or on the books. We publish every show there
Speaker 2: and if you comment there and I read all the show,
Speaker 2: we'll sign your copy of Music to Koba.
Speaker 1: And as Richard mentioned, music to Koba is still going strong.
Speaker 1: Music to code by dot Net We're up to twenty
Speaker 1: two tracks and you can get the entire collection in
Speaker 1: MP three, flak or wave format. And oh my god,
Speaker 1: it's Scott Hunter.
Speaker 2: Surely me.
Speaker 1: I'm going to introduce him for real. He is still
Speaker 1: the vice president of product for Azure Development Experience and
Speaker 1: builds all the tools dot net tools for Azure. Yeah,
Speaker 1: that's absolutely I love that. I would love to be
Speaker 1: able to get to that kind of bio someday, you know.
Speaker 2: Just does all the things I do the things with
Speaker 2: the stuff, all the.
Speaker 1: Things with the stuff.
Speaker 4: You just if you work at the same company for
Speaker 4: like eighteen years, this is what happens.
Speaker 2: Yeah, the the title gets shorter.
Speaker 4: Yeah, and you touch all the different parts of you know,
Speaker 4: the Microsoft ecosystem over that time.
Speaker 1: But getting back to what we were talking about zero allocations,
Speaker 1: it's not just Kestrel, but every genera, every version of
Speaker 1: dot necor dot nine and now ten before that seems
Speaker 1: just to be getting faster, less memory consumption and more scalable.
Speaker 2: Yeah.
Speaker 4: I was one of the cool features that you know,
Speaker 4: we talked about the garbage collector Collector earlier and uh,
Speaker 4: one of the coolest garbage culcture features that we've done recently,
Speaker 4: and I think it just went under the radar. Nobody
Speaker 4: even thinks about this is we had some I remember
Speaker 4: we had a couple of customers and they were comparing
Speaker 4: dot net to go and Rust and I think we
Speaker 4: were winning on the performance side of it. We were
Speaker 4: you know, uh and those things, but they were complaining
Speaker 4: about the memory we used, right, and uh, we if
Speaker 4: one of these benchmarks we had and we looked and
Speaker 4: we saw that we were using roughly twice the memory
Speaker 4: that Go and Rust were using, and at the time
Speaker 4: we we didn't have We didn't really go think a
Speaker 4: lot about it. We were busy with other stuff. But uh, it.
Speaker 1: Was was that a real test? I mean, was it
Speaker 1: a test of just loading it up and seeing what
Speaker 1: the memory usage is or over time after after three
Speaker 1: hours of use? You know?
Speaker 4: So I don't remember the exact details.
Speaker 2: It was.
Speaker 4: It was the customer that brought their own benchmarks in
Speaker 4: and they'd run their own benchmarks, and then we said, hey,
Speaker 4: can we see your benchmarks?
Speaker 2: And you bring up a great point though, carcas One
Speaker 2: of the things when I did a lot of load
Speaker 2: testing back in the day with dot net websites especially,
Speaker 2: you needed several hours for the garbage collector to mature, right,
Speaker 2: You have to have pushed enough pages through and so forth,
Speaker 2: and filled memory up and had done a couple of
Speaker 2: second gen garbage collects before you even really knew what
Speaker 2: a site's going to look like. You could fool yourself
Speaker 2: on a fresh start with empty memory and run a
Speaker 2: quick benchmark and go, all this stuff looks great.
Speaker 1: Yeah, like dot Net could have been pre allocating memory
Speaker 1: that it might have needed later and Go or Rust
Speaker 1: might have not and so you have to look at
Speaker 1: it after you.
Speaker 4: That's that's that's actual we found was we have a
Speaker 4: week what I you know, Mami might kill me. Whatever
Speaker 4: termatics made up, but it's I call it a greedy,
Speaker 4: greedy garbage collector.
Speaker 2: Right.
Speaker 4: Hey, you know when when you when you boot the
Speaker 4: app up, the garbage colector goes how much memory does
Speaker 4: the machine have? I'm gonna go grab.
Speaker 2: All that stuff?
Speaker 4: Yeah, yeah, And that was the exact thing that the
Speaker 4: benchmarks these companies brought to us were showing was basically,
Speaker 4: we weren't using all that memory.
Speaker 2: No, we were just getting ready just in case you
Speaker 2: needed We were.
Speaker 4: Getting ready in case you needed it. And then in
Speaker 4: dotten at eight, that's where we put this behind the
Speaker 4: feature flag, a new mode where the garbage clutter is
Speaker 4: not greedy, right, And so basically we're going to start
Speaker 4: with a little bit of memory and we'll allocate more
Speaker 4: memory as as necessary.
Speaker 2: And and you're referring to Maoni Stevens, I think the
Speaker 2: new Patrick, who was the new Patrick decide I've had
Speaker 2: conversations with that woman. That's one of the most remarkable
Speaker 2: minds I've and a company full of remarkable minds. Holy
Speaker 2: man just thinks on a different level.
Speaker 4: She knows more about garbage collectors than you and I
Speaker 4: would ever know in our entire life.
Speaker 2: Richards and prest I am staggered.
Speaker 1: Staggered, that's so much to be scared.
Speaker 2: It's just ex shredded. But again, what a specialist.
Speaker 4: And you know Patrick still came in after he retired
Speaker 4: and still still comes in and talks to Myoni and
Speaker 4: stuff like that. And and uh, because I'm sure he
Speaker 4: still has ideas too, and I'm sure they bouncedid these.
Speaker 4: I would love to see one of those conversations because
Speaker 4: I wouldn't understand.
Speaker 2: Any of it. You just sort of stare in awe, but.
Speaker 4: Uh, you know, it's amazing. But she she built a
Speaker 4: new feature which is the one where we don't have
Speaker 4: the greedy allocation, and we put it in eight, but
Speaker 4: it was off behind a feature flag because before we
Speaker 4: actually put it put it on on for default, we
Speaker 4: wanted to actually run a bunch of the services we
Speaker 4: run inside of Microsoft a while. So let's let's go
Speaker 4: run a whole bunch of the M three sixty five
Speaker 4: back end on this on this technology, uh, in this
Speaker 4: new mode and we'll get all the bugs figured out
Speaker 4: inside of Microsoft.
Speaker 2: I wouldn't have messed with metrics just because it's calucating
Speaker 2: memory different and then showing how it's memory with nine
Speaker 2: it's on by default. Okay, so turned out to be
Speaker 2: non event.
Speaker 4: I'm sure we fix bugs. Yeah.
Speaker 1: But you know what, though, I would almost want the
Speaker 1: pre allocation because it's going to be faster to allocate
Speaker 1: memory when it needs it to just use it.
Speaker 4: The uh I think the scenario that you want the
Speaker 4: non greedy ones. Are you running on like an IoT device? Yeah, okay,
Speaker 4: if you're running on something constrained. So in this case,
Speaker 4: the customers was running vms. It makes no sense to
Speaker 4: me anyways. So I think the vms are like sixty
Speaker 4: four megah this day and age sixty four megs snooze.
Speaker 4: My kids don't even know what megs are. They start
Speaker 4: with gigs yeaheah.
Speaker 1: So it's like, uh, well, and that brings up another thing.
Speaker 1: Could there be a configuration that says, you know, what
Speaker 1: percent of available memory should the garbage collector start with?
Speaker 4: There might be a setting for that somewhere in the system.
Speaker 4: I have no idea. There's there's probably a whole bunch
Speaker 4: of feature flags on the on the on the GC
Speaker 4: that are way beyond as.
Speaker 1: Long as this sign the registry, and we should.
Speaker 4: Well, nipcore can't use the registry because it runs on
Speaker 4: non Windows offerating system. So we, uh, we left that
Speaker 4: building behind, thank you. We should talk about coding agents, Carl, I.
Speaker 2: Know we should, totally should, but we just streshed out
Speaker 2: of the keynote. Yeah, and I gotta say, you know,
Speaker 2: somebody's asked you, so what do you think it is?
Speaker 2: I think Microsoft's doing what Microsoft's best, which is building
Speaker 2: tools so the rest of us can take advantage of
Speaker 2: the new capabilities. And what was this hour and a half,
Speaker 2: but check out the new tools.
Speaker 1: And one thing that we were talking about before we
Speaker 1: started recording was it was almost a little what was
Speaker 1: the word that I used, like it was not confusing,
Speaker 1: but it made it look simpler than it was because
Speaker 1: basically it just looked like the demos where people clicking
Speaker 1: things and typing a sentence and pressing buttons and boom,
Speaker 1: everything's there. But you know, at least I know that
Speaker 1: it can be that simple if I know what I'm doing, right,
Speaker 1: So I didn't understand it misleading, I think was the word.
Speaker 1: I didn't understand it. I couldn't if you asked me
Speaker 1: to reproduce any of those demos right now, there's no
Speaker 1: I wouldn't even know where to start. I don't even
Speaker 1: know what in my company, which copilot tool I should
Speaker 1: use to start. So I'm a little confused.
Speaker 4: I can try to help, but I will tell you.
Speaker 4: Even you know, Sam Altman, who saw you brought in
Speaker 4: for a little bit, yeah, kind of was kind of
Speaker 4: talking about you know, the problem with AI to day
Speaker 4: is if you're using chat GPT, Oh, there's a screen
Speaker 4: full of models, and then there's there's an even an
Speaker 4: item called more models, and you click that and you
Speaker 4: see even more.
Speaker 1: Models nineteen and how is Joe user?
Speaker 2: You know?
Speaker 4: No, you know as somebody that's been using agent mode
Speaker 4: in VS code for a while. By the way, agent
Speaker 4: modes is now in Visual Studio too, so you so
Speaker 4: you get both of.
Speaker 1: A pin in that and come back to that.
Speaker 4: That's where this before you see the coding agent, you
Speaker 4: have to think about agent mode. And once again I
Speaker 4: laugh because it brings us back full circle. It's like
Speaker 4: agent mode is something that I think we shipped it
Speaker 4: maybe a month ago in the public builds of VS Code,
Speaker 4: and now it's in the builds of VS that were
Speaker 4: Visual Studio that were released this week. It's the forefront
Speaker 4: of what the coding agent is and so agent mode.
Speaker 4: And by the way, I laugh because it's got a
Speaker 4: whole bunch of model selectors as well. It starts with
Speaker 4: GPT four.
Speaker 1: But I think your point was, now you don't have
Speaker 1: to know where all these models are. It's going to
Speaker 1: select you'll.
Speaker 2: Do sort of.
Speaker 4: What we've seen is the coding models have gotten better
Speaker 4: at a tremendous rate. I tell my team the stuff
Speaker 4: we showed at build this morning. If you told me
Speaker 4: it would that even be possible a year ago, I
Speaker 4: would have said no.
Speaker 2: Interesting.
Speaker 4: And so the basically the the coding models got so
Speaker 4: much better, super fast, and it really anthropics Claude three
Speaker 4: sevens on it.
Speaker 2: That seems to be the hot one, right.
Speaker 4: That was the one a couple of months ago that
Speaker 4: really kind of tipped us over the edge. And it
Speaker 4: was the first time this stuff got good. I'll get there, Carl,
Speaker 4: it got good. But then then we hear, like you know,
Speaker 4: a few weeks after that, then Jim and I two
Speaker 4: five is supposed to be the best coding coding mode.
Speaker 2: How do you measure that? Like? What makes it better?
Speaker 4: I think you have to just triumph Richard and see
Speaker 4: what what what your result is.
Speaker 1: And then but the idea is that these are tuned
Speaker 1: for coders.
Speaker 4: They're tuned for coding. They're not you know, you don't
Speaker 4: ask them, you know how high is Mount kil manangero?
Speaker 4: You actually ask them the right code. But agent mode
Speaker 4: is where and this is the demo I do and
Speaker 4: I love doing this demo is I'll bring up vs
Speaker 4: code with a Blazer application and I'll just go into
Speaker 4: agent mode and say change the buttons in the web
Speaker 4: application to be around in orange. And then what happens
Speaker 4: is the ll M behind the scenes will go look
Speaker 4: at the at my projects. So remember when we first
Speaker 4: started down this whole cold pilot journey, what did it do?
Speaker 4: It did code completions so you could press tab and
Speaker 4: it would fill in still in more stuff, or you
Speaker 4: could in the chat window you could say how does
Speaker 4: the link list work? Or show me how to write
Speaker 4: a bubbleshort in dot net, those types of things. But
Speaker 4: with these new models, now you can actually ask the
Speaker 4: thing to go change your app. And so when I went,
Speaker 4: we just had thunderstorms. When when you go and ask,
Speaker 4: you know, I'll tell you this, Carl, when we're when
Speaker 4: we're done, you should go, you know, boot up VS
Speaker 4: or VS code and go and do this and say,
Speaker 4: go change my Blazer app. And you'll it's funny you
Speaker 4: watch it. It's like, hey, I found the web app.
Speaker 4: I noticed that your web app is a Blazer app,
Speaker 4: and I noticed it using boot Strap. Yeah, I'm going
Speaker 4: to go and add this style into the Bootstrap CSS file. Yeah,
Speaker 4: and then I'm going to go add this new element
Speaker 4: to your items in your app. And so yes, and that's.
Speaker 1: The best example I've heard for me the coder of
Speaker 1: what this new stuff can do.
Speaker 4: So what I hate is when you see some of
Speaker 4: the demos where it feels like it you know, you
Speaker 4: don't have to write code anymore. Right, No, that's you know, Yeah,
Speaker 4: we'll get back to that. But that's what agent mode was.
Speaker 4: So agent mode does this. It's now not just the
Speaker 4: file you're in, it's all the files in your project.
Speaker 1: Yeah.
Speaker 4: And it's smart enough to go identify things like Bootstrap
Speaker 4: and so on that many of us using our web
Speaker 4: applications today.
Speaker 1: So, like they said, it's it's sort of like having
Speaker 1: a partner that or a sous chef that's a coding partner,
Speaker 1: a coding chefs, a soup coder that you could just say, hey,
Speaker 1: go take care of this little detail.
Speaker 2: But it's that look across the solution rather than to
Speaker 2: look at my file exactly.
Speaker 4: It's it's not you know, the first co pilot we
Speaker 4: didn't even look at the whole file. We looked at this,
Speaker 4: you know, X number of lines because the context windows
Speaker 4: were not big enough to do more than that. But
Speaker 4: I always want to start there when I describe this.
Speaker 4: So the negative of what I just said is and
Speaker 4: this is where if I go talk to my enterprise customers, well,
Speaker 4: I don't know the did you write the code, Richard
Speaker 4: Carl write the code, or did the cloud write the code?
Speaker 4: Who wrote the code? And so if you're in an
Speaker 4: industry where financial or whatever they want to have more
Speaker 4: controls over that, that's where the I think the coding
Speaker 4: agent takes us to the next level. So what the
Speaker 4: coding agent is is agent mode in the cloud.
Speaker 1: And so okay, so we're out of visual studio.
Speaker 4: Now let's let's talk about this so what I what
Speaker 4: I would do and if I want to use the
Speaker 4: coding agent, I would file an issue in my repo,
Speaker 4: and the issue would say we're going to change the
Speaker 4: look and field the website. We want to change all
Speaker 4: the buttons to be round and orange. So now I've
Speaker 4: created the issue, and what I can do then is
Speaker 4: I assigned the issue to copilot, to your agent, and
Speaker 4: then in the cloudloud, in the get hub cloud, the
Speaker 4: engines that that same agent that we were using in chat,
Speaker 4: in VS code or VS is now running in the cloud.
Speaker 4: What's cool about that, though, is it's going to go
Speaker 4: create a PR. It's going to go put a plan
Speaker 4: in the PR. I can live watch the PR as
Speaker 4: it's going. If I want to sit there and watch it,
Speaker 4: I can. I can watch all the actions. But the
Speaker 4: cool thing here is now, because I've made a PR,
Speaker 4: well there's a history of yes, it was done, something
Speaker 4: was done, and then I have to approve that PR.
Speaker 4: So the chat's not going to go by the agent's
Speaker 4: not going to go by itself and just go oh,
Speaker 4: you're done. No, at the end of the day, I
Speaker 4: have to go back and Scott Hunter approved that.
Speaker 2: PR, which you can also pushed back, like you say,
Speaker 2: I don't like how this is done, or I would change.
Speaker 1: It's just like you do with the developer, right, exactly. Yeah,
Speaker 1: and that's what I loved about that part of Sacha's
Speaker 1: demo that he said he wanted to add a feature.
Speaker 1: He had a picture of it and he said he
Speaker 1: wanted to drop down that has some blah blah blah
Speaker 1: and just with one or two cent. Then you got
Speaker 1: the googly eyes looking at it because he assigned it
Speaker 1: to the to the agent, and the agent's like looking
Speaker 1: at it. And then he came back and the polar
Speaker 1: Quest was done, and like you said, documented this is
Speaker 1: what I did. Yes, I did this and that and
Speaker 1: this just the way real developers don't.
Speaker 4: And then exactly, rich and then Carl approved that pr
Speaker 4: and so now it's.
Speaker 1: Your fault and it's now thing and trains Richard's bank account.
Speaker 4: But to Richard's point, you can actually go highlight parts
Speaker 4: of the code it wrote and say I don't like this,
Speaker 4: or put more diagnostics in here or whatever, and so
Speaker 4: you can have a back and forth. You know, I
Speaker 4: think when when people see this, and I'll be curious.
Speaker 4: You know, it just was shown on stage. We've been
Speaker 4: using this stuff inside of Microsoft for months.
Speaker 1: Yeah.
Speaker 4: I just saw it a half hour and you just
Speaker 4: saw it a second ago. I think people's first reaction is,
Speaker 4: you know, when I go talk to real customers, they'll
Speaker 4: be like, oh, this is going to replace my coders.
Speaker 4: I'm like, no, if you somebody has to be able
Speaker 4: to read what this thing did. They had to approve
Speaker 4: it and say it's right and so but what.
Speaker 1: I would run it and to run it and it
Speaker 1: works well.
Speaker 4: The agent can actually do the stuff like that too,
Speaker 4: by the way, So, but but so what I think
Speaker 4: where it changes things. When I was talking to David Fowler,
Speaker 4: like architect of dot net, yeah, you know, He's like, Scott,
Speaker 4: I have to now have to think, should I be
Speaker 4: writing this code?
Speaker 2: Yeah?
Speaker 4: Is this the stuff I should assign to the agent
Speaker 4: because it's just it's right, you know, small refactoring stuff.
Speaker 4: I shouldn't be doing that. I should be writing the
Speaker 4: architecting the core of dot net and figuring out how
Speaker 4: to make Aspire work and have a great published experience.
Speaker 4: You can't tell the you imagine writing an issue, Hey,
Speaker 4: make a great publishing experience for Aspire. That's that's not
Speaker 4: going to work. That's where you need developers to go
Speaker 4: do this.
Speaker 2: But an awful but a lot of an awful lot
Speaker 2: of code is uh, stuff has been done before. Stuff
Speaker 2: that that a model is going to have a copy
Speaker 2: of that it's you know, drawn from gethub and other
Speaker 2: and other sources. So why would you write that code
Speaker 2: when it's already be written.
Speaker 1: I give you a real world scenario that I hope
Speaker 1: the answer is he yes. So I'm working on a
Speaker 1: customer's project. This particular project has like fifty screens. Now
Speaker 1: they all do different things, but they all have the
Speaker 1: same look and feel. They all use a bootstrap grid, right,
Speaker 1: And can I give that page or whatever that I
Speaker 1: want to use as a template to the agent and say,
Speaker 1: all right, I need a new page that has this
Speaker 1: field in that field, in this field in that field,
Speaker 1: and a calendar, and I'm putting another thing over here
Speaker 1: with you know, a table.
Speaker 4: And I would tell you to try it. Your answer
Speaker 4: is yeah, probably probably would work. Especially you know, you
Speaker 4: can write a file inside of your project. It's kind
Speaker 4: of like an instruction files. We call this yeah, and
Speaker 4: that instruction file is where you can say these files
Speaker 4: are examples of how we build UI right, all screens
Speaker 4: will look just like these, except they'll have different fields. Yeah,
Speaker 4: make my screen look like these screens.
Speaker 1: Can you go a step further and say, here's my
Speaker 1: data structure from my database, here's my data manager that
Speaker 1: has my you know, ado dot net code in it,
Speaker 1: or like whatever, you know. Make my thing work with
Speaker 1: the data manager.
Speaker 4: The more context you give it, the closer it's going
Speaker 4: to be what you what you expect in any cases,
Speaker 4: but you can also iterate well exactly. We've done a
Speaker 4: lot of work. So one of the other things that
Speaker 4: we're showing I don't think it was shown in the keynote,
Speaker 4: but it'll be shown in Amanda's talk. It was after
Speaker 4: the keynote is migration tools for moving from one version
Speaker 4: of dot net to the next version of dot net,
Speaker 4: moving from a version of Java the next version of Java.
Speaker 4: Once again, we learned a lot of these things are
Speaker 4: written with crazy AI prompts, and we just keep writing
Speaker 4: the prompts and making you know, you try it didn't work,
Speaker 4: make a better prompt to me. My analogy of this
Speaker 4: is Google Google Search. I didn't find what I like,
Speaker 4: so I write it a different way. I keep writing
Speaker 4: it a different way until I get the answer I want.
Speaker 4: And in many cases I think the AI is going
Speaker 4: to let you do the same kind of thing.
Speaker 2: We think about the years we spent learning to write
Speaker 2: good search strings. It's going to take us time to
Speaker 2: learn to write great prompts. It will.
Speaker 4: And so we've got some really cool tools that we're
Speaker 4: we're shipping in public preview today at build and one
Speaker 4: of them is, let's say, here's how this works. I
Speaker 4: got to I got to convert this project today. It
Speaker 4: uses rapid MQ locally, but I want to move it
Speaker 4: to use service bus because I go to put it
Speaker 4: into Azure.
Speaker 2: Sure.
Speaker 4: So today, what you would do is I would say, Carl,
Speaker 4: go change the whole app to move from Rabbit MQ
Speaker 4: to service bus. And it probably a lot of work
Speaker 4: for you, you know you you would do the first
Speaker 4: file and you're like, I got to figure it out now,
Speaker 4: and you would replicate that a lot of times. Well,
Speaker 4: one of the tools we released today is what you
Speaker 4: would do is I would say, Carl, I'll go fix
Speaker 4: two files and then from that commit that you're going
Speaker 4: to have, we have a thing that will convert that
Speaker 4: to a prompt. Interesting and we call these formulas, and
Speaker 4: so so you go and make that change in a
Speaker 4: couple of files. We make the prompt and you can
Speaker 4: then run the prompt against the entire project and move.
Speaker 2: The rest of the project. Rather try to write the
Speaker 2: prompt from scratch to do it right now. The first time,
Speaker 2: you provide an example of doing it right the code,
Speaker 2: and then it reverses that into a prompt. Yes, that
Speaker 2: allows the other examples to happen. And so one of
Speaker 2: our one of our teaching a novice developer to do
Speaker 2: something you just did yep, right.
Speaker 4: Yep, that's all you're doing. And uh, and.
Speaker 2: This this, this is a very fancy copy paste.
Speaker 4: Yes, super fancy. This is like the ultimate copy paste.
Speaker 4: It won't it won't be one hundred percent perfect, but
Speaker 4: I still think it'll take You know, it would have
Speaker 4: taken it would It would have taken Carl a couple
Speaker 4: of days. And now it might take Carl a couple
Speaker 4: of hours to get to the same place.
Speaker 2: And after the third time, it's scott work right except
Speaker 2: for a couple of fixes. So you now getting rid
Speaker 2: of all the scott work and just doing the fixes.
Speaker 4: So we have a tool that we shipped a couple
Speaker 4: of years ago called appcat. And what appcat is. It's
Speaker 4: an app, it's a it's a it's a tool you
Speaker 4: run on your A s P, dot Net or Java
Speaker 4: app to move to the cloud. And what it does
Speaker 4: it just goes and identifies. It's got a library of
Speaker 4: like twenty things that we think you shouldn't be doing. Like, right,
Speaker 4: you're gonna have to change your connection strings for example.
Speaker 4: You know you probably shouldn't have connection screens using something
Speaker 4: better than that. But this tool identifies a whole bunch
Speaker 4: of things that you need to do before you move
Speaker 4: your app to cloud. That the problem with that tool
Speaker 4: was in the past. It just gave you a list
Speaker 4: of Hey, Carl, here's all the work to go do.
Speaker 1: Right.
Speaker 4: Well, what we've done is we also took the top
Speaker 4: ten of these things and we built these formulas with
Speaker 4: this other tool. And so now you can go take
Speaker 4: the top ten things that appcats can to find and
Speaker 4: then go use these formulas to go have it go
Speaker 4: fix the app for you.
Speaker 2: Sure.
Speaker 4: And so our goal is, you know, we have customers
Speaker 4: tell us moving an app, an older on prem app
Speaker 4: to the cloud, can take eight months, right, I want
Speaker 4: to get that down to four months or two months,
Speaker 4: you know anything that's you know, when I was talking
Speaker 4: to some customers, they said, even thirty percent faster.
Speaker 2: Sure is a huge Well I know pretty well, having
Speaker 2: you know, spent my time in the architect shovel. It's
Speaker 2: like there's a thousand apps. Yes, like there's a thousand
Speaker 2: apps times eight months. Yeah, So I'm sorry, we're not
Speaker 2: going to get it done.
Speaker 4: And in most cases, I hate to say this, the
Speaker 4: developer who wrote those apps is not there anymore. So
Speaker 4: some new developers, like I have never seen this code
Speaker 4: in my entire life. You know, how do we help
Speaker 4: that developer move faster? And so I'm ex I think
Speaker 4: people will be afraid of some of this AI stuff,
Speaker 4: but it's just a tool.
Speaker 1: And we'll talk about fear when we come back from
Speaker 1: a break, because I have a couple of questions about that,
Speaker 1: and we'll be right back. These very important messages don't
Speaker 1: go away. Did you know you can lift and shift
Speaker 1: your dot Net framework apps to virtual machines in the cloud.
Speaker 1: Use the Elastic beanstalk service to easily migrate to Amazon
Speaker 1: EC two with little or no changes. Find out more
Speaker 1: at aws dot Amazon dot com, slash, Elastic beanstalk and
Speaker 1: we're back. It's dot net Rocks. I'm Carl Franklin, I'm
Speaker 1: Richard Campbell. That's my buddy Richard and everybody. Scott Hunter
Speaker 1: is here. And if, by the way, if you don't
Speaker 1: want to hear these ads, you can become a patron
Speaker 1: for five bucks a month get a feed that has
Speaker 1: no ads in it. Wouldn't that be awesome Patreon dot
Speaker 1: dot NetRocks dot com. All right, so I wanted to
Speaker 1: talk to me. You said the S word and it
Speaker 1: wasn't Scott, it was security. Secure. I hear this all
Speaker 1: the time. Secure secure. One of the main features of
Speaker 1: agents and the things that makes them work is you
Speaker 1: give them permissions to your resources, whether it's you know, Azure,
Speaker 1: a d a database, you know, cloud services, all of
Speaker 1: the things that you need to go do or access.
Speaker 1: Maybe it's not just an Azure, you might have other
Speaker 1: stuff in other clouds, right, but you've got to give
Speaker 1: these agents permission to do thy bidding. And so for me,
Speaker 1: as you know, put on my security hat because now
Speaker 1: I don't know if you know this, but I do
Speaker 1: a security podcast. Weird, it's weird.
Speaker 2: All I do is tell jokes and ask questions, but
Speaker 2: think security people. God, yes, but you know that I
Speaker 2: know enough.
Speaker 1: To know that that increases the attack vector serves for you,
Speaker 1: and probably your software bill of materials probably goes up
Speaker 1: exponentially without you knowing it necessarily. So I just want
Speaker 1: to have you talk a little bit about the security
Speaker 1: of all those first.
Speaker 4: So that's why I think our earlier conversation about prs
Speaker 4: was important. Yes, that means a developer gets to see
Speaker 4: the PR and approve the PR and so there's nothing
Speaker 4: being done automatically, but there's no magic, so at least
Speaker 4: there's a human that approved whatever happened. The area that
Speaker 4: I think about the most of what you just described, Carl,
Speaker 4: is probably MCP.
Speaker 1: Yes, an acronym I just learned this morning. Well, I
Speaker 1: didn't know anything about it. So protocol that lets agents
Speaker 1: talk to each other's.
Speaker 4: Let's LM talk to stuff. And there's not currently a
Speaker 4: bunch of security around this thing, and so today it
Speaker 4: has to be In most cases you run it locally
Speaker 4: on your own machine. But I'll give you I'll explain
Speaker 4: the MCP scenario. You install a GIT of him CP
Speaker 4: on your machine and that means that that will let
Speaker 4: the l M be able to you can give that
Speaker 4: whatever access to your GitHub repo you want to give
Speaker 4: it to. Yes, you know you might want to you know,
Speaker 4: for databases, you might want to put a postcress MCPN
Speaker 4: and I'll explain why that's interesting these things. Let let
Speaker 4: let you share knowledge with the l l.
Speaker 1: M and it's a model context protocol.
Speaker 4: That's that's the that's the protocol. And by the way,
Speaker 4: it's it's a very basic protocol at this point in time.
Speaker 4: There's anthropic. Yeah, it's it's anthropic, but we all jumped
Speaker 4: on it. Like the dot net team. They there was
Speaker 4: an open source m c p uh dot net implementation.
Speaker 4: They took that over. They worked with that developer and
Speaker 4: took it over and that's now the official because when
Speaker 4: when MCP first came out, I think there was only
Speaker 4: Python JavaScript and there might have been a Java one
Speaker 4: there too, but we made sure there's a there's a
Speaker 4: great dot Net one VS and VS code will support
Speaker 4: m c P as well, which is very important. This
Speaker 4: agent back to this agent mode stuff again. Yeah, I
Speaker 4: can do cool things like that. In the chat. I
Speaker 4: could say file an issue one Carl about changing the
Speaker 4: buttons in my blazer. Application to be orange and round.
Speaker 4: And if I've given that the GitHub MCP the write
Speaker 4: to create an issue, then from that chat interaction, it
Speaker 4: would go create that issue issue from I didn't have
Speaker 4: to go to the web page. I didn't to go
Speaker 4: use some other tool. I didn't have to go pull
Speaker 4: a thing up. But once again, as I said, you
Speaker 4: have to decide. You know, once again you're running the agent,
Speaker 4: so you're running the chat.
Speaker 1: So you also said it's not very secure right now.
Speaker 4: What I mean by that is you're going to have
Speaker 4: to go put your access token and in some form
Speaker 4: or fashion on your machine because the ll M is
Speaker 4: going to call into this protocol. It's going to run
Speaker 4: that code. That code needs access, It needs your security
Speaker 4: token to be able to actually talk to GitHub. If
Speaker 4: you want to talk to a Postcrest database, for example,
Speaker 4: well it's going to have to have a connection string
Speaker 4: and the credentials to talk to that Postcrest database. Once again,
Speaker 4: you could give it a restricted one. And why that's
Speaker 4: interesting is if the LLM can see the database, you
Speaker 4: could then almost say you went and created a table,
Speaker 4: go building a business logic object for this new table,
Speaker 4: and then it would use MCP to go look at
Speaker 4: the postgrass database, find the columns and their types, and
Speaker 4: then build you the relevant c Sharp implementation and.
Speaker 1: Do that stuff with prompts. Now, of course you do,
Speaker 1: but this would just.
Speaker 4: Mean instead of having to go paste the table in somewhere,
Speaker 4: you could actually give it access to that. We also shipped,
Speaker 4: like my team built Azure function support for MCP, which
Speaker 4: means you can have a remote MCP. In my case,
Speaker 4: that means that MCP is protected by all the Azure
Speaker 4: security features.
Speaker 1: So that's what I was looking for. And so something
Speaker 1: like key vault, you know, like that it's impenetrable, so
Speaker 1: it knows the keys but nobody else can know.
Speaker 4: But this space is so new, it's just booting up.
Speaker 4: I mean at Something else that my team shipped today
Speaker 4: build as well, is we have a product called API Center,
Speaker 4: and it's going to have a place where you can
Speaker 4: find all all the m cps in your in your
Speaker 4: organization mp.
Speaker 1: I center, API center, a p I center.
Speaker 4: API, so we have API management.
Speaker 1: Sorry, I understand what you said.
Speaker 4: A p I center a API like API S Yeah,
Speaker 4: I got it. And mcps are in some ways APIs,
Speaker 4: and so we're going to have a place where you
Speaker 4: can uh have a list of m cps uh that
Speaker 4: you're you know, your company uses and people can find
Speaker 4: them and and so on and so on. But I
Speaker 4: said it's early times.
Speaker 1: But I will tell you that there's a lot of
Speaker 1: promise there.
Speaker 4: There's a lot of promise.
Speaker 1: That's it's got to be where everything goes because.
Speaker 4: You once again the more I mean, you and I
Speaker 4: probably written the same code a billion times, Carl, where
Speaker 4: we just write the ady O code to you know,
Speaker 4: do the database table stuff or the any of your
Speaker 4: framework core stuff to go do the same thing. And
Speaker 4: I'd love to just say, here's a new table here,
Speaker 4: you do that, Go go do it for me. Yeah,
Speaker 4: and uh put the same logging and all the other
Speaker 4: stuff in. So it's it's funny. I I I remember
Speaker 4: when we first did we shipped on in a core.
Speaker 4: We were like, it's it's a great time to be
Speaker 4: a developer. And I will tell you that all this
Speaker 4: new tooling stuff that we can do with the AI stuff.
Speaker 1: It's you also mentioned that does this mean my job
Speaker 1: is on the line, right, There's a lot of people
Speaker 1: think in that oh, well, you know, if a junior
Speaker 1: developer can get some AI and go out code me.
Speaker 1: What's that mean for me? And I always tell people
Speaker 1: and Richard does too, It's not the AI is going
Speaker 1: to replace your job. It's that another developer that uses
Speaker 1: AI will take your job.
Speaker 4: I would tell you today, don't if we when we interview,
Speaker 4: if we interview new product managers or developers, we're one
Speaker 4: of the skills that we're going to want you to
Speaker 4: show us, is you know how to use AI to
Speaker 4: do your job. I think that's just a part of
Speaker 4: And I don't think it's just going to be programming.
Speaker 4: I think it's many, many jobs. It's gonna it's it's
Speaker 4: gonna come down to this.
Speaker 2: Compan upon a time, we asked if you knew how
Speaker 2: to use email exactly, I.
Speaker 4: Mean spell checkers. I mean know word's gotten so good
Speaker 4: these days. It'll tell you when you're using bad English.
Speaker 4: It'll actually fix it for you. You know, I would
Speaker 4: have been offended when I was first going through you know,
Speaker 4: college or high school. But I'm like, why would I
Speaker 4: not use these things?
Speaker 1: But I will say this though. Let's say you're on
Speaker 1: a team of developers that's maybe five people, small business, right,
Speaker 1: and one of those developers decides to dive into AI
Speaker 1: and can demonstrate that he or she can do everything
Speaker 1: that the whole team can do with one person faster.
Speaker 1: Is that a real scenario.
Speaker 4: I don't think it's a real scenario, you know, but
Speaker 4: I do think that building a you know, we've all
Speaker 4: seen the vibe coding stuff, which I'm like, you know, questionable, Oh,
Speaker 4: vibe coding, Yeah, well questionable. I do think it's a
Speaker 4: good way to build a prototype, yeah, and to prove
Speaker 4: a concept and then go and say, let's go make
Speaker 4: this real.
Speaker 1: Yeah.
Speaker 4: I mean, I'm sure there's plenty of there'll be a
Speaker 4: startup here there that'll do something stupid. They'll go, you know,
Speaker 4: vibe code something, and sure, already happened. I'm sure it's
Speaker 4: already happened. But at the end of the day, you
Speaker 4: you know, could you imagine shipping an app when you've
Speaker 4: never seen any need of the code?
Speaker 2: Yeah, No, I've seen people do dumb stuff like that,
Speaker 2: you know. Yeah, that's how they've deployed prototypes that we've
Speaker 2: seen over the years that aren't secured and so forth.
Speaker 2: This is another level dumb. You know, we've been walking
Speaker 2: past the truth on this whole conversation about coding agents
Speaker 2: it's not just working out the prompt, it's then looking
Speaker 2: at the results and assessing it. So, yeah, there's the
Speaker 2: new skill of how you communicate intent to the agent,
Speaker 2: but then there's the old skill of a coding.
Speaker 4: Review, yes, which is super important.
Speaker 1: Yeah.
Speaker 4: And by the way, that's the scariest part about this
Speaker 4: is you know, in some ways the coding agent could
Speaker 4: make it if you're a junior developer.
Speaker 1: Yeah, you could tell it to do something you shouldn't do.
Speaker 2: Well.
Speaker 4: It's also I think it we need to somehow make
Speaker 4: sure we don't lose the skill of teaching junior developers
Speaker 4: how to become senior developers that know what's good code
Speaker 4: and what's better code. Okay, so it's in some cases
Speaker 4: the fear is my fear is, oh my gosh, we're
Speaker 4: going to lose thebility to train junior developers.
Speaker 1: Yeah.
Speaker 4: So that's something we inside of Microsoft talk about a
Speaker 4: whole bunch, is like we had to make sure we
Speaker 4: don't lose this skill.
Speaker 2: That a new developer glowing up in this space is
Speaker 2: always going to be someone solution focused rather than code
Speaker 2: focused and being able to assess. They're never working from
Speaker 2: a blining screen, They're always assessing stuff and quite possibly
Speaker 2: leveraging other tools to do it.
Speaker 1: Yes, I keep coming back because we're talking about fear.
Speaker 1: That's the the word for this half hour. I keep
Speaker 1: coming back to that Star Trek Next Generation episode. Do
Speaker 1: you remember when Data was playing Sherlock Holmes and he
Speaker 1: would go into the Holidack with Jordy and Data would
Speaker 1: always solve the crime. It was easy for him. So
Speaker 1: he was like bored, and Jordi said, computer, create a
Speaker 1: Sherlock Holmes mystery with a foe that has the ability
Speaker 1: to outsmart Data or to outwit Data. And then it
Speaker 1: created this really intelligent Moriarity character that actually knew it
Speaker 1: was on the holid deck and could take control of
Speaker 1: the ship. And that like, you give a junior programmer
Speaker 1: a powerful tool like an ancient and the past, you know,
Speaker 1: the keys to go and affect all of the critical
Speaker 1: resources in your industry, right in your enterprise, and then
Speaker 1: that guy writes a prompt or that girl writes a
Speaker 1: prompt like that that completely hoses everything. That is a
Speaker 1: real scenario.
Speaker 4: But what I would tell you if I gave the
Speaker 4: same junior developer all those keys and access, they could
Speaker 4: go nuke everything anyway.
Speaker 2: Sure, so the reality is okay.
Speaker 1: But is it the difference of giving them a glock
Speaker 1: versus giving them an M sixteen.
Speaker 4: I think it's I think it's the same thing. Maybe
Speaker 4: maybe they could do it faster. But but once again,
Speaker 4: that's that's why. You know, most most you know, enterprise
Speaker 4: companies don't let developers have the actual keys to the
Speaker 4: real databases and all that kind of stuff. That's the
Speaker 4: thing that we don't we never talked about probably on
Speaker 4: this on the show, you probably never talked about this
Speaker 4: is you know, most companies, I could never see the
Speaker 4: production database. Only a class of my DevOps engineers are
Speaker 4: allowed to actually ever see the production database. Even at Microsoft,
Speaker 4: you know, we want to make sure that even if
Speaker 4: I'm debugging Azure, we're very careful about making sure that
Speaker 4: any personal information doesn't end up in logs and so
Speaker 4: on for the for the same reasons we're just going
Speaker 4: to get striving here.
Speaker 1: It means that you have to be aware of just
Speaker 1: more things, but no and less things at the same time.
Speaker 4: Right, But you could vibe code something that was dangerous
Speaker 4: faster with and and uh, you know, you could potentially
Speaker 4: generate a prompt as you said that would delete a datbase, right,
Speaker 4: because I tell the hey make the database faster by
Speaker 4: deleting the first million rows.
Speaker 1: So do you have a prompt cop on staff that
Speaker 1: has to approve all the prompts that you give your
Speaker 1: AI while you're developing.
Speaker 4: I think the bigger thing is make sure you don't
Speaker 4: you don't you don't give your AI the ability to
Speaker 4: go delete the database. That's that's the smart thing there
Speaker 4: to start with.
Speaker 2: You gave the keys to the castles of the junior
Speaker 2: because remember one I.
Speaker 4: Remember if you roll back I started, and that that
Speaker 4: postgrass agent or MCP. I said, give it read access.
Speaker 4: Yeah yeah, I didn't say write access for you know, because.
Speaker 2: That's why they that's why they submit pull requests. Yes,
Speaker 2: they don't write. They only could present.
Speaker 4: And so I would tell you everybody here be very careful,
Speaker 4: Like I'm I'm fine letting it file an incidence, you know,
Speaker 4: in GitHub.
Speaker 1: But we have to be careful now. I mean we've
Speaker 1: had to be careful all our all our coding careers.
Speaker 2: That was my old advice to web deevs. It's like, listen,
Speaker 2: you don't want access to the production service, then it
Speaker 2: could be your fault.
Speaker 1: That's right.
Speaker 2: Just don't don't even have those rights. Make your life simple.
Speaker 4: I know stories inside of Microsoft where somebody thought they
Speaker 4: were in the development branch and they were in the
Speaker 4: production brands and they and they wiped out a bunch
Speaker 4: of stuff and thankfully we were able to restore it.
Speaker 1: But but uh, you know, thanks to that sequel backup feature.
Speaker 4: But I would I would be you know, oh my gosh,
Speaker 4: I mean even myself, I always where he I mean,
Speaker 4: even sending an email, make sure you don't put the
Speaker 4: wrong person on the two line.
Speaker 2: Yeah, it's always the person you're talking about.
Speaker 4: And sometimes sometimes what you do is you put the
Speaker 4: wrong person on the two line because you need to
Speaker 4: get their email address or something else that you can
Speaker 4: pay somewhere, and then you forget to take them off.
Speaker 4: I have done this in Microsoft. I have done this.
Speaker 2: I'm speaking from experience.
Speaker 1: One of the stories in the previous Security this week
Speaker 1: was a feature that Apple a feature a bug that
Speaker 1: Apple fix on the iPhone where the mute button on
Speaker 1: FaceTime didn't work. Oh so, can you imagine you're talking
Speaker 1: to your wife, you hit the mute button, It's say, hey,
Speaker 1: your husband's coming up the driveway. Put your clothes on
Speaker 1: and it didn't work.
Speaker 2: Brilliant, all right.
Speaker 4: That's why Mark Zuckerberg requires all cameras and METAA to
Speaker 4: be covered with black tape.
Speaker 1: Right.
Speaker 4: He doesn't trust that whether there's the lights on or not.
Speaker 4: He's like, I'm afraid somebody might have hacked the cameras,
Speaker 4: so it'll come on without the light.
Speaker 2: Yeah, So be careful children, it's dangerous world out there.
Speaker 2: Don't hand out the keys to the software.
Speaker 1: What else is on your mind?
Speaker 2: Here?
Speaker 1: At build twenty twenty five.
Speaker 4: We talked about, you know, migrations, We talked about coding agents.
Speaker 4: Probably the last one which is something that thought you
Speaker 4: did show in the keynote as well, which is which
Speaker 4: we call that the Site Reliability Engineer agent. That's the SRE. Yeah,
Speaker 4: And the idea here is just imagine this real world
Speaker 4: scenario inside of Microsoft. Something starts wabbling and so you know,
Speaker 4: some of the software detects that, Hey there's sites not responding,
Speaker 4: and so what do we do today? We page Carl
Speaker 4: and Carl wakes up.
Speaker 1: Hey, this is a real scenario. Actually, because our site,
Speaker 1: at any hour, our site before I change it was
Speaker 1: prone to this.
Speaker 4: So we paid Carl and then Carl has to go
Speaker 4: bring up dashboards and go look, and by the time
Speaker 4: Carl gets out of bed, it might just happen that
Speaker 4: it could have been a transient issue, meaning that hey,
Speaker 4: a database just bobbled for a second and got a
Speaker 4: time out or something like that, and by the time
Speaker 4: you wake up and look at the thing, there's not
Speaker 4: really a real thing going on there.
Speaker 1: Yeah.
Speaker 4: Well, the SR agent can.
Speaker 2: Do that for you.
Speaker 4: So it can say, oh, I see that the site's
Speaker 4: not responding, and my instructions say that I'm to wait
Speaker 4: fifteen or twenty seconds before i do anything because it
Speaker 4: could be a transiit issue. Oh it's back in fifteen
Speaker 4: or twenty seconds. I'm going to log in, log it,
Speaker 4: but I'm not going to page page Carl and get
Speaker 4: Carl out. Or it could be could be the next
Speaker 4: rule could be, Hey, if we see that the site's
Speaker 4: been down for ninety seconds, the first step is, you know,
Speaker 4: we live in the world of computers.
Speaker 2: What do you do?
Speaker 4: You reboot? Yeah, And it could be that the first
Speaker 4: thing that the real SR agent would have done anyways
Speaker 4: is just gone and rebooted the application. So the agent
Speaker 4: can go look and go, yeah, it's still down, I'm
Speaker 4: going to reboot it, and then I'm going to look
Speaker 4: up it's back up and doing good again. Once again,
Speaker 4: Carl was not page for either of those scenarios. And
Speaker 4: so how do we take some of that grunt work?
Speaker 1: And I can already imagine how to tick that to
Speaker 1: the next level. You give it through MCP access to
Speaker 1: your GitHub repo, and then if it still thinks there's
Speaker 1: a problem that might be code related, it can go
Speaker 1: analyze the code.
Speaker 4: So we have that that we're going to show that
Speaker 4: today some one of the sessions. Today my session, we're
Speaker 4: going to show that exact scenario where.
Speaker 1: That was run against dot net rocks, the dot net
Speaker 1: six version of it. It would have found a memory leak.
Speaker 4: Well, first off, what one of the things yes or
Speaker 4: we would do is go why are you on dot
Speaker 4: net six? It would actually okay, so it because.
Speaker 1: It worked, and it worked for a long time, but
Speaker 1: then I found a memory leak.
Speaker 4: But our hope would be that, hey, the the agent
Speaker 4: finds that you're on dot net six, it says, I'm
Speaker 4: going to go file an issue and get hub to
Speaker 4: move the side to eight. And then Carl goes, I
Speaker 4: hate changes, go to nine, I'm just gonna go. No,
Speaker 4: you go, you go, and you say, I'm going to
Speaker 4: sign this issue to copilot, and then Copilot uses the
Speaker 4: tech I was mentioning before for doing upgrade dot net.
Speaker 4: Dot Net upgrades, but that's the whole. It writes the
Speaker 4: PR for you and then you just approve the PR
Speaker 4: and you're on dot net.
Speaker 2: Eight.
Speaker 1: This is the whole idea about agency is that you
Speaker 1: now have to think like a manager, and instead of
Speaker 1: hiring somebody on the staff, you create an agent to
Speaker 1: do that. Right, I would create an agent, or I'd
Speaker 1: find an agent that's an expert in CSS, because if
Speaker 1: there's a CSS problem, I just want that age. Hey
Speaker 1: go take a look at this right and assign them
Speaker 1: the issue.
Speaker 4: And yeah, I will tell you I love CSS, and
Speaker 4: I hate CSS.
Speaker 1: I hate it and I love it, and so I
Speaker 1: love that the.
Speaker 4: AI is good at CSS, it's good at HTML. So
Speaker 4: I will tell you, as you're playing with these Blazer apps,
Speaker 4: you still write the Blazer code, but you might want
Speaker 4: to have this tech help you write the CSS.
Speaker 1: And as I said, well, I'm already doing that. It's
Speaker 1: just taking longer than I had an if I had
Speaker 1: an agent that could help or or a network of
Speaker 1: agents like this is what you have to imagine now, right,
Speaker 1: you're less of a single programmer, and now you have
Speaker 1: to think of, Okay, build your virtual staff around you
Speaker 1: that you know, with all of the access to all
Speaker 1: of the resources that you want to give each one
Speaker 1: of them that needs that ye, and then they can
Speaker 1: talk to each other.
Speaker 4: Built next build, we're going to have these staff agents.
Speaker 2: Sure, but I also feel like I looked at Security
Speaker 2: co Pilot and thought that's too big of a grab.
Speaker 2: This SR co pilot feels the same sort of thing,
Speaker 2: in the sense that this is going to be an
Speaker 2: evolving capability.
Speaker 4: It would be an involving capability. We'll add more stuff
Speaker 4: to it.
Speaker 2: Some day. You're going to get an email it said
Speaker 2: your site went down last night. I looked at your code.
Speaker 2: It sucked. Your site is written now and up.
Speaker 1: I don't know.
Speaker 4: That's a little we're going a little too far there.
Speaker 4: So like one of the things that SR.
Speaker 2: Still wanted to wake me up, s SR, wake up.
Speaker 2: You've been replaced.
Speaker 4: SR today requires a human to tell it to ever
Speaker 4: do anything to do, and it cannot be there's no
Speaker 4: autonomous mode.
Speaker 2: I do appreciate bringing everything to the table. It's like,
Speaker 2: go go collect the logs up, do all the obvious stuff,
Speaker 2: all the stuff I do before I call Level one
Speaker 2: tech support. Anyway, Yeah, I've already rebooted it.
Speaker 4: So one of our demos today was literally the SR
Speaker 4: agent notices the site choosing too much memory, and then
Speaker 4: we tell it, can you go get me the memory dumps? Yea, yeah,
Speaker 4: that's all the grunt work I would have done before.
Speaker 4: Now that's doing it. I'm still fixing it as a developer.
Speaker 4: I'm still looking at the actual dumps.
Speaker 1: On your developer, what do you know about memory dumps?
Speaker 1: Most of them don't. Yeah. The only one that I
Speaker 1: know that can analyze the memory dump is test for
Speaker 1: run Days. She's like the only person, the only developer
Speaker 1: I know. We have some look at memory dump and say, oh,
Speaker 1: that's what that is.
Speaker 4: We have crazy people at Microsoft that work on dot
Speaker 4: net bugs that take months to figure out. You know,
Speaker 4: imagine there's some weird issue that dot Net after six
Speaker 4: months does something weird. We have const as one of
Speaker 4: our engineers, and you know it's like I remember one point,
Speaker 4: you know, we had crazy metrics and they're like all
Speaker 4: of CONT's prs are open for like six months, and
Speaker 4: I'm like, yeah, this guy works on stuff that takes
Speaker 4: a long time to figure out.
Speaker 2: Yeah.
Speaker 4: Yeah, and you know those are people I could never
Speaker 4: do what he does. I mean these skills to just
Speaker 4: look at this stuff and see these weird you know,
Speaker 4: memory issues that take months to actually.
Speaker 2: Yeah, one in one hundred million instances like those kinds
Speaker 2: of things. Yeah, it's a long time to chase that down.
Speaker 2: H dude. It's a crazy build, amazing set of announcements. Yes, uh,
Speaker 2: the works only getting more interesting. Yeah.
Speaker 1: But also Scott, thank you for just like simplifying it
Speaker 1: and bring it in it to us the developer audience,
Speaker 1: and you know how it's going to impact our lives.
Speaker 4: I would tell people please try this stuff and give
Speaker 4: us feedback. I think it's amazing. I use it every
Speaker 4: day now, and uh, you know it's great.
Speaker 1: Thanks Scott, good to see it, Good to talk, and
Speaker 1: we'll see you next time on dot net rocks. I
Speaker 1: think bet it'll be.
Speaker 2: From the bed.
Speaker 1: Dot net Rocks is brought to you by Franklin's Net
Speaker 1: and produced by Pop Studios, a full service audio, video
Speaker 1: and post production facility located physically in New London, Connecticut,
Speaker 1: and of course in the cloud online at pwop dot com.
Speaker 1: Visit our website at d O T N E t
Speaker 1: R O c k S dot com for RSS feeds, downloads,
Speaker 1: mobile apps, comments, and access to the full archives going
Speaker 1: back to show number one, recorded in September two thousand
Speaker 1: and two. And make sure you check out our sponsors.
Speaker 1: They keep us in business. Now go write some code,
Speaker 1: See you next time.
Speaker 2: You got javans
Speaker 1: And