Sign in

Kristoffer Strube

@kstrubeg.bsky.social
422 followers 44 following 79 posts

.NET developer, Microsoft MVP, and Blazor Consultant. GitHub: github.com/KristofferStrube

PostsRepliesMedia
Reposted by Kristoffer Strube
jsakamoto @jsakamoto.bsky.social · 13/06/2026
[New Post]🪄Opening Pandora's Box in Blazor! Call any DOM method (scrollIntoView, click, select...) from your .razor file, with zero external JavaScript files. The trick is the browser's built-in Object() function. Power and peril, both unlocked 👇 dev.to/j_sakamoto/o... #Blazor
dev.to
Opening Pandora's Box: How to Unlock Direct DOM Method Calls in Blazor, No External JS File Needed
🔰 Referencing and operating DOM elements in Blazor In Blazor, you can reference a DOM...
173
Kristoffer Strube @kstrubeg.bsky.social · 04/06/2026
Done with my talk at #NdcCph2026 😁 Time to relax the rest of the day and going to the after party later with live music by The Linebreakers! 🎸 #ndc
Me on the scene. On the slide is a duck-SVG and the path commands for its shape.
031
Kristoffer Strube @kstrubeg.bsky.social · 14/04/2026
Check out the full changelog here: github.com/KristofferSt... And check out the migration guide in the README: github.com/KristofferSt... 🧵(5/5)
github.com
000
Kristoffer Strube @kstrubeg.bsky.social · 14/04/2026
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)
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.
100
Kristoffer Strube @kstrubeg.bsky.social · 14/04/2026
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)
100
Kristoffer Strube @kstrubeg.bsky.social · 14/04/2026
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)
Comparison between the old and new ways to pass options to the open-file dialog.
100
Kristoffer Strube @kstrubeg.bsky.social · 14/04/2026
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...
github.com
GitHub - KristofferStrube/Blazor.FileSystemAccess: A Blazor wrapper for the File System Access browser API.
A Blazor wrapper for the File System Access browser API. - KristofferStrube/Blazor.FileSystemAccess
141
Kristoffer Strube @kstrubeg.bsky.social · 30/03/2026
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/
github.com
GitHub - KristofferStrube/Blazor.WebMCP: A Blazor wrapper for the WebMCP browser API.
A Blazor wrapper for the WebMCP browser API. Contribute to KristofferStrube/Blazor.WebMCP development by creating an account on GitHub.
020
Kristoffer Strube @kstrubeg.bsky.social · 12/02/2026
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...
github.com
021
Kristoffer Strube @kstrubeg.bsky.social · 04/02/2026
It was great to follow along! 🙌
011
Kristoffer Strube @kstrubeg.bsky.social · 01/12/2025
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
010
Kristoffer Strube @kstrubeg.bsky.social · 22/10/2025
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
A captivated audience.
030
Kristoffer Strube @kstrubeg.bsky.social · 09/10/2025
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.
youtube.com
Competence builds confidence with .NET Principal Engineer Safia Abdalla
YouTube video by Scott Hanselman
100
Kristoffer Strube @kstrubeg.bsky.social · 17/09/2025
VS 2022 or 2026?
100
Kristoffer Strube @kstrubeg.bsky.social · 10/09/2025
Goodbye weekend where I had no plans 😅
010
Kristoffer Strube @kstrubeg.bsky.social · 09/09/2025
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...
devblogs.microsoft.com
Visual Studio 2026 Insiders is here! - Visual Studio Blog
Visual Studio 2026 Insiders is here – and it marks one of the most ambitious steps forward we’ve taken with the IDE. This release brings AI woven directly into the developer workflow, performance impr...
020
Kristoffer Strube @kstrubeg.bsky.social · 04/09/2025
Now we have to guess if it’s “a Bingo app” or “the Bingo service that knows everyone’s namo”.
000
Kristoffer Strube @kstrubeg.bsky.social · 03/09/2025
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.
010
Kristoffer Strube @kstrubeg.bsky.social · 19/08/2025
⬆ That's, of course, paraphrasing.
000
Kristoffer Strube @kstrubeg.bsky.social · 19/08/2025
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!
100
Kristoffer Strube @kstrubeg.bsky.social · 10/07/2025
Got renewed for my second year as Microsoft MVP. 😀 This time also in the category Web Development. #dotnet #MVPBuzz
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
020
Kristoffer Strube @kstrubeg.bsky.social · 08/07/2025
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...
github.com
GitHub - KristofferStrube/ActivityStreams: A .NET implementation of the Activity Streams vocabulary in the form of classes that can be serialized/deserialized using System.Text.Json
A .NET implementation of the Activity Streams vocabulary in the form of classes that can be serialized/deserialized using System.Text.Json - KristofferStrube/ActivityStreams
000
Kristoffer Strube @kstrubeg.bsky.social · 02/07/2025
media.tenor.com
a picture of a car from the movie cars with the words speed ? i am speed
ALT: a picture of a car from the movie cars with the words speed ? i am speed
010
Kristoffer Strube @kstrubeg.bsky.social · 30/06/2025
@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
021
Reposted by Kristoffer Strube
Damien Bowden @damienbod.com · 26/05/2025
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
damienbod.com
Revisiting using a Content Security Policy (CSP) nonce in Blazor
This blog looks at implementing a strong Content Security Policy (CSP) in web applications implemented using Blazor and ASP.NET Core. When implementing CSP, I always recommend using a CSP nonce or …
1116
Kristoffer Strube @kstrubeg.bsky.social · 26/05/2025
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...
github.com
GitHub - KristofferStrube/Blazor.WebIDL: A Blazor wrapper for types and interfaces used in and defined in the standard WebIDL specification.
A Blazor wrapper for types and interfaces used in and defined in the standard WebIDL specification. - KristofferStrube/Blazor.WebIDL
021
Kristoffer Strube @kstrubeg.bsky.social · 24/04/2025
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. 😊
033
Kristoffer Strube @kstrubeg.bsky.social · 08/04/2025
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...
github.com
GitHub - KristofferStrube/Blazor.FileSystemAccess: A Blazor wrapper for the File System Access browser API.
A Blazor wrapper for the File System Access browser API. - KristofferStrube/Blazor.FileSystemAccess
000
Kristoffer Strube @kstrubeg.bsky.social · 28/03/2025
It was great talking with you! 😁
010
Kristoffer Strube @kstrubeg.bsky.social · 25/03/2025
I found my name. 😁 #MVPBuzz #MVPSummit
020
Reposted by Kristoffer Strube
Michael Washington @adefwebserver.com · 25/03/2025
Look who I ran into! @kstrubeg.bsky.social #Blazor #mvpbuzz
051
Kristoffer Strube @kstrubeg.bsky.social · 24/03/2025
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
040
Kristoffer Strube @kstrubeg.bsky.social · 14/03/2025
Oh my mistake. But something to look forward to then. 😁
010
Kristoffer Strube @kstrubeg.bsky.social · 14/03/2025
Do you enjoy a well-documented API? Then you might be happy to see that ASP․NET Core 10 Preview 1 uses XML Docs for the generated Open API Spec. 😀 @captainsafia.com has made a repo where she shows all the cool bells and whistles of this feature: github.com/captainsafia... #dotnet
github.com
GitHub - captainsafia/aspnet-openapi-xml: Sample repo for XML comment support in ASP.NET Core
Sample repo for XML comment support in ASP.NET Core - captainsafia/aspnet-openapi-xml
110
Kristoffer Strube @kstrubeg.bsky.social · 13/03/2025
I finally found a way to make tests for Blazor JS wrappers in a minimal format. I used to have a lot of boilerplate to control what was evaluated in the browser in each test, but I found out I didn't need that distinguishment, so now it is super simple. 😀 #dotnet #blazor #tests
A test for validating the behavior of a method of the AnalyserNode from the Web Audio API.
021
Kristoffer Strube @kstrubeg.bsky.social · 28/02/2025
Yeah, It's a crazy commitment to make from the ASP.NET team (in a good way). I've already worked with getting the 3 most popular attestation formats to work in my own library, so I know the difficulty. I hope that they reach out to some of the more popular library authors to help implement this.
010
Reposted by Kristoffer Strube
Jon Galloway @jongalloway.bsky.social · 03/02/2025
On this week's #ASPNET Community Standup: 🌟.NET 10 Server & APIs Planning Discussion 🎙️Dan Roth, Safia Abdalla, Mike Kistler, Jon Galloway 🗓️February 4 / 10 AM PT / 18 UTC www.youtube.com/watch?v=xs_V... #dotnet #aspnetcore
youtube.com
.NET 10 Server & APIs Planning Discussion
YouTube video by dotnet
042
Kristoffer Strube @kstrubeg.bsky.social · 04/02/2025
Damm BlueSky audio processing on upload is rough. 🙄
010
Kristoffer Strube @kstrubeg.bsky.social · 04/02/2025
Blazor.WebAudio now also has the option to define custom oscillator types for OscillatorNodes. I made a small video that illustrates how simple a series of sine waves can create any waveform. 🔊 #dotnet #blazor Project: github.com/KristofferSt... Demo: kristofferstrube.github.io/Blazor.WebAu...
120
Kristoffer Strube @kstrubeg.bsky.social · 29/01/2025
Awesome. Please reach out if there is anything that can be refined for your use case. 😁
010
Kristoffer Strube @kstrubeg.bsky.social · 28/01/2025
Been working on a small WYSIWYG editor for formulas in Blazor during the last week. I will use this in a new demo for custom waveforms in Blazor.WebAudio next week. 😁 #dotnet #blazor #math Project: github.com/KristofferSt... Demo: kristofferstrube.github.io/Blazor.Formu...
141
Kristoffer Strube @kstrubeg.bsky.social · 23/01/2025
That is so cool! Really looking forward to see the faces of the entire aspnetcore teams in those. I primarily make suggestions for aspnetcore so also super cool to get more insights into that team's processes og deciding factors.
000
Reposted by Kristoffer Strube
jsakamoto @jsakamoto.bsky.social · 23/01/2025
[FYI] 🚀Boost your Blazor app's UX! Blazor SplitContainer is the perfect solution for adding resizable, responsive panes to your Blazor apps. It’s smooth, reliable, and easy to integrate. It offers full customization and support for vertical and horizontal layouts. github.com/jsakamoto/To... #Blazor
2116
Kristoffer Strube @kstrubeg.bsky.social · 22/01/2025
Another cool detail is that you can pick which versions of Roslyn and Razor it uses even with daily previews if you want to check whether a bug has been fixed in the newest version of those. 😀 So nice that it is so easily available.
010
Kristoffer Strube @kstrubeg.bsky.social · 22/01/2025
A cool detail (and why I find it especially awesome) is that it uses my Blazor WebWorkers library to run the compiler for the programs and pages on a background thread in your browser when you use the tool. 🤓
110
Kristoffer Strube @kstrubeg.bsky.social · 22/01/2025
I found a cool project I had not seen before: DotNetInternals by @janjones.bsky.social An online tool for seeing the compiled result of C# programs, Razor components, and CSHTML files. #dotnet #Blazor Project: github.com/jjonescz/Dot... Demo: lab.razor.fyi
A simple program in C# that writes "Hello." to the console. Beside it the IL code generated by the compiler for that program.
163
Kristoffer Strube @kstrubeg.bsky.social · 21/01/2025
Cool! A tip: I have very good experience with hosting demos of projects like this on GitHub Pages for my own projects. It makes it much easier for potential users to see how it will work and different use cases. Here is one of my similar projects where I do this: github.com/KristofferSt...
210
Kristoffer Strube @kstrubeg.bsky.social · 17/01/2025
Me too! 😁 Can't wait.
010
Kristoffer Strube @kstrubeg.bsky.social · 15/01/2025
It should count how many lines of code use the dependency. \s
000
Kristoffer Strube @kstrubeg.bsky.social · 13/01/2025
During the last week, I have worked on adding support for PannerNodes in Blazor.WebAudio. Here is a small demo that illustrates its use. The demo works best with a dual-speaker setup. 🔊🔊 #dotnet #blazor #audio Demo: kristofferstrube.github.io/Blazor.WebAu... Project: github.com/KristofferSt...
040