DotVVM — открытый фреймворк в архитектуре MVVM для разработки веб-приложений на платформе .NET, ориентированный на разработчиков, использующих C# и стандартные веб-технологии. Проект предоставляет средства для построения клиентского интерфейса с декларативной разметкой и двусторонней привязкой данных, при этом стремится минимизировать необходимость прямого написания JavaScript-кода. DotVVM совместим с ASP.NET и ASP.NET Core, интегрируется в существующую серверную инфраструктуру и поддерживает привычный цикл разработки на .NET.
Разработка фреймворка направлена на упрощение создания сложных форм и интерактивных интерфейсов за счёт модели представления, связывающей элементы страницы с серверными объектами состояния (view models). История проекта включает этапы становления и адаптации под современные версии .NET, а также постепенное расширение набора встроенных компонентов и механизмов расширяемости. В случае ограниченности открытой информации о внутренних деталях проекта, описание далее опирается на общепринятые характеристики MVVM-веб-фреймворков и публично доступные сведения о DotVVM.
- Архитектура MVVM: декларативная разметка страниц и отдельные классы view model для хранения состояния и логики, что упрощает тестирование и поддержку.
 - Двусторонняя привязка данных: синхронизация состояния между интерфейсом и серверным view model без обильного использования клиентского JavaScript.
 - Интеграция с .NET: совместимость с ASP.NET и ASP.NET Core, использование C# для серверной логики и потенциал повторного применения существующих библиотек.
 - Компоненты и шаблоны: набор готовых UI-компонентов и возможность создавать переиспользуемые компоненты с собственными шаблонами и параметрами.
 - Маршрутизация и навигация: поддержка маршрутов, постраничной навигации и передачи параметров между страницами приложения.
 - Работа с событиями: механизм обработки событий с передачей вызовов на серверную сторону и обновлением частей страницы без полной перезагрузки.
 - Расширяемость: возможность подключения пользовательских расширений, привязок и серверных сервисов для адаптации под специфические задачи.
 - Безопасность и валидация: встроенные средства валидации на стороне сервера и клиентские проверки, интеграция с механизмами аутентификации и авторизации .NET-приложений.
 - Производительность: оптимизации для уменьшения объёма передаваемых данных при обновлениях интерфейса и поддержка частичных обновлений представления.
 - Инструменты разработки: поддержка отладки и типичной инфраструктуры .NET, упрощённое развертывание в средах, совместимых с ASP.NET.