Stuart Lang @stu.dev · 12/07/2026Yes, the tbd stub files are generated, and the symbol names are derived from the MIT-licenced dotnet runtime packs. The macOS SDKs are then consulted to discover the library the symbol maps to (that's all) Explanation: github.com/slang25/AotA... Script to generate stubs: github.com/slang25/AotA... 042
Stuart Lang @stu.dev · 11/07/2026Thanks, I have a drift detection workflow which includes the latest previews: github.com/slang25/AotA... 010
Stuart Lang @stu.dev · 11/07/2026Yes please, any ideas you have to make this slicker are much welcomed 😀 100
Stuart Lang @stu.dev · 11/07/2026Oh, forgot to post the CI matrix: github.com/slang25/AotA...github.comAdd Builds on / Runs on matrix graphic to README (#70) · slang25/AotAnywhere@b669849NuGet package to help you cross-compile Native AOT to different OSes/architectures - Add Builds on / Runs on matrix graphic to README (#70) · slang25/AotAnywhere@b669849 110
Stuart Lang @stu.dev · 11/07/2026I've swapped our multi-runner job at work, and now just have a single runner producing our native cli, and it's working great. 200
Stuart Lang @stu.dev · 11/07/2026Thanks, I needed Fable to get me over the line with this 😅 I've been trying to get this matrix green for a while now, and the final big hurdle was how to build for macOS on non-macOS hardware without shipping the SDK (which is prohibited), that's solved now by generating the stubs. 210
Stuart Lang @stu.dev · 11/07/2026A link to the repo with further details: github.com/slang25/AotA...github.comGitHub - slang25/AotAnywhere: NuGet package to help you cross-compile Native AOT to different OSes/architecturesNuGet package to help you cross-compile Native AOT to different OSes/architectures - slang25/AotAnywhere 100
Stuart Lang @stu.dev · 11/07/2026Today I'm releasing AotAnywhere, a package which enables cross platform publishing support for dotnet NativeAOT. Before this package you had to use multiple different runners, with AotAnywhere you can publish for all targets from any single host. This is continuing the great work of @migeel.sk 4198
Reposted by Stuart LangDamian Edwards @damianedwards.com · 30/05/2026New version of `dotnet-outdated` is out with support for C# file-based apps! Thanks to @stu.dev for the quick turnaround ❤️ #dotnet 1284
Reposted by Stuart LangDavid Pine @davidpine.dev · 21/04/2026I love the #developercommunity, and this is an awesome contribution to @aspire.dev from @stu.dev where he added twoslash to our code blocks. Check it out: aspire.dev/get-started/... Our @typescriptlang.org code is literally looking like an IDE now. 🤓 042
Stuart Lang @stu.dev · 21/02/2026I also forked ghostty-web to fix a bunch of quirks github.com/slang25/ghos...github.comGitHub - slang25/ghostty-web: Ghostty for the web with xterm.js API compatibilityGhostty for the web with xterm.js API compatibility - slang25/ghostty-web 000
Stuart Lang @stu.dev · 21/02/2026It's currently hosted on Cloudflare Pages, but we could host it in most places as it's static, but these headers are essential (which rules out GH Pages): github.com/slang25/spec...github.comspectreconsole-playground/src/Spectre.Docs.Playground/wwwroot/_headers at main · slang25/spectreconsole-playgroundContribute to slang25/spectreconsole-playground development by creating an account on GitHub. 100
Stuart Lang @stu.dev · 21/02/2026Hey, sure, I think it's ready. I have also created a library (not pushed to nuget just yet) that enables creating a link with embedded content it (so we can link from docs with runnable examples). The repo is here currently: github.com/slang25/spec...github.comGitHub - slang25/spectreconsole-playgroundContribute to slang25/spectreconsole-playground development by creating an account on GitHub. 100
Stuart Lang @stu.dev · 18/02/2026Totally. Great post. Something else in the mix here is the T4.BuildTools package github.com/dotnet/aspne... For me there should be the same tool that runs in VS and and from the dotnet cli.github.comInvestigate using the new T4 Command-Line Tool for .NET · Issue #49382 · dotnet/aspnetcoreAt some point in the future it might be worth looking at having the repo updated to use the .NET 6 version of the tt generator for the generated code as it might resolve some friction users have ha... 110
Stuart Lang @stu.dev · 18/02/2026This is pretty much the mixed emotions I've been going through recently. Thanks for sharing 020
Stuart Lang @stu.dev · 18/02/2026Not sure if this link will work, but let's try: spectreconsole-playground.pages.dev#nVbLbuM2FN3r...spectreconsole-playground.pages.devSpectre.Console Playground 431
Stuart Lang @stu.dev · 18/01/2026Thanks! Do let me know if there are any improvements that can be made or issues with it. The code is over here: github.com/slang25/msbu... It's a static app using .NET WASM on web workers, the web workers bit was the thing that made it viable for larger projects.github.comGitHub - slang25/msbuild-binlog-perfviewContribute to slang25/msbuild-binlog-perfview development by creating an account on GitHub. 120
Stuart Lang @stu.dev · 18/01/2026My latest side project, this takes an MSBuild binlog file and transforms it into a Perfetto trace msbuild-binlog-perfview.pages.dev 2249
Stuart Lang @stu.dev · 05/01/2026@chethusk.bsky.social We didn't need to wait for the dotnet 10 SDK to get file-based apps after all 🙃 020
Stuart Lang @stu.dev · 27/12/2025Yeah it's web assembly that compiles assemblies (CIL) and then loads that. I started with xtermjs for the terminal and then switched to libghostty, because you know, it's cool! 120
Stuart Lang @stu.dev · 27/12/2025@patriksvensson.se I've been hacking around with something locally, just looking to fix out a few kinks and will send a PR 240
Stuart Lang @stu.dev · 26/12/2025@andrewlock.bsky.social truly is the "Simpsons did it" of tech 😅 110
Stuart Lang @stu.dev · 26/12/2025An option: andrewlock.net/replacing-di...andrewlock.netReplacing Disqus with GitHub discussions using giscusI recently replaced Disqus with giscus for comments on this blog. In this post I describe the process I took 100
Stuart Lang @stu.dev · 23/12/2025This is awesome, I think I'll be using this a lot cause I love worktrees but always search the commands and find them a little clunky. Random tangent, is the install․sh some kind of template, or something bespoke for this project? 100
Stuart Lang @stu.dev · 22/12/2025Ghostty is it for me. I'm using the tip release, which has search. Once 1.3 is out it's going to be an easy recommendation. 010
Reposted by Stuart Langardalis (Steve Smith) @ardalis.com · 13/12/2025Good advice for aspiring tech speakers 👇 dylanbeattie.net/2025/12/08/s...dylanbeattie.netSo You Want To Speak At Software Conferences? : dylanbeattie.netAn article from dylanbeattie.net 0137
Stuart Lang @stu.dev · 10/12/2025@chethusk.bsky.social What happened to your binlog MCP tool out of interest? I think it disappeared from GH 000
Reposted by Stuart LangAndrew Lock "Sock" @andrewlock.bsky.social · 24/11/2025Great post about TUnit here medium.com/@thomhurst/t...medium.comTUnit — Why I Spent 2 Years Building a New .NET Testing FrameworkI started building TUnit around two years ago. For those who have followed the journey, you’ll be glad to see the recent release of… 33411
Stuart Lang @stu.dev · 24/11/2025This is the time of year when everyone "Adds dotnet 10 support", which was already there, but are actually just dropping dotnet 8 support 220
Stuart Lang @stu.dev · 19/11/2025This was a lot of fun, I always look forward to appearing on this stream. Watch to find out some of the inner workings of the new C# 14 features 040
Reposted by Stuart LangAndrew Lock "Sock" @andrewlock.bsky.social · 18/11/2025Blogged: Companies complaining .NET moves too fast should just pay for post-EOL support andrewlock.net/companies-us... In this post I describe a solution to .NET "releasing too quickly": just pay for support of older versions, such as HeroDevs' Never Ending Support for .NET 6… #dotnet @hero.devandrewlock.netCompanies complaining .NET moves too fast should just pay for post-EOL supportIn this post I describe a solution to .NET "releasing too quickly": just pay for support of older versions, such as HeroDevs' Never Ending Support for .NET 6 1125
Reposted by Stuart LangSafia Abdalla @captainsafia.com · 10/11/2025First: I am really proud of this blog post title. It’s for the girlies (IYKYK). Second: .NET 10 drops tomorrow, so I did a whirlwind tour of the big and small features I worked on this cycle. Third: go read it! #dotnet #aspnetcore 📰 :https://blog.safia.rocks/2025/11/10/aspnetcore-ten/blog.safia.rocksAnd just like that .NET 10 ships tomorrowA look at key ASP.NET Core features shipping in .NET 10, including: model validation for Minimal APIs, OpenAPI 3.1 support with unified JSON Schema, improved integration testing with top-level… 46616
Reposted by Stuart LangDeniz İrgin @denizirgin.bsky.social · 27/10/2025📢LocalStack .NET Aspire Integration just hit its first stable release! 🎉 Highlights: ⚡ Eager service loading support (KUDOS @stu.dev) 🐳 Docker socket support (for Lambda containers) 🐛 Fixed Lambda + SQS "Invalid URL" bug github.com/localstack-d...github.comGitHub - localstack-dotnet/dotnet-aspire-for-localstack: This repositry contains the integrations with .NET Aspire for LocalStackThis repositry contains the integrations with .NET Aspire for LocalStack - localstack-dotnet/dotnet-aspire-for-localstack 132
Stuart Lang @stu.dev · 02/10/2025I'm also thinking about an option that plugs into nuget, there is the concept of a "NuGet Package Download Plugin", which might give another way to "listen" to download events 010
Stuart Lang @stu.dev · 02/10/2025To summarize, unused != unneeded Not sure if this is intentional @chethusk.bsky.social 100
Stuart Lang @stu.dev · 02/10/2025So with this approach it then needs to redownload the unused packages on the next build, then the following build it will clear them. I can't distinguish between packages that will be downloaded but not used, vs old packages (if that makes sense) 100
Stuart Lang @stu.dev · 02/10/2025So what's happening in numbers: * start with no cache * during the build we download 420 package versions * upload that to the cache * same build - restore cache * touch all 420 package metadata with last weeks timestamp * build * only 319 metadata files updated last read time * I delete 101 pkgs 110
Stuart Lang @stu.dev · 02/10/2025I've been playing with this in CI and am getting some odd results, it seems to be _mostly_ working. Our GHA runners have relatime set on the mount we use, and this also makes things more confusing, so I first reset all f the atimes to 7 days earlier before starting the build 110
Stuart Lang @stu.dev · 30/09/2025the http-cache is only valid up to 30 mins, so isn't much use in CI scenarios. I think it's just a missing part of the story. I know that @terrajobst.net played around with the idea of "dotnet nuget gc" which is sort of what's needed here: github.com/terrajobst/d...github.comGitHub - terrajobst/dotnet-nuget-gcContribute to terrajobst/dotnet-nuget-gc development by creating an account on GitHub. 100
Stuart Lang @stu.dev · 30/09/2025The problem is you need to restore the cache into NUGET_PACKAGES, but at the end of it you want to say "now copy the contents of NUGET_PACKAGES, but _only_ the packages that were actually used" @chethusk.bsky.social this should be a thing 210
Stuart Lang @stu.dev · 30/09/2025It happens when you cache the global package cache directory as at the end of each build, there's no eviction of older package versions that weren't used. It's an oversight IMO 100
Stuart Lang @stu.dev · 19/09/2025Looks interesting, my goto for this these days is SpreadCheetah for performance reasons: github.com/sveinungf/sp... We used ClosedXML for some finance domain stuff, and for large spreadsheets these libraries cannot handle large-ish spreadsheets (hundreds of thousands of rows)github.comGitHub - sveinungf/spreadcheetah: SpreadCheetah is a high-performance .NET library for generating spreadsheet (Microsoft Excel XLSX) files.SpreadCheetah is a high-performance .NET library for generating spreadsheet (Microsoft Excel XLSX) files. - sveinungf/spreadcheetah 210
Stuart Lang @stu.dev · 18/09/2025It passes in xunit v3, and fails in xunit v2 (and is non-deterministic, but in practice always fails) 110
Stuart Lang @stu.dev · 18/09/2025I will post the full explanation tomorrow, but the answer is sort of all four of the options 😅 I'm not kidding 210
Stuart Lang @stu.dev · 17/09/2025Your code quiz for today 📝 Does the following xUnit test: 1. Always passes 2. Always fails 3. Sometimes passes/fails 4. More information needed #dotnet 210