Asp.net mvc framework
Шрифт:
Annotation
Рассмотрены основные принципы и возможности технологии ASP.NET MVC Framework и показаны способы ее практического использования при разработке веб-приложений. Описаны преимущества подхода разработки MVC и рассмотрена структура MVC-приложения. Приведено сравнение технологии WebForms и MVC Framework и рассмотрены вопросы их совмещения. Описаны модель и доступ к данным (технологии LINQ, Entity Framework и др.), контроллеры, представление и интерфейс приложения, механизмы маршрутизации и Ajax-функциональность.
Гайдар Магдануров Владимир Юнев
ГЛАВА 1
Паттерн проектирования MVC
История паттерна проектирования MVC
Преимущества подхода разработки MVC
1. Полный контроль над кодом разметки
2. Расширяемость
3. Простота автоматического тестирования
Установка MVC Framework
Первое приложение на MVC Framework
Структура MVC-приложения
Папка Content
Папка Controllers
Папка Models
Папка Scripts
Папка Views
Файл Default.aspx
Файл Global.asax
Файл Web.config
Обработка запросов MVC-приложением
Компоненты MVC-приложения
Таблица маршрутизации
Контроллер
Представление
Подход к разработке MVC-приложений
Заключение
ГЛАВА 2
Сравнение WebForms и MVC Framework
Технология WebForms
Преимущества WebForms
Недостатки WebForms
Технология MVC Framework
Преимущества MVC Framework
Недостатки MVC Framework
Выбор подхода к разработке веб-приложения
Реализация подхода MVC в WebForms
Совмещение WebForms и MVC Framework в рамках одного веб-приложения
Использование элементов управления WebForms в MVC-приложениях
Внедрение страниц WebForms в MVC-приложения
Использование MVC Framework в существующих решениях WebForms
Заключение
ГЛАВА 3
Технология LINQ
LINQ для SQL
Entity Framework
Принципы построения слоя доступа к данным
Возможность замены источника данных
Реализация слоя данных
Пример использования слоя данных
Механизмы для работы с данными
XML-данные
Работа с данными через ADO.NET
LINQ для SQL
Entity Framework
NHibernate
Сравнение механизмов доступа к данным
Рекомендации по выбору механизма доступа к данным
ГЛАВА 4
Назначение контроллеров
Простой пример реализации контроллера
Архитектура контроллеров
Порядок вызова архитектурных механизмов
Фабрика контроллеров
Действия, фильтры и атрибуты
Переопределение свойства Actionlnvoker
Атрибуты ActionMethodSelectorAttribute
Атрибуты, производные от FilterAttribute
AuthorizeAttribute
HandleErrorAttibute
ValidateAntiForgeryTokenAttribute
ValidateInputAttribute
Атрибуты ActionFilterAttribute
и OutputCacheAttributeСтандартные реализации класса ActionResult
ViewResult
JsonResult
FileResult
RedirectResult и RedirectToRouteResult
ContentResult
EmptyResult
Создание своей реализации ActionResult
Model Binding
Советы по использованию контроллеров
Атрибуты ActionNameSelectorAttribute и ActionNameAttribute
Наследование контроллеров
Асинхронное выполнение при работе с контроллерами
Паттерн IAsyncResult
Паттерн Event
Паттерн Delegate
Дополнительные сведения об асинхронных контроллерах
Неизвестные действия и метод HandleUnknownAction
ГЛАВА 5
Стандартный механизм представлений на базе WebForms
Code-behind-файлы
Мастерские страницы и элементы управления
Файлы представлений в структуре проекта
Данные для отображения и ViewData
Строгая типизация данных представления
Поиск элементов в коллекции ViewData
Генерация разметки представлением
Вложенный управляющий код
<%= значение %>
<% управляющая конструкция %>
Вспомогательные методы
Кодирование текста и атрибутов
Гиперссылки на действия контроллеров
Html.ActionLink
Html. RouteLink
Элементы управления HTML-страницы
HTML-форма
Текстовые поля, скрытые поля и кнопки
Элементы-списки
Индикаторы корректности введенных данных
Создание собственного вспомогательного метода
Конкатенация строк
Использование ресурсов
Использование дополнительных слоев абстракции
Использование серверных элементов управления WebForms
Частичные представления
Создание гаджетов
Заключение
ГЛАВА 6
Маршрутизация в ASP.NET
Механизмы маршрутизации
Маршрут и класс Route
Коллекция маршрутов и класс RouteCollection
Таблица маршрутизации и класс RouteTable
Ограничения и интерфейс IRouteConstraint
Обработчик маршрутов и интерфейс IRouteHandler
Создание маршрутов
Наименование маршрута
RedirectToRoute
AjaxHelper
UrlHelper
Шаблон маршрута и свойство Url
Значения параметров маршрута по умолчанию и свойство Defaults
Ограничения параметров маршрута и свойство Constraints
Параметры маршрута и свойство DataTokens
Игнорирование маршрутов
Советы по использованию маршрутов
Маршруты и валидация запросов
Хранение маршрутов в базе данных
Маршрутизация и тестирование
Подготовка инструментов
Создание тестов
Утилита ASP.NET Routing Debugger
Заключение
ГЛАВА 7
История успеха Ajax