Тренинг «Разработка веб-приложений с использованием ASP.NET MVC Framework» Занятие 1 Знакомство с подходом MVC Гайдар Магдануров
Знакомство с подходом MVC
3 Разработка веб-приложений Простой протокол передачи данных HTTP Простые стандарты описания интерфейса HTML/CSS Простой принцип работы «запрос-ответ» Абстракции для упрощения разработки: – Простые – классические ASP, PHP – Сложные – ASP.NET, JSP – Гибкие – MVC
Паттерн Model-View-Controller Впервые описан в 1979 году – Trygve M. H. Reenskaug/MVCXEROX PARC Предназначен для отделения данных и логики от интерфейса Реализаций огромное множество: ASP.NET MVC, Maverick.NET, Monorail, ProMesh.NET, PureMVC, Mach- II, Model-Glue, FuseBox, Aranea, Cocoon, Grails, GWT, Spring, Struts, Stripes, Tapestry, WebObjects, Wicket, JSF, SproutCore, Wawemaker, Dojo, Catalyst, CGI:Application, Solstice, Gantry, CakePHP, Joomla, Odin Assemble, Prado, Solar, Zand Framework, Symfony, Django, Pylons, Enthought, Zope, web2py, Camping, Merb, Nitro, Ramaze, Ruby on Rails, XForms
5 Паттерн Model-View-Controller Model (модель) модель данных View (представление) – интерфейс Controller (контроллер) логика Model View Controller
6 Почему MVC для веб-приложений? Внешний вид страниц часто изменяется Иногда нужно несколько вариантов представления одной и той же страницы – Разные браузеры (IE, FireFox, Safari, Opera,...) – Разные платформы (PC, телефон, КПК,...) – Разные модели отображения (графические, текстовые,...) Тестирование приложения без зависимости от интерфейса значительно проще
ASP.NET MVC Framework
8 Набор компонентов для создания приложений, основанных на подходе MVC Статус MVC Framework - Release Candidate 2 – Поддержка Microsoft (включая jQuery) – Исходный код открыт MVCContrib – Проект сообщества по расширению возможностей MVC Framework
Запросы в MVC Framework Браузер Сервер /Product/List/2 ProductController (Controller) ProductController (Controller) Product (Model) Product (Model) БД Edit (View) Edit (View) /Product/Edit/3 List (View) List (View) ViewData
10 Жизненный цикл запроса Запрос Таблица маршрутов Контроллер Действие контроллера Представление Ответ (разметка)
Проект MVC Framework Таблица маршрутизации Контроллер Модель Представление
12 СОЗДАНИЕ MVC ПРИЛОЖЕНИЯ ЛАБОРАТОРНАЯ РАБОТА
13 ASP.NET: MVC и WebForms? ASP.NET – платформа, лежащая в основе MVC фреймворка MVC и WebForms – два подхода к созданию веб-приложений на платформе ASP.NET Возможность выбора – это хорошо!
14 ASP.NET предоставляет инфраструктуру Модель провайдеров Механизмы кеширования Шаблоны страниц Состояние сеансов пользователей Обработчики страниц Управление клиентским кодом Управление данными Контекст запроса и ответа И другое...
15 Web Forms Хранение состояния между обращениями на сервер Компонентная модель серверных элементов управления События элементов управления Широкая поддержка графической и декларативной разработки Расширяемость «за рамками» сложна
16 MVC Framework Разделение логики и представления Прозрачность обработки запроса Легковесные объекты Простое тестирование Отчуждаемые компоненты Широкие возможности по расширению
Процесс разработки с MVC Framework 1.Структуры данных - Модель 2.Структура приложения - Маршрутизация 3.Логика работы - Контроллеры 4.Интерфейс пользователя - Представление 5.Автоматическое тестирование - Счастье
Ресурсы
19 Технологии Официальный сайт ASP.NET MVC FW – Исходный код ASP.NET MVC FW – Проект MVCContrib –
20 Инструменты Visual Studio или Web Developer Express – – SQL Server или SQL Server Express – – Шаблоны дизайна для MVC сайтов –
21 Удобный инсталлятор Microsoft Web Platform Installer –
Литература
23 Литература Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - Design Patterns Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес - Приемы объектно-ориентированного проектирования. Паттерны проектирования
24 Литература Judith Bishop - C# 3.0 Design Patterns Мартин Фаулер - Рефакторинг. Улучшение существующего кода