Build new ASP.NET
web apps with ready-made components and great
Visual Studio integration

Get DotVVM

DotVVM lets you build interactive web UIs with just C# and HTML using the MVVM approach.

Great for Line of business web apps

Most business applications work with data grids and complex editing UIs.
Creating such experiences using MVVM is fast and straight-forward.

Components, validation, SPAs, and more!

DotVVM is a mature framework for rapid app development. It integrates with the ASP.NET ecosystem, and ships with more than 30 built-in controls like GridView, FileUpload and more!

Seamless data access

Most client-side frameworks need some API to access data from the browser.
DotVVM saves a lot of time by providing a seamless way to transfer viewmodels between server and the browser.

Visual Studio extension

DotVVM uses a different syntax than ASP.NET MVC, but there is a free extension for Visual Studio which gives you IntelliSense, syntax highlighting and more!

Benefits of DotVVM

Great developer productivity

Load your data in the viewmodel and display them in the UI using data-binding. No need to build and maintain API endpoints

Easy to learn for any .NET developer

The controls and concepts are similar to other .NET UI frameworks, such as Blazor, Web Forms or WPF. You’ll be productive quickly.

Just 100kB of minified JavaScript

DotVVM doesn’t require neither WebAssembly nor SignalR. It works great for public-facing sites, and doesn’t require stable and low-latency Internet connection.

Supports even old .NET Framework

You can install DotVVM in an old project and use it together with other legacy code. It is a great tool for [incremental modernization].

FAQ

How does DotVVM compare with Blazor?

Same as Blazor, DotVVM can build web apps with just HTML and C#. However, each technology achieves this by a different architecture:

  • Blazor WebAssembly allows the C# code to run in the browser. If you want to get data from the server, you need to call an API. The startup time of such app can be longer as it needs to download several megabytes of data.
  • Blazor Server runs the C# code on the server, so you can access the data directly, but it needs a SignalR connection so it can update the page loaded in the browser. It doesn’t work well on sites with millions of users, or when the Internet connection is unstable.
  • DotVVM also executes the C# code on the server, but the viewmodel is a JavaScript object which lives in the browser. When some action is needed on the server, the viewmodel or its part is sent to the server as JSON, and the changes made to it are sent back to the browser. This approach scales well even for millions of users and doesn’t have problems on unstable networks.

By the way, you can easily combine all three approaches in a single ASP.NET Core app.

What's the difference between DotVVM and Razor Pages? They are using MVVM too.

Razor Pages also use MVVM approach, but all the experience is done on the server. If the user interacts with the page, the page data are sent to the server and a new HTML is returned.

DotVVM is using Knockout JS library to do the MVVM experience in the browser. Most of the user interactions can be handled without involving the server, and if DotVVM needs to call the server, it is using AJAX so the page doesn't reload.

Do I need to learn JavaScript to use DotVVM?

No. Knowing just HTML and C# is enough to use DotVVM. DotVVM will do all the JavaScript "magic" for you.

However, if you take the web development seriously, we think that you should learn JavaScript eventually. You'll be able to achive much more – from using third-party components to extending DotVVM with custom behaviors.

Is DotVVM free?

Yes! DotVVM is an open-source project developed under the Apache 2.0 License, and is supported by the .NET Foundation. There is also a free extension for Visual Studio.

In order to make the DotVVM project sustainable, we also offer commercial products built on top of DotVVM. If you plan to use DotVVM for a larger project, make sure to check them out – they can save a lot of time.

I am still using .NET Framework and old ASP.NET. Is there an upgrade path?

Yes! DotVVM works with the new ASP.NET Core as well as with old ASP.NET.

If you are using ASP.NET Web Forms, you can install DotVVM in the project and start building new pages using the DotVVM syntax. You can even use DotVVM to modernize legacy ASP.NET applications.

Not sure if DotVVM is the best good choice for you?

We'll be happy to talk with you and see whether DotVVM can help in your scenario.