Fundamentals
What is DotVVM?
DotVVM is an open source framework which helps with building of line of business web applications with .NET on the server side.
If you have to build a web app with dozens of pages with grids or complicated forms with a bunch of fields, modal dialogs or multi-page wizards, DotVVM is the framework for you.
The main audience for DotVVM are .NET developers, but of course, anyone is welcome.
Yet another framework? We have Angular, React, Vue...
Angular, React or Vue are mainly client-side libraries which do not depend on any particular technology used on the server. You can use Node.js, PHP, Java or anything else. You can also choose any technology to do server-to-client communication – REST, GraphQL or others... However, you need to learn many things.
DotVVM is not only a client-side framework – it includes also the server-side part which is built in .NET. With DotVVM, you need .NET on the server. But thanks to it, you will spend much less time dealing with the client-server communication because it is handled by DotVVM itself. You will also be able to continue to use Visual Studio, C# and tools you know. You won’t need to learn almost anything about Javascript, its libraries and tools. Knowledge of this will certainly help you, but you can build a lot of stuff without writing a single line of javascript code or running npm.
What do I need to know to start?
C#, HTML and basics of CSS. That’s it.
You can start with DotVVM Academy to learn the basics. Then, you should read the documentation which will guide you with all features of DotVVM.
So I don’t need to know anything about JavaScript?
You can build DotVVM web apps with a lot of client-side interactivity without knowing JS, just with C# and HTML. Of course, we recommend to learn JavaScript because it will open you a lot of great opportunities to extend DotVVM, build your own controls or wrap third-party ones.
The good thing is that even if you only know the basics of using jQuery, you will be able to start and learn the things you need as you go.
What kind of web apps is DotVVM good at?
DotVVM was built for line of business applications. It contains a lot of controls which you will need in such apps – GridView, DataPager, all form controls. There is also a lot of features which you can find useful: validation, localization, date and number formatting or SPAs.
If you really mean it, check out DotVVM Business Pack, a set of controls built just for big enterprise we apps with advanced GridView, controls like DateTimePicker, AutoComplete, TreeView or TabControl. These controls are built just for DotVVM. They support DotVVM data-binding syntax, integrate with validation and all other DotVVM mechanisms.
Can I write any site with DotVVM?
Yes - DotVVM can render any HTML you need. However, there are several types of web sites where using DotVVM doesn’t have any benefits. If you are building a simple site with mostly static pages or very simple forms, or if you have a large public facing site which requires perfect SEO, it’s better to use ASP.NET MVC or Razor Pages.
On the other hand, DotVVM can be used together with other frameworks in one application. If you have an e-commerce site with a public facing area and an admin portal, you can use DotVVM only for the admin part and for the order process. For the home page and product listing pages, you can use something else.
Products and Services
What about pricing?
DotVVM framework is open source (https://github.com/riganti/dotvvm) and free to use for anyone.
There is also a free extension for Visual Studio 2015, 2017 and Visual Studio Code.
With these free tools, you are able to build practically any web application.
We also offer several commerical products which will save you a lot of time:
- DotVVM for Visual Studio Pro will give you better IntelliSense, easier navigation in code editor and real-time error checking.
- Bootstrap for DotVVM is a set of controls which make Bootstrap easier to use. You will get shorter and cleaner syntax for building complex Bootstrap widgets like the responsive menu or modal dialog. There is also an extra DateTimePicker control styled to fit the Bootstrap look and feel.
- DotVVM Business Pack is a set of enterprise-grade controls for the most complicated line of business sites. It contains advanced controls to build complicated forms or work with data and includes several customizable themes.
Can I rely on DotVVM? Is it suitable for an app that should work for next 15 years?
The development of DotVVM started in 2015 and the first stable release was here in mid-2016. Since then, DotVVM 1.1 added support for .NET Core and now we are running for DotVVM 2.0.
We have the backlog full of features for at least next 5 years and since we are also using DotVVM to build apps for our customers, we will keep maintaining it for a very long time.
Of course, there are many things that can change in web development. Especially the front-end frameworks change very frequently and planning for 10 years is almost impossible. Everyone who has used Silverlight can confirm that even a global company cannot make a guarantee that a technology will succeed.
DotVVM team is actively watching new technologies like Web Assembly and already planning how to integrate with them. We are committed to continue with the development and adding new and new features.
If you really want to be sure that DotVVM will work for the entire lifetime of your application, contact us. We can provide you with a support contract which includes bug fixes and support of new versions of major browsers.
Do you offer support?
Yes, we do. Tell us what you need and we will find a solution.
Most commonly we help with:
- Help with integrating DotVVM in existing ASP.NET projects
- Guidance of designing a proper architecture of the application
- Buidling of custom controls
Integration Scenarios
Isn‘t DotVVM another ASP.NET Web Forms?
DotVVM was inspired by several technologies. Some concepts (like postbacks) come from ASP.NET Web Forms. Also, MVVM-related things comes from WPF and Knockout JS.
We know that ASP.NET Web Forms were criticized for many things, and we didn’t repeat the same mistakes.
- Thanks to MVVM, the viewmodels are easily testable.
- There is no cryptic viewstate field. The state transferred between the client and the server is a JSON representation of the viewmodel, which is your own class. You decide what it the part of the state and what is not. DotVVM also allows to customize what properties are transferred in which direction (server to client, client to server, both etc.) or to offload some data away from the viewmodel (e.g. using static command binding or REST API bindings).
- The HTML produced by the server controls is valid, CSS-styleable and documented. The controls do not render any inline styles. You are in control of how the things look like.
I have an old Web Forms web app. Can DotVVM help me with transition to .NET Core?
There are many old ASP.NET Web Forms applications used out in the world, and most of them cannot be rewritten in a reasonable amount of time.
Because DotVVM can used together with ASP.NET Web Forms, it can be used to modernize these old web apps. The only thing you need to do is to install a few Nuget packages and create a DotVVM master page which looks the same. DotVVM can use the same authentication mechanism and the same business layer, so you can start building new pages in DotVVM or slowly rewrite the old ones as you go. After some time, you might get rid of all Web Forms pages and migrate to .NET Core easily, because DotVVM supports that too.