My 2025 Blazor Server Web Development Stack
Another year, another opportunity! Glad to have you on board. 👋🛳️
Often you hear the phrase “you’re a .NET developer”, or “I’m a Blazor web developer”.
It’s a broad categorization to start a conversation and narrow down the area - nothing less, nothing more.
Today, I want to kick off 2025 by sharing my current stack for Blazor web development.
I’m currently developing a Blazor Server web application for a customer, and I will share the different libraries and technologies I use for that project.
It may inspire you to try Blazor. I have a dated but mostly relevant free Blazor Crash Course on YouTube.
C# 13 and .NET 9
I use C# 13 and the latest stable .NET release for this project.
I am a friend of starting with the latest version to benefit from all the performance improvements and to avoid technical debt from the beginning of the project.
The application will probably release 4-6 new versions yearly, so I will have enough time to migrate to .NET 10 and future .NET versions.
Why Blazor Server
The customer’s users will have a stable network connection, and the application will run on a corporate network.
I know how many users will access the application simultaneously. I want to benefit from the website’s fast loading speed, and I don’t need any offline features.
Using C# (instead of JavaScript/TypeScript) allows me to build a more robust and simpler-to-maintain web application. And yes, I also have TypeScript-based React web applications in my portfolio.
MudBlazor
I use MudBlazor as the user interface library. I published a video about eight different options for Blazor UI interface libraries, and MudBlazor is my favorite.
It provides a big library of modern material design components and bloats the application only by around 9-10 MB.
The built-in theming support lets me quickly implement the colors and font (sizes) the customer wants.
I currently use a preview version of MudBlazor 8, which will probably become the stable release before my application releases.
Entity Framework Core
I use Entity Framework Core to implement the data access to a shared database.
There won’t be (too) many concurrent users, and I don’t expect any performance problems with that choice. Sure, there are other, simpler solutions, such as Dapper.
However, I haven’t used it in production for another project, and I don’t want to gamble by becoming dependent on a library I don’t have experience with.
Other applications in the same system provide data for my web application, so I use a database-first approach instead of a code-first approach for this project.
If I had complete control over the database, I’d use the code-first approach I have successfully implemented in other projects.
MySQL
It was the customer’s choice, meaning it was a requirement to use MySQL as the database.
Again, I don’t fully control the database, but I will have my schema to store the application data.
Excubo.Blazor.Canvas
I have to visualize data by dynamically drawing shapes on a canvas. Luckily, in 2025, HTML 5 provides the native canvas element.
I haven’t implemented all the details yet, but so far, I’m happy with Excubo.Blazor.Canvas.
It provides a C# wrapper around the HTML 5 canvas element API, allowing me to implement my application code exclusively in C# instead of JavaScript.
QuestPDF
For report generation (PDF documents), I use QuestPDF.
It’s a simple yet powerful and minimalistic, still performant PDF generator. The best thing is that it is 100% written in C# and has no dependencies.
The project qualifies for the community license as a solo developer with less than 1 million USD in annual gross revenue. However, an affordable professional/commercial license is available.
Again, I recorded an introduction video about QuestPDF that shows its benefits (such as live document updates) in more detail.
MsTest
When it comes to automated testing, I use MsTest. It’s a simple test framework that I know from my extensive experience with the .NET platform.
NUnit or XUnit are great (or even better) solutions. However, I haven’t spent the time learning them because I have never encountered MsTest’s (allegedly) limitations.
Outro & 2025 Perspective
I could ramble on and on, but those are the major technologies I currently use for that project.
Let me know if you have any questions about it or think that I missed out on covering a specific part of my 2025 Blazor web development stack.
I will get back into video production during the next weeks. This year, I aim to create at least 12 new technical tutorials or other relevant and free videos for my YouTube channel.
Let’s start 2025 strong; I wish you all the best! 🍀