Знакомство с ASP.NET MVC Framework

advertisement
Тренинг
«Разработка веб-приложений с
использованием ASP.NET MVC Framework»
Занятие 1
Знакомство с подходом MVC
Гайдар Магдануров
GaidarMa@microsoft.com
Знакомство с подходом MVC
Разработка веб-приложений
• Простой протокол передачи данных HTTP
• Простые стандарты описания интерфейса
HTML/CSS
• Простой принцип работы «запрос-ответ»
• Абстракции для упрощения разработки:
– Простые – классические ASP, PHP
– Сложные – ASP.NET, JSP
– Гибкие – MVC
3
Паттерн Model-View-Controller
• Впервые описан в 1979 году
– Trygve M. H. Reenskaug/MVC—XEROX PARC 1978-79
• Предназначен для отделения данных и логики от
интерфейса
• Реализаций огромное множество:
ASP.NET MVC, Maverick.NET, Monorail, ProMesh.NET, PureMVC, MachII, 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
Паттерн Model-View-Controller
Model
View
Controller
• Model (модель) — модель данных
• View (представление) – интерфейс
• Controller (контроллер)— логика
5
Почему MVC для веб-приложений?
• Внешний вид страниц часто изменяется
• Иногда нужно несколько вариантов
представления одной и той же страницы
– Разные браузеры (IE, FireFox, Safari, Opera, ...)
– Разные платформы (PC, телефон, КПК, ...)
– Разные модели отображения (графические,
текстовые, ...)
• Тестирование приложения без зависимости
от интерфейса значительно проще
6
ASP.NET MVC Framework
ASP.NET MVC Framework
• Набор компонентов для создания
приложений, основанных на подходе MVC
• Статус MVC Framework - Release Candidate 2
– Поддержка Microsoft (включая jQuery)
– Исходный код открыт
• MVCContrib
– Проект сообщества по расширению
возможностей MVC Framework
8
Запросы в MVC Framework
Браузер
/Product/List/2
Сервер
/Product/Edit/3
List
(View)
ProductController
(Controller)
Product
(Model)
Edit
(View)
БД
Жизненный цикл запроса
Запрос
Таблица
маршрутов
Контроллер
Ответ
(разметка)
Представление
Действие
контроллера
10
Проект MVC Framework
2
Контроллер
3
Модель
4
Представление
1
Таблица маршрутизации
ЛАБОРАТОРНАЯ РАБОТА
СОЗДАНИЕ MVC ПРИЛОЖЕНИЯ
12
ASP.NET: MVC и WebForms?
• ASP.NET – платформа, лежащая в основе
MVC фреймворка
• MVC и WebForms – два подхода к созданию
веб-приложений на платформе ASP.NET
• Возможность выбора – это хорошо!
13
ASP.NET предоставляет инфраструктуру
•
•
•
•
•
•
•
•
•
Модель провайдеров
Механизмы кеширования
Шаблоны страниц
Состояние сеансов пользователей
Обработчики страниц
Управление клиентским кодом
Управление данными
Контекст запроса и ответа
И другое...
14
Web Forms
• Хранение состояния между обращениями
на сервер
• Компонентная модель серверных
элементов управления
• События элементов управления
• Широкая поддержка графической и
декларативной разработки
• Расширяемость «за рамками» сложна
15
MVC Framework
•
•
•
•
•
•
Разделение логики и представления
Прозрачность обработки запроса
Легковесные объекты
Простое тестирование
Отчуждаемые компоненты
Широкие возможности по расширению
16
Процесс разработки с MVC Framework
1.
2.
3.
4.
5.
Структуры данных - Модель
Структура приложения - Маршрутизация
Логика работы - Контроллеры
Интерфейс пользователя - Представление
Автоматическое тестирование - Счастье
Ресурсы
Технологии
• Официальный сайт ASP.NET MVC FW
– http://www.asp.net/mvc
• Исходный код ASP.NET MVC FW
– http://www.codeplex.com/aspnet
• Проект MVCContrib
– http://www.codeplex.com/mvccontrib
19
Инструменты
• Visual Studio или Web Developer Express
– http://VisualStudio2008.ru
– http://microsoft.com/express/ru/vwd/
• SQL Server или SQL Server Express
– http://microsoft.com/rus/SqlServer
– http://microsoft.com/express/ru/sql/
• Шаблоны дизайна для MVC сайтов
– http://www.asp.net/mvc/gallery
20
Удобный инсталлятор
• Microsoft Web Platform Installer
– www.microsoft.com/web/downloads/platform.aspx
21
Литература
Литература
• Erich Gamma, Richard Helm,
Ralph Johnson, John Vlissides Design Patterns
• Э. Гамма, Р. Хелм, Р. Джонсон,
Дж. Влиссидес - Приемы
объектно-ориентированного
проектирования. Паттерны
проектирования
23
Литература
• Judith Bishop - C# 3.0 Design
Patterns
• Мартин Фаулер - Рефакторинг.
Улучшение существующего
кода
24
Download