Литмир - Электронная Библиотека

Annotation

Рассмотрены основные принципы и возможности технологии ASP.NET MVC Framework и показаны способы ее практического использования при разработке веб-приложений. Описаны преимущества подхода разработки MVC и рассмотрена структура MVC-приложения. Приведено сравнение технологии WebForms и MVC Framework и рассмотрены вопросы их совмещения. Описаны модель и доступ к данным (технологии LINQ, Entity Framework и др.), контроллеры, представление и интерфейс приложения, механизмы маршрутизации и Ajax-функциональность. Уделено внимание вопросам тестирования веб-приложений. Рассмотрены особенности применения ASP.NET MVC 2 в Visual Studio 2010. Для программистов

Гайдар Магдануров Владимир Юнев

ГЛАВА 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

Современный Ajax

Пример использования Ajax

MVC Framework и Ajax

Ajax-функционал в MVC Framework

AjaxOptions

Ajax.BeginForm

Ajax.ActionLink

IsAjaxRequest

jQuery

Библиотека jQuery

jQuery API

Функции для работы с Ajax

jQuery.ajax

load

jQuery.get и jQuery.post

jQuery. getJSON

jQuery.getScript

jQuery. ajaxSetup

События Ajax в jQuery

Применение Ajax и jQuery в MVC Framework

Пример 1. Проверка логина при регистрации

Реализация на ASP.NET Ajax

Реализация на jQuery

Пример 2. Логин через Ajax

Реализация на ASP.NET Ajax

Реализация на jQuery

Полезные советы

Вопросы безопасности

Обработка пользовательских данных

Управление данными и cookie

Расширения jQuery

Выбор между ASP.NET Ajax и jQuery

Заключение

ГЛАВА 8

Установка и настройка NUnit

Создание и выполнение тестов

Несколько слов о важности тестирования

Тесты и MVC Framework

Заключение

ГЛАВА 9

Области

Области для нескольких проектов

Области в одном проекте

Шаблонные помощники

Шаблоны по умолчанию

Создание шаблонов

Аннотация данных и валидация

Классы метаданных

Новые атрибуты

Http***Attribute и перегрузка типов запросов

DefauItValueAttribute

RequireHttpsAttribute

Улучшения в связывании данных

Прочие улучшения в API

Нововведения Visual Studio 2010

Мультитаргетинг в Visual Studio 2010

Поддержка нескольких мониторов

Сниппеты JavaScript, Html, ASP.NET в Visual Studio 2010

Что дальше?

Заключение

ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ 1

Настройка маршрутизации

ПРИЛОЖЕНИЕ 2

Кэширование данных

Сжатие данных

Уменьшение размера передаваемых файлов

Уменьшение JavaScript

Уменьшение CSS

Уменьшение изображений

Другие способы клиентской оптимизации

Уменьшение количества запросов

Отказ от перенаправлений

Использование CSS Sprites

Размер cookie

Заключение

ПРИЛОЖЕНИЕ 3

Asp.net mvc framework - img_1

1
{"b":"971383","o":1}