Introduction To DotVVM

What is DotVVM?

DotVVM is an open source web framework built on ASP.NET technology. It is a modern and better alternative to ASP.NET WebForms.

Why use DotVVM?

  • You can use it in your existing ASP.NET application.
  • It offers several built-in controls (e.g. GridView) for faster development.
  • It is easy to learn and use.
  • You don‘t have to write unnecessary javascript. All communication between the server and client is handled by the framework.

How DotVVM works

DotVVM implements the MVVM design pattern (Model-View-ViewModel), which separates the application into three parts.

  • Model
    Describes data and business logic of your application.
  • View
    Represents your UI and communicates with ViewModel using bindings and commands.
  • ViewModel
    Is the state of your application. It contains the data and commands the Views to be utilized.

Dothtml

Views are created through HTML-like syntax enriched with DotVVM controls and other features like validation, command bindings, and data bindings.

Client-Server Communication

There are actually two ViewModels:

  • Server-side ViewModel is a C# class – implemented by a developer.
  • Client-side is automatically serialized and deserialized from your server side ViewModel by postBacks.

DotVVM, unlike WebForms, has no ViewState. The only state that your controls work with is the ViewModel.

How to start

Firstly, if you want to start developing in DotVVM you should install the extension for Visual Studio, which comes with a lot of benefits (e.g. syntax highlighting, error checking, project templates, and others).

On the VS market, there are two types of extensions:

  • Free – basic limited functionality
  • Unlimited – has all the features

You can read a more detailed description here.

In the next tutorials, you will learn step-by-step how to develop applications in DotVVM.

For example,

  • Create your first DotVVM application
  • Use Validation
  • Learn about integrating DotVVM with existing ASP.NET application

Links

  • https://github.com/riganti/dotvvm
  • https://www.dotvvm.com/


Similar Articles