Telerik blogs

I share my advice on when to use Blazor and when to use one of the JavaScript web frameworks.

I have been using Blazor from the very first moment. It’s been almost five years since I first tried it. Meanwhile, I’ve implemented small, larger, internal and customer-facing Blazor web applications for different use cases.

In this article, I want to share my advice on when to use Blazor and when to use one of the JavaScript web frameworks to help you decide on your next web project.

There are also other solutions, including but not limited to PHP-based frameworks. However, I stick to what I know best, which I have used successfully for multiple years. And that is Blazor, which uses C#, and JavaScript web frameworks, including TypeScript.

The Landscape of Web Development

Without going too deep into web development history, it’s fair to say that, until Blazor was released, most modern web applications used one of the JavaScript-based web frameworks, Angular, React or Vue.

There were also the odd Knockout.js or custom-built framework-based web applications.

In the .NET world, we have had ASP.NET Core-based web applications for many years. While ASP.NET Core Web Forms never impressed me, ASP.NET Core MVC or Razor Pages were somewhat viable for building internal applications.

However, when it came to modern component-oriented single-page web applications (SPAs) providing modern user experiences, C# and .NET didn’t have anything to offer until Blazor was released in 2020.

While Blazor, in its first version, had many rough edges and many limitations, it improved step by step, and it’s fair to say that in 2025, Blazor is a viable alternative to JavaScript-based web frameworks for building modern SPAs.

What Is Blazor?

I’m sure you already know a thing or two about Blazor. However, Blazor has improved with every release, and I often see people having a wrong idea of what Blazor is—or isn’t.

Blazor is a modern SPA web framework based on the .NET platform. Besides using C# instead of JavaScript, we can access most .NET technologies, including Entity Framework Core or similar and thousands of packages on NuGet.org.

Blazor offers three rendering modes (often called hosting models): Blazor Server, Blazor WebAssembly and Blazor Static Server-Side Rendering (SSR). SSR is the default when using the latest Blazor Web Application project template.

Those rendering modes use a different architecture and have their strengths and weaknesses. It’s one of the most important things to understand:

Blazor isn’t just one form of web development. Instead, it comes in different flavors.

Blazor Component Model

Before we learn about the different rendering modes and when using which mode makes the most sense, let’s learn about the Blazor component model.

