300 likes | 680 Views
Тренинг «Разработка веб-приложений с использованием ASP.NET MVC Framework». Занятие 1 Знакомство с подходом MVC Гайдар Магдануров GaidarMa@microsoft.com. Знакомство с подходом MVC. Разработка веб-приложений. Простой протокол передачи данных HTTP
E N D
Тренинг«Разработка веб-приложений с использованием ASP.NET MVC Framework» Занятие 1 Знакомство с подходом MVC Гайдар Магдануров GaidarMa@microsoft.com
Разработка веб-приложений • Простой протокол передачи данных 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
Паттерн Model-View-Controller Model • Model(модель) — модель данных • View(представление) – интерфейс • Controller(контроллер)— логика View Controller
Почему MVC для веб-приложений? • Внешний вид страниц часто изменяется • Иногда нужно несколько вариантов представления одной и той же страницы • Разные браузеры (IE, FireFox, Safari, Opera, ...) • Разные платформы (PC, телефон, КПК, ...) • Разные модели отображения (графические, текстовые, ...) • Тестирование приложения без зависимости от интерфейса значительно проще
ASP.NET MVC Framework • Набор компонентов для создания приложений, основанных на подходе MVC • Статус MVC Framework - Release Candidate 2 • Поддержка Microsoft (включая jQuery) • Исходный код открыт • MVCContrib • Проект сообщества по расширению возможностей MVC Framework
Запросы в MVCFramework /Product/List/2 Сервер Браузер /Product/Edit/3 List (View) ProductController (Controller) ViewData Edit (View) ViewData БД Product (Model)
Проект MVC Framework 2 Контроллер 3 Модель 4 Представление 1 Таблица маршрутизации
ЛАБОРАТОРНАЯ РАБОТА СОЗДАНИЕ MVC ПРИЛОЖЕНИЯ
ASP.NET: MVC и WebForms? • ASP.NET – платформа, лежащая в основе MVC фреймворка • MVC и WebForms – два подхода к созданию веб-приложений на платформе ASP.NET • Возможность выбора – это хорошо!
ASP.NET предоставляет инфраструктуру • Модель провайдеров • Механизмы кеширования • Шаблоны страниц • Состояние сеансов пользователей • Обработчики страниц • Управление клиентским кодом • Управление данными • Контекст запроса и ответа • И другое...
Web Forms • Хранение состояния между обращениями на сервер • Компонентная модель серверных элементов управления • События элементов управления • Широкая поддержка графической и декларативной разработки • Расширяемость «за рамками» сложна
MVC Framework • Разделение логики и представления • Прозрачность обработки запроса • Легковесные объекты • Простое тестирование • Отчуждаемые компоненты • Широкие возможности по расширению
Процесс разработки с MVC Framework • Структуры данных - Модель • Структура приложения - Маршрутизация • Логика работы - Контроллеры • Интерфейс пользователя - Представление • Автоматическое тестирование - Счастье
Технологии • Официальный сайт ASP.NET MVC FW • http://www.asp.net/mvc • Исходный код ASP.NET MVC FW • http://www.codeplex.com/aspnet • Проект MVCContrib • http://www.codeplex.com/mvccontrib
Инструменты • 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
Удобный инсталлятор • Microsoft Web Platform Installer • www.microsoft.com/web/downloads/platform.aspx
Литература • Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - Design Patterns • Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес - Приемы объектно-ориентированного проектирования. Паттерны проектирования
Литература • Judith Bishop - C# 3.0 Design Patterns • Мартин Фаулер - Рефакторинг. Улучшение существующего кода