.NET 11 is here. Your production apps do not have to move today. They do need a plan that is not "we'll look later."
.NET 11 is a Standard Term Support release. .NET 10 is the LTS, supported until November 2028. Either can be the right choice, as long as you choose it on purpose.
The cheapest way I know to make that choice with evidence is a canary build: production stays on .NET 10, while a non-blocking CI job builds and tests the same code on .NET 11 every week as a reference/example/validation.
In the post:
• One MSBuild property that switches the target framework
• A GitHub Actions canary job that is allowed to fail
• How global.json and the canary interact
• A build-time warning for an end-of-life SDK
• The checks a green build will not tell you about
Read it here: https://t.co/N6nC2FlPtq
#dotnet #dotnet11 #devops #softwarearchitecture
Anyone else periodically have issues with Nuget package proxies when many packages with interdependences are released? e.g. "error NU1103: Unable to find a stable package ..."? #Dotnet
@GergelyOrosz Big design up front was tried for decades with poor results until agile came along. Not a panacea, but experienced software engineers recognize that software is ever evolving based on usage feedback, there is never a single description of what the software should do.
@GergelyOrosz I've noticed this too. I think it stems from early "vibe coding" claims. People incorrectly believe they can have AI write an entire software system with one prompt.
@JoeMayo@HishmateX Yes, a "quote" in software doesn't benefit the author of the quote. AI has made people forget that it's near impossible to unambiguously define software scope before implementation, and when you do you all parties end up disappointed.
The challenge I see with it is that Microsoft has had a very predictable schedule with layoffs since 2020.
The concern I'm hearing is: "If I don't take this one, what does the 'involuntary exit offer' look like?"
Some of the smartest and creative folks in software work at Microsoft and don't deserve to be threatened every 6 months with a layoff
In the year 2000, Joel Spolsky (founder of Stack Overflow) wrote a famous article titled “Things You Should Never Do, Part I.” In it, he talks about how rewriting your code from scratch is the single worst strategic mistake any software company can make. However, times have changed.
The cost of writing software is dropping exponentially and that has changed the math entirely on if it is worth rewriting your codebase. For instance, this year Anthropic’s Jarred Sumner ( @jarredsumner ) rewrote Bun in Rust in 11 days leading to many performance and correctness benefits.
Likewise, Stephen Toub (Distinguished Engineer at Microsoft, @stephentoub ) rewrote the GitHub Copilot runtime (400,000-line codebase) in Rust by himself. I thought it’d be interesting to lay out everything he learned in the process. So I interviewed him about how and why he did it.
In this episode:
• Why he choose Rust of all languages
• Rollout strategies (incremental vs all at once)
• How he prevented regressions
• Steering agents and which models he used
• Career lessons and engineering advice
Where to watch:
• YouTube - https://t.co/9Yj6kBj0ix
• Spotify - https://t.co/wa3my5QeBb
• Apple Podcasts - https://t.co/jOYDGtGVnt
• Transcript - https://t.co/rI3rkhxsgG
Thank you to the sponsor of this episode for supporting my work:
• WorkOS: makes your app Enterprise Ready with easy to use APIs to add SSO, SCIM, RBAC, and more in just a few lines of code, check them out at https://t.co/y8noBzFEem
Chapters:
00:00 Intro
01:06 Why the Copilot runtime needed a Rust port
05:38 Why he chose Rust
11:28 Discussing rollout strategies
21:57 How he caught regressions
32:08 Guiding the agents
42:11 Catching regressions before prod
45:16 Which models he used
50:03 The end benefit and costs
01:03:24 When to do a full rewrite
01:06:40 Career learnings on the way to Distinguished
01:16:00 Top technical book recommendation
01:17:49 Advice for young engineers
01:21:00 Outro
'One of the main causes of the fall of the Roman Empire was that-lacking zero-they had no way to indicate successful termination of their C programs.' — Robert Firth