ASP.NET MVC 4 в действии
Джеффри Палермо
Модели представлений
В этой главе рассматриваются:
- Представление концепций пользовательского интерфейса в коде
- Определение презентационной модели
- Представление пользовательского ввода
- Создание сложных сценариев
В первой части этой книги были рассмотрены общие понятия и концепции, теперь же мы начнем разбирать конкретные темы в деталях. В этой главе мы рассмотрим модели, а именно методы проектирования моделей для ASP.NET MVC. При изучении шаблона Model-View-Controller концепция модели является наиболее трудной, главным образом потому, что "модель" - перегруженный термин. Он может принимать разные значения в разных контекстах, что может сбить с толку и затруднить понимание того, как модели соотносятся с контроллерами и представлениями.
Модель – это репрезентация чего-то значимого. Это не обязательно что-то физическое, но нечто реальное, как, к примеру, бизнес-концепция или API. При работе с объектно-ориентированными языками (такими, как C #), вы создаете классы, которые описывают эти репрезентации. Создание таких репрезентаций позволяет вам использовать более «естественный» язык для записи кода, вместо того, чтобы преобразовывать вводимые данные в двоичный код.
В основе многих приложений лежит доменная модель (domain model), которая представляет ключевые понятия системы. К примеру, доменная модель интернет-магазина состоит из классов Продукт, Заказ и Клиент, содержит данные об этих классах и бизнес-правила, которые описывают отношения между ними.
Было бы удобно использовать такую модель как основу, чтобы, опираясь только на нее, выстроить пользовательский интерфейс, и задать бизнес-правила. Однако этот подход может быть применен только для некоторых приложений (как правило, небольших приложений с простыми доменными моделями), и заведет в тупик при разработке более сложных приложений, в которых потребности пользовательского интерфейса не соответствуют потребностям бизнес-логики. Такой конфликт интересов может привести к разработке чрезмерно сложного и неудобного в обслуживании программного обеспечения.
Решением этой проблемы являются модели представлений (view, or presentation model), которые необходимы для упрощения логики представления пользовательского интерфейса. В этой главе мы рассмотрим презентационные модели, а также модели ввода, которые используются для передачи данных от пользовательского интерфейса к контроллерам.
Что такое модель представления?
Представление пользовательского ввода