AI Roadmap for DotVVM
If you ever tried using AI tools to generate DotVVM pages, you probably ran into many issues. The AI models are trained on publicly available data on the Internet, but because DotVVM is a niche area and there are not many open-source projects built with it, AI often hallucinates, making up non-existent controls or trying to apply the Blazor way of doing things.
DotVVM at .NET Conf 2025
Celebrate and learn about what you can do with .NET 10 at the biggest .NET virtual event on November 11 ‐ 13.
.NET Conf: Focus on Modernization
Learn how to modernize your .NET applications on April 22 and 23 at .NET Conf: Focus on Modernization.
CloudFlare Speed Brain feature can randomly break DotVVM applications
Recently, we have run into an issue on several public-facing sites running on DotVVM 4.0+. When navigating between the pages on the site, we started seeing random errors like this:
App Modernization - Part #4: Migrate ASCX components
This article is the last part of the series:
App Modernization - Part #3: Migrate ASCX components
This article is the third part of the series:
Extend static command capabilities with JavaScript translations
Static commands are a powerful feature of DotVVM which lets you modify the viewmodel without calling the server. This is possible because DotVVM can translate some C# calls into JavaScript snippets. We don’t involve WebAssembly in this process – the translation is just a simple transform of the C# expression to a JS one, and the list of supported syntax constructs and APIs is limited.
App Modernization - Part #2: Migrate underscore.js templates and JQuery data loading
This article is the second part of the series:
App Modernization - Part #1: Migrate Web Forms code islands to DotVVM and .NET 6
This article is the first part of the series:
Using Composite Controls for the implementation of Bootstrap 5 components
You may already be aware that DotVVM 4.0 has introduced a new feature called Composite Controls, which provides a new way to write controls in DotVVM. This approach eliminates the need to declare DotVVM properties in code-only controls, for which you had to use the dotprop code snippet and work with long property declaration blocks. Instead, it only requires declaring a `GetContents` method and placing individual control properties as arguments of the method. By using this approach, the control code appears much more attractive and readable.