Upgrading from 4.0 to 4.1

See Release notes of DotVVM 4.1 for complete list of changes.

Breaking changes

Binding expressions cannot access private members

Because of a bug in DotVVM 4.0, if you used a private member in a data-binding expression, it worked in some circumstances (in resource bindings and in value bindings where the private member was serialized and sent to the client). This was fixed in 4.1, but it may break your application if you accidentally used this.

We recommend using the Compilation status page to make sure that all pages can be compiled.

Objects are cloned instead of using the init property

DotVVM 4.0 had a bug which treated { get; init; } properties as if they had normal setter. When an object with such properties was present in the viewmodel, DotVVM would call the init setter even after the object was already initialized, which might have led to an unexpected behavior. DotVVM 4.1 fixes the behavior.

Changes in the ReflectionUtils class

The ReflectionUtils.PrimitiveTypes collection has been made private. Please use the IsPrimitiveType method to determine whether DotVVM treats the type as primitive.