Лекция 8 WEB - сервера.ppt
- Количество слайдов: 26
MVC доц. Кобилін О. А. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 1
Что такое MVC? n Аббревиатура MVC расшифровывается как Model-View. Controller (Модель-Представление. Контроллер). Это архитектура построения приложения, в рамках которой оно разделяется на три компонента: ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 2
Что такое MVC? n n n Модель (Model) – предоставляет данные для Представлений в ответ на запросы Контроллера, содержит бизнес-логику приложения. Представление (View) – отвечает за пользовательский интерфейс, отображает данные, полученные от Модели. Контроллер (Controller) – обрабатывает команды пользователя, определяет Модели для работы и связывает ее с Представлением. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 3
Что такое MVC? ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 4
n Бизнес-логика, расположенная в Модели, включает все правила и алгоритмы, связанные с предметной областью решаемой задачи. Проще говоря – это ядро создаваемого приложения, которое может быть как банковским клиентом, так и онлайн игрой или блогом. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 5
Работа MVC приложения n n n команда (уведомление о нажатии кнопки, запроса адреса сайта и т. д. ) передается Контроллеру; Контроллер, исходя из полученных данных, определяет и вызывает Модель; Модель, на основе заложенной в нее бизнеслогики, формирует набор данных; Контролер выбирает Представление и связывает его с данными (Моделью); Представление отображает данные пользователю. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 6
Зависимости между компонентами шаблона n n n Контролер играет роль связующего звена между Моделью и Представлением. При этом он стремиться как можно меньше знать о подробностях их реализаций. Его задача определить Модель для обработки полученной команды и Представление, которое будет получить итоговые данные. Представление, зависит от Модели, т. к. полагается на получаемые от нее данные. А вот Модель не зависит ни от Представления ни от Контроллера. Это позволяет вести разработку Модели независимо, а так же создавать для нее несколько Представлений. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 7
Результат применения MVC n n Уменьшается зависимость между частями приложения, что увеличивает его гибкость; Появляется возможность разрабатывать тесты для компонентов приложения, т. е. использовать технику разработки через тестирования (Test-Driven Development или сокращенно TDD). ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 8
Ошибки, при использовании MVC Перегруженный Контроллер n n Некоторые разработчики ошибочно трактуют Модель только как средство доступа к базе данных. В результате бизнес-логика переходит в Контроллер, что в корне противоречит архитектуре MVC. Стоит помнить, что Модель это не только доступ к данным, но и логика приложения, проверка получаемых от пользователя данных и т. д. В свою очередь, Контроллер – связующее звено между ней, Представлением и пользователем. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 9
Перегруженная Модель n n n Другим заблуждением является попытка перенести всю логику в Модель. Подобную ошибку часто можно встретить при разработке веб-приложений. В этом случае Представление стараются превратить в простой шаблон, доступный для редактирования любому верстальщику. При этом логика элементов пользовательского интерфейса из Представлений перемещается в Модель или, иногда, в Контроллер. Данный подход ошибочен с точки зрения архитектуры MVC, т. к. нарушается четкое разделение компонентов: Модель становится зависима от Представления. При правильном подходе, Логика пользовательского интерфейса должна находиться в Представлениях. Но при этом важно корректно разделить ее и бизнес-логику. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 10
ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 11
Entity Framework Entity Data Model Модель данных Entity (Entity Data Model) это модель, описывающая отношение клиентских объектов и таблиц, расположенных в базе данных. Можно выделить следующие её составляющие: n Концептуальная модель (Conceptual model) – содержит описание классов клиентской Модели и взаимоотношения между ними. n Модель хранилища (Storage model) – аналогична Концептуальной модели, но описывает таблицы, расположенные в реляционной базе данных. n Отображение (Mapping) – содержит схему соответствия между указанными выше моделями. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 12
Model View Presenter (MVP) ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 13
MVP n n n Модель является источником (хранилищем) ваших данных. Вид Пользовательский контрол (форма), отображающая пользователю вашу модель. В случае необходимости каких-либо действий (логики), вид обращается в представителю (presenter). Представитель (Presenter) Содержит в себе всю логику работы вашего контрола, отвечает за синхронизацию вида и модели. Когда представление сообщает ему о событии, он обновляет модель и производит синхронизацию (если необходимо). Представитель не обращается напрямую к виду, а через интерфейс (IView). Таким образом уменьшается связность. Существует 2 вариации этого шаблона: 1) Пассивный вид (Passive View) 2) Наблюдающий контроллер (Supervising Controller) ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 14
Пассивный вид (Passive View) В этом случае вид ничего не знает о модели, а только имеет простые свойства, для отображения данных. Представитель считывает информацию из модели и обновляет свойства вида. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 15
Наблюдающий контроллер (Supervising Controller) Вид знает про модель и является ответственным за привязку данных (датабиндинг) модели к виду. Контроллер же содержит в себе всю логику работы. Это немного упрощает жизнь, но увеличивает связность. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 16
Presentation Model (PM) ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 17
Модель имеет след. функции: 1) Содержит логику UI: n Например, при нажатии на кнопку, модель представления уведомляется об этом и производит соответствующие действия. 2) Отображает данные модели: n Производит необходимую конвертацию и форматирование данных модели для правильного отображения пользователю. 3) Хранит состояние UI: n Хранения текущего выбранного элемента списка, ошибок валидации и прочее. n Представление (вид) (View) имеет доступ к данным, хранящимся в модели представления для дальнейших манипуляций (отображение). Преимуществом такого подхода также является то, что вы можете создавать тесты для вашего UI без привязки к элементам граф. интерфейса. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 18
Model-View. Model (MVVM) ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 19
ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 20
Model-View. Model (MVVM) n n Данный шаблон во многом является просто усовершенствованным для применения в WPF и Silverlight (благодаря новой системе привязки данных – databinding, по сравнению с предыдущими (Win. Forms и тд)). View. Model не общается напрямую с View. Вместо View. Model предоставляет свойства, которые могут легко быть привязаны. View, в свою очередь, использует эти свойства и команды (Commands) для отображения данных и извлечения их из View. Model. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 21
PHP n n n http: //www. yiiframework. com/ http: //framework. zend. com/ http: //symfony. com/ ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 22
IIS (Internet Information Services) n Основной компонент IIS - веб , который позволяет размещать в Интернете сайты. IIS поддерживает протоколы HTTP , HTTPS , FTP , POP 3 , SMTP , NNTP. IIS второй по популярности веб по количеству сайтов , после Apache HTTP Server. ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 23
IIS n n n n n IIS 1. 0, Windows NT 3. 51 , как бесплатное дополнение IIS 2. 0, Windows NT 4. 0 IIS 3. 0, Windows NT 4. 0 Service Pack 3 IIS 4. 0, Windows NT 4. 0 Option Pack IIS 5. 0, Windows 2000 IIS 5. 1, Windows XP Professional IIS 6. 0, Windows Server 2003 и Windows XP Professional x 64 Edition IIS 7. 0, Windows Vista и Windows Server 2008 IIS 8. 0, Windows 7 и Windows Server 2012 ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 24
ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 25
n http: //technet. microsoft. com/enus/library/cc 754281. aspx ХНУРЕ, Кафедра Інформатики informatika@kture. kharkov. ua 26
Лекция 8 WEB - сервера.ppt