В книге ASP.NET MVC Framework. Магдануров рассмотрены основные принципы и возможности технологии ASP.NET MVC Framework и показаны способы ее практического использования при разработке веб-приложений. Подробно описаны преимущества подхода разработки MVC и рассмотрена структура MVC-приложения. Приведено сравнение технологии WebForms и MVC Framework и рассмотрены вопросы их совмещения.
Описаны модель и доступ к данным (технологии LINQ, Entity Frame-work и др.), контроллеры, представление и интерфейс приложения, механизмы маршрутизации и Ajax-функциональность. Уделено внимание вопросам тестирования веб-приложений. Рассмотрены особенности применения ASP.NET MVC 2 в Visual Studio 2010
Оглавление книги
ASP.NET MVC Framework. Магдануров
Глава 1. Знакомство с MVC Framework
9
Паттерн проектирования MVC 9
История паттерна проектирования MVC 11
Преимущества подхода разработки MVC 12
1. Полный контроль над кодом разметки 12
2. Расширяемость 12
3. Простота автоматического тестирования 13
Установка MVC Framework 13
Первое приложение на MVC Framework 14
Структура MVC-приложения 16
Папка Content 16
Папка Controllers 16
Папка Models 17
Папка Scripts 17
Папка Views 17
Файл Default.aspx 18
Файл Global.asax 19
Файл Web.config 19
Обработка запросов MVC-приложением 19
Компоненты MVC-приложения 20
Таблица маршрутизации 21
Контроллер 22
Представление 23
Подход к разработке MVC-приложений 24
Заключение 24
Глава 2. MVC Framework и WebForms
25
Сравнение WebForms и MVC Framework 26
Технология WebForms 26
Преимущества WebForms 26
Недостатки WebForms 27
Технология MVC Framework 28
Преимущества MVC Framework 29
Недостатки MVC Framework 30
Выбор подхода к разработке веб-приложения 30
Реализация подхода MVC в WebForms 32
Совмещение WebForms и MVC Framework в рамках одного веб-приложения 37
Использование элементов управления WebForms в MVC-приложениях 37
Внедрение страниц WebForms в MVC-приложения 40
Использование MVC Framework в существующих решениях WebForms 42
Заключение 46
Глава 3. Модель и доступ к данным
47
Технология LINQ 50
LINQ для SQL 51
Entity Framework 54
Принципы построения слоя доступа к данным 55
Возможность замены источника данных 56
Реализация слоя данных 57
Пример использования слоя данных 68
Механизмы для работы с данными 69
XML-данные 69
Работа с данными через ADO.NET 71
LINQ для SQL 73
Entity Framework 74
NHibernate 76
Сравнение механизмов доступа к данным 79
Рекомендации по выбору механизма доступа к данным 80
Глава 4. Контроллеры
81
Назначение контроллеров 81
Обзор контроллеров в ASP.NET MVC 81
Простой пример реализации контроллера 83
Архитектура контроллеров 91
Порядок вызова архитектурных механизмов 92
Фабрика контроллеров 93
Действия, фильтры и атрибуты 96
Переопределение свойства ActionInvoker 96
Атрибуты ActionMethodSelectorAttribute 98
Атрибуты, производные от FilterAttribute 100
Атрибуты ActionFilterAttribute и OutputCacheAttribute 112
Стандартные реализации класса ActionResult 115
Создание своей реализации ActionResult 120
Model Binding 123
Советы по использованию контроллеров 129
Атрибуты ActionNameSelectorAttribute и ActionNameAttribute 129
Наследование контроллеров 130
Асинхронное выполнение при работе с контроллерами 132
Паттерн IAsyncResult 134
Паттерн Event 135
Паттерн Delegate 137
Дополнительные сведения об асинхронных контроллерах 138
Неизвестные действия и метод HandleUnknownAction 139
Глава 5. Представление и интерфейс приложения
140
Стандартный механизм представлений на базе WebForms 140
Code-behind-файлы 141
Мастерские страницы и элементы управления 141
Файлы представлений в структуре проекта 144
Данные для отображения и ViewData 146
Строгая типизация данных представления 146
Поиск элементов в коллекции ViewData 148
Генерация разметки представлением 149
Вложенный управляющий код 150
<%= значение %> 153
<% управляющая конструкция %> 153
Вспомогательные методы 153
Кодирование текста и атрибутов 155
Гиперссылки на действия контроллеров 155
Элементы управления HTML-страницы 157
Создание собственного вспомогательного метода 167
Конкатенация строк 168
Использование ресурсов 170
Использование дополнительных слоев абстракции 170
Использование серверных элементов управления WebForms 174
Частичные представления 175
Создание гаджетов 177
Заключение 182
Глава 6. Механизмы маршрутизации
183
Маршрутизация в ASP.NET 184
Механизмы маршрутизации 186
Маршрут и класс Route 186
Коллекция маршрутов и класс RouteCollection 188
Таблица маршрутизации и класс RouteTable 190
Ограничения и интерфейс IRouteConstraint 191
Обработчик маршрутов и интерфейс IRouteHandler 192
Создание маршрутов 193
Наименование маршрута 193
RedirectToRoute 194
AjaxHelper 194
UrlHelper 195
Шаблон маршрута и свойство Url 195
Значения параметров маршрута по умолчанию и свойство Defaults 196
Ограничения параметров маршрута и свойство Constraints 197
Параметры маршрута и свойство DataTokens 198
Игнорирование маршрутов 200
Советы по использованию маршрутов 203
Маршруты и валидация запросов 203
Хранение маршрутов в базе данных 204
Маршрутизация и тестирование 208
Подготовка инструментов 208
Создание тестов 209
Утилита ASP.NET Routing Debugger 216
Заключение 217
Глава 7. Ajax-функциональность
219
История успеха Ajax 219
Современный Ajax 221
Пример использования Ajax 223
MVC Framework и Ajax 227
Ajax-функционал в MVC Framework 227
AjaxOptions 229
Ajax.BeginForm 231
Ajax.ActionLink 232
IsAjaxRequest 234
jQuery 234
Библиотека jQuery 237
jQuery API 238
Функции для работы с Ajax 238
События Ajax в jQuery 243
Применение Ajax и jQuery в MVC Framework 246
Пример 1. Проверка логина при регистрации 246
Реализация на ASP.NET Ajax 247
Реализация на jQuery 249
Пример 2. Логин через Ajax 250
Реализация на ASP.NET Ajax 251
Реализация на jQuery 253
Полезные советы 255
Вопросы безопасности 255
Обработка пользовательских данных 255
Управление данными и cookie 256
Расширения jQuery 259
Выбор между ASP.NET Ajax и jQuery 260
Заключение 261
Глава 8. Тестирование веб-приложений
262
Установка и настройка NUnit 262
Создание и выполнение тестов 264
Несколько слов о важности тестирования 267
Тесты и MVC Framework 268
Заключение 275
Глава 9. ASP.NET MVC 2 и Visual Studio 2010
276
Области 276
Области для нескольких проектов 277
Области в одном проекте 282
Шаблонные помощники 284
Шаблоны по умолчанию 286
Создание шаблонов 288
Аннотация данных и валидация 290
Классы метаданных 293
Новые атрибуты 295
Http***Attribute и перегрузка типов запросов 295
DefaultValueAttribute 296
RequireHttpsAttribute 296
Улучшения в связывании данных 296
Прочие улучшения в API 297
Нововведения Visual Studio 2010 298
Мультитаргетинг в Visual Studio 2010 299
Поддержка нескольких мониторов 299
Сниппеты JavaScript, Html, ASP.NET в Visual Studio 2010 300
Что дальше? 301
Заключение 302
ПРИЛОЖЕНИЯ 303
Приложение 1. Настройка среды для хостинга решений на MVC Framework 304
Настройка маршрутизации 304
Приложение 2. Оптимизация производительности 309
Кэширование данных 309
Сжатие данных 310
Уменьшение размера передаваемых файлов 311
Уменьшение JavaScript 312
Уменьшение CSS 312
Уменьшение изображений 313
Другие способы клиентской оптимизации 314
Уменьшение количества запросов 314
Отказ от перенаправлений 314
Использование CSS Sprites 315
Размер cookie 315
Заключение 315
Приложение 3. Ресурсы по MVC Framework 316
Предметный указатель
Книга одного из экспертов в области технологий .NET представляет собой учебное и справочное пособие для разработчиков .NET-приложений, использующих новую версию ASP.NET 3.5 и предложенную Microsoft технологию работы с данными под названием LINQ, которая является встроенной в язык C# 3.0. Предложенный автором практический подход к изложению материала позволяет оперативно изучить новейшие способы доступа к данным из разнообразных источников, в том числе SQL Server, и методы работы с XML на реальных примерах.
Книга ведущего специалиста в области технологий .NET представляет собой учебное и справочное пособие по WPF, являющейся частью .NET 3.0, для разработчиков высококлассных приложений, которые ориентированы на Windows Vista. В ней предлагается материал, касающийся как первоначальной инсталляции, так и проектирования и развертывания приложений для конечных пользователей.