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! 🍀