1 / 36

Разработка веб-приложений с использованием ASP.NET MVC Framework

Разработка веб-приложений с использованием ASP.NET MVC Framework. Гайдар Магдануров Microsoft Евгений Агафонов ABBYY. Почему я здесь?. Желаю: быстрее разрабатывать веб-приложения полнее тестировать логику приложения проще вносить изменения иметь полный контроль над разметкой

guy
Download Presentation

Разработка веб-приложений с использованием ASP.NET MVC Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Разработка веб-приложений с использованием ASP.NET MVC Framework Гайдар Магдануров Microsoft Евгений Агафонов ABBYY

  2. Почему я здесь? Желаю: • быстрее разрабатывать веб-приложения • полнее тестировать логику приложения • проще вносить изменения • иметь полный контроль над разметкой Сомневаюсь: • Web Forms, MVC, Свой Framework? • JavaScript, UpdatePanel, Silverlight? • BMW, Ferrari, Лада «Калина»?

  3. О чем поговорим? • Обзор шаблона проектирования MVC • Обзор проекта MVC Framework • Возможности MVC Framework • Маршруты • Фабрика контроллеров • Внедрение зависимостей • Фильтры действий (кеш, безопасность и др.) • Обновление моделей • Валидация данных • Строгая типизация представления • Возможности на стороне клиента

  4. Model-View-Controller? • Впервые описан в 1979 году • Предназначен для отделения бизнес логики от интерфейса представления • Реализаций огромное множество: 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 • Model — данные и валидация • View — отображение интерфейса • Controller — взаимодействие с пользователем View Controller

  6. И чем же он хорош, этот MVC? • Сродство к веб-приложениям • Запрос пришел, его обработали, вернули результат • Веб многолик и представлений может быть много • Простой подход к разработке • Система сложна настолько, насколько этого хочет разработчик • Полный контроль над представлением • Основные парадигмы: • Разделение проблем (SoC) • Простота тестирования логики (TDD)

  7. Проект ASP.NET MVC? • ASP.NET MVC Framework 1.0 Beta • Доступен с исходным кодом • http://www.codeplex.com/aspnet • ASP.NET MVC Contrib • Проект сообщества разработчиков • Множество готовых компонентов • http://www.codeplex.com/MVCContrib

  8. В чем отличие от Web Forms? Теряем: • Postbackи жизненный цикл страницы • События, контролы и Viewstate • Сложные вопросы для интервью Приобретаем: • Гибкую инфраструктуру • Полный контроль над разметкой • Автоматическое тестирование

  9. Как MVC работает? http://srv/Product/Categories/2 Сервер Браузер http://svr/Product/EditProduct/3 Products.aspx (View) ViewData HomeController (Controller) EditProduct .aspx (View) ViewData SQL Product (Model)

  10. Жизненный цикл запроса

  11. Как MVC выглядит? 2 Контроллер 3 Модель 4 Представление 1 Таблица маршрутизации

  12. Каков процесс разработки? • Создать модель – определить структуры данных • Описать физическую структуру приложения маршрутами • Создать контроллеры и их действия • Создать представления • Разработать unit-тесты

  13. Пойдем по порядку…

  14. Маршруты • Задаются в Global.asax • Поддерживают регулярные выражения • Механизм может быть переопределен 1 http://srv/Home/Products/2 2

  15. Маршруты • Маршрут будет использован, только если date удовлетворяет формату NN-NN-NNNN

  16. Маршруты • Возможность создания собственных условий для маршрутов • Аутентификация, переменные окружения и любые другие условия

  17. Тестирование маршрутов • Стандартный unit-тест

  18. Тестирование маршрутов • С использованием своего механизма маршрутизации • Проект RouteTesterФила Хаака

  19. Контроллер • Обработка запросов и взаимодействие с моделью • Параметры метода связываются автоматически

  20. Связывание параметров метода • По названию переменной и поля формы • Конструирование сложных по названиям полей формы и свойств объекта

  21. Управление связыванием • Возможность включить и исключить свойства при конструировании объектов

  22. Обновление модели • Методы UpdateModelи TryUpdateModel • Ограничения - whitelistинтерфейс

  23. Фильтры • ActionFilter- выполнение некоторой предварительной операции • AcceptVerbsAttribute • Ограничения по типа зупроса

  24. Пример ActionFilter • Сжатие

  25. Фабрика контроллеров • Возможность определить свою фабрику, создающую контроллеры • Определение удобной инфраструктуры контроллерам

  26. Представление • Автономность • Возможность замены движка • Раннее или позднее связывание с моделью

  27. Типизация • Строгая – через ViewData.Model • Не строгая – коллекция ViewData[] • Поиск в коллекции, затем в Model через вызов ViewData.Eval()

  28. Валидация • Механизм ModelState

  29. Замена движка представления • Минимум кода

  30. AJAX • Форма в стиле UpdatePanel • Возможно, но не без ручного кода

  31. JSON, XML? • JsonResultдля возвращения JSON

  32. Демонстрация Простой MVC чат

  33. Вопросы? Ищите нас во всех магазинах города На стенде «Спроси экперта» и на круглом столе «Веб-технологииMicrosoft для разработчиков»

  34. Не забывайте заполнять анкетыпо докладамВаше мнение очень важно! • Заполните анкету: http://platforma2009.ru/Eval.aspxТерминалы - холлы конференции и интернет-кафе на 1 этаже • Чтобы участвовать в розыгрыше призов • Результаты – на сайте конференции и в голосовых объявлениях после розыгрышей в 14:30, 16:00, 17:30 и 19:00 Подробная информация по заполнению анкет – на сайте конференции

  35. Запись доклада на www.platforma2009.ru

More Related