Тренинг «Разработка веб-приложений с использованием...
description
Transcript of Тренинг «Разработка веб-приложений с использованием...
Тренинг «Разработка веб-приложений с
использованием ASP.NET MVC Framework»
Занятие 1Знакомство с подходом MVC
Гайдар Магдануров [email protected]
2
Знакомство с подходом MVC
3
Разработка веб-приложений
• Простой протокол передачи данных HTTP• Простые стандарты описания интерфейса
HTML/CSS• Простой принцип работы «запрос-ответ»
• Абстракции для упрощения разработки:– Простые – классические ASP, PHP– Сложные – ASP.NET, JSP– Гибкие – MVC
Паттерн Model-View-Controller• Впервые описан в 1979 году
– Trygve M. H. Reenskaug/MVC—XEROX PARC 1978-79
• Предназначен для отделения данных и логики от интерфейса
• Реализаций огромное множество: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, телефон, КПК, ...)– Разные модели отображения (графические,
текстовые, ...)• Тестирование приложения без зависимости
от интерфейса значительно проще
7
ASP.NET MVC Framework
8
ASP.NET MVC Framework
• Набор компонентов для создания приложений, основанных на подходе MVC
• Статус MVC Framework - Release Candidate 2– Поддержка Microsoft (включая jQuery)– Исходный код открыт
• MVCContrib– Проект сообщества по расширению
возможностей MVC Framework
Запросы в MVC Framework
Браузер СерверСервер/Product/List/2
ProductController(Controller)
ProductController(Controller)
/Product/Edit/3
ViewDataViewData
10
Жизненный цикл запроса
Проект MVC Framework
1
2
3
4
Таблица маршрутизации
Контроллер
Модель
Представление
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. Автоматическое тестирование - Счастье
18
Ресурсы
19
Технологии
• Официальный сайт ASP.NET MVC FW– http://www.asp.net/mvc
• Исходный код ASP.NET MVC FW– http://www.codeplex.com/aspnet
• Проект MVCContrib– http://www.codeplex.com/mvccontrib
20
Инструменты
• 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
21
Удобный инсталлятор
• Microsoft Web Platform Installer– www.microsoft.com/web/downloads/platform.aspx
22
Литература
23
Литература
• Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - Design Patterns
• Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес - Приемы объектно-ориентированного проектирования. Паттерны проектирования
24
Литература
• Judith Bishop - C# 3.0 Design Patterns
• Мартин Фаулер - Рефакторинг. Улучшение существующего кода