36

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

  • Upload
    guy

  • View
    68

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

Гайдар МагдануровMicrosoftЕвгений АгафоновABBYY

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

Почему я здесь?Желаю:• быстрее разрабатывать веб-приложения• полнее тестировать логику приложения• проще вносить изменения• иметь полный контроль над разметкой

Сомневаюсь:• Web Forms, MVC, Свой Framework?• JavaScript, UpdatePanel, Silverlight?• BMW, Ferrari, Лада «Калина»?

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

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

др.)– Обновление моделей– Валидация данных– Строгая типизация представления– Возможности на стороне клиента

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

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

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

Model-View-Controller?

• Model — данные и валидация• View — отображение интерфейса• Controller — взаимодействие с

пользователем

Model

View Controller

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

И чем же он хорош, этот MVC?• Сродство к веб-приложениям– Запрос пришел, его обработали, вернули

результат– Веб многолик и представлений может

быть много• Простой подход к разработке– Система сложна настолько, насколько

этого хочет разработчик– Полный контроль над представлением

• Основные парадигмы:– Разделение проблем (SoC)– Простота тестирования логики (TDD)

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

Проект ASP.NET MVC?• ASP.NET MVC Framework 1.0 Beta– Доступен с исходным кодом– http://www.codeplex.com/aspnet

• ASP.NET MVC Contrib– Проект сообщества разработчиков–Множество готовых компонентов– http://www.codeplex.com/MVCContrib

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

В чем отличие от Web Forms?

Теряем:• Postback и жизненный цикл страницы• События, контролы и Viewstate• Сложные вопросы для интервью

Приобретаем:• Гибкую инфраструктуру• Полный контроль над разметкой• Автоматическое тестирование

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

Как MVC работает?

Браузер Серверhttp://srv/Product/Categories/2

HomeController(Controller)

Product(Model) SQL

EditProduct.aspx

(View)

http://svr/Product/EditProduct/3

Products.aspx

(View)ViewData

ViewData

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

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

Запрос Таблица маршрутов

Контроллер

Действие контроллера

Представление

Ответ (разметка)

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

Как MVC выглядит?

1

2

3

4

Таблица маршрутизации

Контроллер

Модель

Представление

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

Каков процесс разработки?

1. Создать модель – определить структуры данных

2. Описать физическую структуру приложения маршрутами

3. Создать контроллеры и их действия

4. Создать представления5. Разработать unit-тесты

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

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

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

Маршруты

http://srv/Home/Products/2

1

2

• Задаются в Global.asax• Поддерживают регулярные

выражения• Механизм может быть

переопределен

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

Маршруты

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

NN-NN-NNNN

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

Маршруты• Возможность создания

собственных условий для маршрутов– Аутентификация, переменные

окружения и любые другие условия

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

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

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

Тестирование маршрутов• С использованием своего

механизма маршрутизации• Проект RouteTester Фила Хаака

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

Контроллер• Обработка запросов и

взаимодействие с моделью• Параметры метода связываются

автоматически

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

Связывание параметров метода• По названию переменной и поля

формы• Конструирование сложных по

названиям полей формы и свойств объекта

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

Управление связыванием• Возможность включить и

исключить свойства при конструировании объектов

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

Обновление модели• Методы UpdateModel и

TryUpdateModel• Ограничения - whitelist интерфейс

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

Фильтры• ActionFilter - выполнение некоторой

предварительной операции• AcceptVerbsAttribute– Ограничения по типа зупроса

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

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

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

Фабрика контроллеров• Возможность определить свою

фабрику, создающую контроллеры• Определение удобной

инфраструктуры контроллерам

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

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

моделью

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

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

через вызов ViewData.Eval()

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

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

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

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

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

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

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

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

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

Демонстрация

Простой MVC чат

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

Вопросы?

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

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

1.Заполните анкету: http://platforma2009.ru/Eval.aspx Терминалы - холлы конференции и интернет-кафе на 1 этаже

2.Чтобы участвовать в розыгрыше призов

3.Результаты – на сайте конференции и в голосовых объявлениях после розыгрышей в 14:30, 16:00, 17:30 и 19:00

Не забывайте заполнять анкеты по докладамВаше мнение очень важно!

Подробная информация по заполнению анкет – на сайте конференции

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

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