Check out the full changelog here:
github.com/KristofferSt...
And check out the migration guide in the README:
github.com/KristofferSt...
๐งต(5/5)
Posts by Kristoffer Strube
Code showing the comparison between the previous way to iterate over the files and directories in a directory and the new way to do the same, while keeping closer to the specification and making it easier not to leak memory.
Blazor.FileSystem, a core dependency of this library, also had some major changes. It had its primary method for iterating the file system handles of a directory, replaced with a method from Blazor.WebIDL, which can iterate over any type decorated as async_iterable.
๐งต(4/5)
We also removed the FileSystemAccessOptions type from the library. This type was previously used to customize the path of the helper modules used in the library. I found out that we could achieve the same with importmaps, so I removed it to reduce clutter.
๐งต(3/5)
Comparison between the old and new ways to pass options to the open-file dialog.
The options used for opening a file or directory picker have been replaced with new unified types that are much closer to the shape in the specification. These new types utilize union types for the StartIn property so that we don't need to make specialized types.
๐งต(2/5)
Released version 4.0.0 of Blazor.FileSystemAccess today! ๐ It now targets the newest versions of my Blazor.FileSystem, Blazor.FileAPI, Blazor.Streams, Blazor.DOM, and Blazor.WebIDL packages, which has been a long-requested feature.
๐งต(1/5)
#dotnet #blazor
github.com/KristofferSt...
I heard some friends talk about the WebMCP browser API during #MVPSummit. So I used some time on the way home from the US to make a Blazor wrapper for it! ๐
#dotnet #WebMCP #Blazor
Project: github.com/KristofferSt...
Demo: kristofferstrube.github.io/Blazor.WebMCP/
Released a fix to Blazor.MediaCaptureStreams today in version 0.4.1. Microphones now offer finer-grained echo-cancellation capabilities, which the library does not yet support. To fix that, we ignore unsupported values until we soon add support for them.
#dotnet #blazor
github.com/KristofferSt...
It was great to follow along! ๐
Iโm doing Advent of Code using the new File-based C# programs this year. But it doesnโt seem like VS Code nor VS has good intellisense when using them. What are people using when writing these?
#dotnet #csharp #AOC
A captivated audience.
Had a great meetup in Aarhus .NET User Group last night, where I got to talk about whatโs new for ASP .NET Core 10. ๐ My new workplace was the host which was very convenient and appreciated. ๐
#dotnet #aspnetcore #blazor
I can recommend listening to the latest episode of Hanselminutes.
www.youtube.com/watch?v=YO7l...
I admire what @captainsafia.com has accomplished in such a short time.
And especially her point that confidence can be built from competence resonates a lot with me.
VS 2022 or 2026?
Goodbye weekend where I had no plans ๐
I've been using this as my daily driver for the last month, and it has been such a great experience! A lot of my projects open up 3-4 times faster with this version of Visual Studio. ๐
#dotnet
devblogs.microsoft.com/visualstudio...
Now we have to guess if itโs โa Bingo appโ or โthe Bingo service that knows everyoneโs namoโ.
I asked ChatGPT to come up with a name for the opposite of Primitive Obsession.
My favourite answer: Class Constipation.
For me, this is the peak of ChatGPT usage.
โฌ That's, of course, paraphrasing.
I attended a talk by Bjarne Stroustrup for the first time today. He told all about the usage of Concepts for generics in C++.
He also had a small jab at C#: "If dynamic reflection is good enough for C#, then why not for C++?" ... "I think we can do better." I loved that comment!
Text from email: Congratulations! Kristoffer Strube, We're pleased to welcome you to another year for the Microsoft Most Valuable Professionals (MVP) program in recognition of your outstanding contributions to the community in the following Technical Area/s: Web Development .NET
Got renewed for my second year as Microsoft MVP. ๐
This time also in the category Web Development.
#dotnet #MVPBuzz
Released version 0.2.4 of ActivityStreams, my implementation of the Activity Streams and Activity Pub vocabulary for .NET.
It fixed a bug reported by @dfyx.social.helios42.de.ap.brid.gy, fixed a misspelling, and added XML Documentation to all types exposed in the API.
github.com/KristofferSt...
@james.montemagno.com do you know if there is an easy way to map multiple different MCP endpoints in a single .NET project, each with their individual tools/methods registered? At work we are building MCPs for helping copilot use our SDKs, but would like to expose seperate tools for each SDK.
#mcp
Blogged: Revisiting using a Content Security Policy (CSP) nonce in Blazor
damienbod.com/2025/05/26/r...
#blazor #net9 #csp #owasp #security #dotnet #aspnetcore #oidc #identity #openidconnect #openiddict
Released a new version of Blazor.WebIDL yesterday, which fixes that Error Handling JSInterop did not detect typed exceptions correctly when used in Firefox.
I also updated the Playwright tests to run across Chrome, Firefox, and WebKit.
#dotnet #blazor
github.com/KristofferSt...
I get told that I don't share this enough, so I'm sharing again. ๐ #SelfPromotion
I do freelance consultancy. So if any of you have gigs or projects in the area of Blazor, ASP.NET Core, Data Mining, Visualizations, or some combination of these, then I'm currently available for new projects. ๐
Released version 3.3.0 of Blazor.FileSystemAccess today. ๐ It now has support for getting write permission to all entries in a directory when requesting to open a directory. Thanks to Luke for creating the issue and PR for this.
#dotnet #blazor
Demo: kristofferstrube.github.io/Blazor.FileS...
It was great talking with you! ๐
I found my name. ๐ #MVPBuzz #MVPSummit
At the pre-day for the #MVPSummit.
Having a great time meeting new people and saying hi to some existing friends for first time in real-life!
#MVPBuzz