DotVVM 5.0 Preview 10 + new RC of Tailwind UI Released

Published: 7/11/2026 2:16:32 PM

We are very close to releasing the stable version of DotVVM 5.0, and thus, we just released 5.0.0-preview10-final of all DotVVM packages and 5.0.0-rc02-final of the new Tailwind UI for DotVVM components.

This is the last public preview before the final release of 5.0. If you were still waiting with the upgrade, you can safely start migrating to this Preview 10 - it is feature-complete and we aren't aware of any issues that require fixing before releasing the final version of DotVVM 5.0.

Package Version
DotVVM framework 5.0.0-preview10-final
Bootstrap 3 for DotVVM 5.0.0-preview10-final
Bootstrap 4 for DotVVM 5.0.0-preview10-final
Bootstrap 5 for DotVVM 5.0.0-preview10-final
DotVVM Business Pack 5.0.0-preview10-final
Tailwind UI for DotVVM 5.0.0-rc02-final

Usual migration concerns

Newtonsoft.Json to System.Text.Json transition

The biggest change in DotVVM 5.0 is replacing Newtonsoft.Json with System.Text.Json for viewmodel serialization. This brings a great performance improvement, but may require some changes in the code.

If you use any custom JSON converters, JsonIgnore, JsonProperty, JsonConstructor or other attributes, you will need to replace them with their System.Text.Json equivalents. If the objects in viewmodels don't have default constructors, the strategy of picking the correct one might have changed.

If you take advantage of viewmodel population (you initialize some properties in the constructor, via dependency injection, or in the Init stage) and expect the existing instances will be populated when the viewmodel is deserialized, it should work, but there can be tiny nuances and differencec in behavior.

You may expect issues when using polymorphism (properties of base types such as object or IEnumerable instead of concrete types) - although we tried to preserve as much of the behavior as possible, there can be some breaking changes. Please note that polymorphism was actually never oficially supported in DotVVM and although it worked in some scenarios, you shouldn't rely on it.

GridViewDataSet changes

If you use just GridViewDataSet<T>, you shouldn't notice any changes - the behavior or the public API remained stable. However, if you used interfaces such as IPageableGridViewDataSet, IBaseGridViewDataSet, there were many changes because of the generic GridViewDataSet feature we described earlier.

We unified all the interfaces to IGridViewDataSet, and added capability-based interfaces such as IPageableGridViewDataSet<IPagingFirstPageCapability> that can tell you whether the concrete PagingOptions support going back to the first page, and so on.

We need feedback

If you try migrating to DotVVM 5.0, please let us know on the forum about your experience. If you run into any breaking changes, we want to know.

Tomáš Herceg

I am the CEO of RIGANTI, a small software development company located in Prague, Czech Republic.

I am Microsoft Most Valuable Professional and the founder of DotVVM project.