![knockoutmvc](https://habrastorage.org/getpro/habr/post_images/ccd/390/807/ccd3908070d3fa20e0e5bfaef42df53d.png)
Для тех кто не в курсе,
Knockout.js — это популярная JavaScript библиотека, позволяющая реализовать
Model-View-View Model (MVVM) паттерн на клиенте. На Хабре уже много писали про него (
раз,
два,
три,
четыре,
пять,
видео). Освоить Knockout.js можно очень быстро — ведь есть
система интерактивного обучения, куча
живых примеров (можно потыкать и посмотреть исходный код) и прекрасная
документация.
Очень часто Knockout.js используют в связке с
ASP.NET MVC — ведь библиотека существенно упрощает написание клиентской логики. Однако, возникает много типичных проблем для клиент-серверной разработки: основную модель и часть логики её обработки приходится описывать как на клиенте (JavaScript), так и на сервере (C#/VB). Кроме того, есть рутинная часть, связанная с обращением клиента к серверным методам и передачи им модели для обработки. Но не стоит печалиться! Теперь у нас есть
Knockout MVC — это .NET оболочка для Knockout.js, которая генерирует весь нужный JavaScript-код за нас. Нам остаётся только описать нашу модель на C# и в MVVM-стиле указать для каждого нужного html-элемента к какому свойству модели нужно привязаться (а можно указать и целые выражения — они будут транслированы в js). Таким образом, можно получить полноценное кроссбраузерное клиентское веб-приложение без единой строчки JavaScript!