The Blazor component model uses Razor components with the template code (HTML) and the interaction code (C#) in the same .razor file.

<h1>@Title</h1>

@code {
	public string Title { get; set; } = "My Component";
}

The Blazor Basics series contains many foundational articles, such as Creating a Blazor Component, explaining how the Blazor component model works and why it allows for rapid development.

I have experience with hook-based React web applications, and I have written complex useEffect-solutions that I couldn’t understand a few months later. With Blazor and its lifecycle methods, I write more straightforward, understandable and maintainable code.

One of the best advantages of Blazor is that you can use C# in your user interface components and backend services. Extracting code from the user interface interaction logic into your business services is a simple and smooth task.

Razor components can be implemented as render mode agnostic, which means that you can use the same component with different rendering modes.

This allows you to create a component and use it in a Blazor Server and a Blazor WebAssembly application without changing its implementation.

A Razor Class Library (RCL) is a project type that allows the grouping and sharing of Razor components with multiple applications.

Lastly, since C# is a compiled language, I get a lot of compiler support when implementing my components. This helps me resolve (some) bugs at compile time rather than runtime.

Blazor Static Server-Side Rendering (SSR)

Blazor Static Server-Side Rendering (SSR) is the latest addition to the framework. The main benefit is that we can use the Razor component model for statically server-rendered websites.

While Blazor Server and Blazor WebAssembly execute interaction code (for example, for handling a button click), SSR allows us to (re)use the same components or build a tree of specific components using the robust Razor component programming model.

Blazor Server

Blazor Server uses a persistent web socket connection between the web server and the client. The interaction code is executed on the server, and a delta of the user interface (HTML and JavaScript code) is sent from the server to the client.

The browser then uses that data and rerenders the website accordingly. All the state is kept on the server.

Blazor WebAssembly

Blazor WebAssembly runs entirely on the client and is the most comparable render mode to traditional JavaScript-based web frameworks such as React, Angular or Vue.

Similar to JavaScript web frameworks, a bundle is downloaded to the client when the user first visits the website. Next, the bundle is extracted, and the WebAssembly code is natively executed on the browser.

Instead of executing JavaScript, the browser executes WebAssembly when using Blazor WebAssembly to implement a web application.

WebAssembly is an open web standard, and there are other frameworks, such as XYZ, that utilize web assembly. For example, Yew, Leptos and Seed are Rust-based WebAssembly web frameworks.

If progressive web application features, such as offline support, background workers, installability or push notifications, are important for your web application, you should use Blazor WebAssembly.

Learn more about progressive web apps with Blazor WebAssembly.

Ecosystem and Tooling

With Visual Studio and Visual Studio Code, Microsoft provides one of (if not the) best developer tooling for any programming environment.

With Visual Studio, we get a complete IDE, and with Visual Studio Code, a high-performing lightweight code editor.

Additionally, with JetBrains Rider, we have a brilliant third-party option.

Because Blazor uses C#, we get access to almost any package on NuGet. It means that for most problems, there is a preimplemented solution that we can leverage in our web applications.

We can even share code, components and artifacts ourselves by implementing and publishing internal or public NuGet packages.

User interface frameworks such as the Blazor component library for modern UI from Progress Telerik provide highly functional and customizable components to implement state-of-the-art web applications.

JavaScript Web Frameworks

When it comes to JavaScript web frameworks, one of the strengths is the availability of JavaScript web developers. JavaScript is accessible, and millions of developers use it daily.

Getting a good .NET developer can be more challenging than getting a good JavaScript developer. If you already have a team of experienced JavaScript web developers, sticking with what you know best might be the best option.

However, if you have experienced .NET desktop or mobile developers, helping them transition into web development using Blazor is probably simpler than teaching them JavaScript.

I strongly believe that JavaScript is simple to learn but hard to master. I have seen many great applications but also a lot of bad code that made a new application essentially unmaintainable.

With C# and .NET, you might have a higher barrier of entry, but creating a mess seems harder to me. That is obviously a very subjective claim based on my individual experience, but it is worth considering when making the decision.

The JavaScript ecosystem provides a vast landscape of existing user interface libraries, tools and code fragments. With npm and similar tools, installing external packages is simple.

JavaScript web frameworks are generally suited best for building highly scalable web applications. Good examples are Facebook, Netflix and Airbnb.

However, there are use cases where we don’t expect thousands or millions of users. For traditional line-of-business applications, we aim to release them as quickly as possible.

Do you want to juggle a dozen external dependencies to implement a simple form over data web application?

Installing packages, keeping up with their release cycles and addressing bug fixes and vulnerabilities can be challenging.

Let a JavaScript web framework-based application sit for 12-24 months and try to get it up and running with the latest versions of the external dependencies. I’ve been there, and I can tell you it’s mostly a mess and requires a lot of work to get back up to speed.

With Blazor, building simple line-of-business applications is trivial. Development speed is high and with the yearly .NET release cycle, most external dependencies support the major .NET versions. It’s simpler to keep up to date and to update orphan applications.

Conclusion

There is no right or wrong choice. JavaScript web frameworks will continue to thrive. Experienced developers will build robust, secure and scalable web applications.

However, with Blazor, we now have a C# and .NET-based web framework that provides a state-of-the-art, modern web framework for .NET developers, enabling them to build robust, secure, scalable and reliable web applications.

In the end, personal preference, development experience, team structure and long-term strategy should be taken into consideration when deciding what to choose for your next web application.

The best advice I have is: Do not blindly skip Blazor and keep using what you have used in the past. I challenge you to spend 20 hours learning about Blazor and experiencing its advantages firsthand.

If you want to learn more about Blazor development, you can watch my free Blazor Crash Course on YouTube. And stay tuned to the Telerik blog for more Blazor Basics.


Whatever route you choose, Progress is ready to support your development efforts—with Telerik component libraries for .NET frameworks and Kendo UI component libraries for JavaScript.

DevCraft bundles include UI libraries and tools:

  • Blazor
  • ASP.NET Core
  • ASP.NET MVC
  • ASP.NET AJAX
  • Embedded Reporting
  • Mocking tools
  • .NET MAUI
  • WPF
  • WinForms
  • WinUI
  • Automated Testing
  • Angular
  • React
  • jQuery
  • Vue

Try everything free with a 30-day trial!

Download DevCraft


About the Author

Claudio Bernasconi

Claudio Bernasconi is a passionate software engineer and content creator writing articles and running a .NET developer YouTube channel. He has more than 10 years of experience as a .NET developer and loves sharing his knowledge about Blazor and other .NET topics with the community.

Related Posts

Comments

Comments are disabled in preview mode.