ASP.NET MVC 3 Framework с примерами на C# для профессионалов
Адам Фримен, Стивен Сандерсон
ASP.NET MVC 3 Framework представляет собой последнюю версию веб-платформы ASP.NET от Microsoft. Она предлагает высокопроизводительную модель программирования, которая способствует построению более чистой кодовой архитектуры, обеспечивает разработку, управляемую тестами, и позволяет повсеместную расширяемость в комбинации со всеми преимуществами версии ASP.NET 4.
В третьем издании ключевые концепции архитектуры «модель-представление-контроллер» (MVC) не просто объясняются или обсуждаются в изоляции, но демонстрируются в действии. В вашем распоряжении - расширенное учебное руководство, позволяющее создать работающее веб-приложение электронной коммерции, в котором сочетаются возможности ASP.NET MVC и новейшие средства языка C# вместе с наилучшими методиками модульного тестирования. Получив этот практически бесценный опыт, вы сможете по достоинству оценить как сильные, так и слабые стороны MVC, и успешно воплотить обретенные знания в реальных проектах.
Авторы книги, Стив Сандерсон и Адам Фримен, работают с ASP.NET MVC, начиная с самой первой версии. Стив - известный блоггер по MVC Framework и член команды Microsoft Web Platform and Tools. Адам занялся разработкой веб-приложений 15 лет тому назад и отвечал за ряд крупнейших и наиболее амбициозных проектов во всем мире. Не беспокойтесь - вы в надежных руках.
Благодаря этой книге, вы освоите следующие темы
- Обретете глубокое понимание архитектуры ASP.NET MVC 3, включая базовые основы MVC
- Освоите платформу ASP.NET MVC Framework
- Увидите, как взаимодействуют вместе архитектура MVC и разработка, управляемая тестами
- Быстро и просто приумножите существующие знания, сравнивая средства классической платформы ASP.NET и ASP.NET MVC
- Изучите актуальные вопросы безопасности и развертывания, включая особенности использования IIS 7
Эта книга предназначена для разработчиков веб-приложений, имеющих базовые знания ASP.NET и C#, которые желают (или нуждаются) в переходе к использованию новой платформы ASP.NET MVC 3 Framework.
Об авторах: Адам Фримен - опытный специалист в области информационных технологий, занимавший ведущие позиции во многих компаниях, последней из которых был глобальный банк, где он работал на должностях директора по внедрению технологий и руководителя административной службы. После ухода из банка Адам уделяет время писательской деятельности и подготовке к своим первым соревнованиям по триатлону. Это его одиннадцатая книга по программированию и девятая по теме .NET.
Стивен Сандерсон работает в компании Microsoft на должности менеджера программ в команде веб-платформы и инструментов (Web Platform and Tools), стремясь обеспечить максимальную отдачу веб-технологий Microsoft для разработчиков. Он имеет богатый опыт веб-разработчика как в международных корпорациях, так и во вновь родившихся фирмах, и является постоянным автором и докладчиком по теме построения веб-приложений. В свободное от работы время Стивен разрабатывает и сопровождает проекты с открытым исходным кодом на http://github.com/SteveSanderson
Издательство: Вильямс, 3-е издание, 2011 г.
ISBN 978-5-8459-1758-4, 978-1-43-023404-3
Количество страниц: 672.
Содержание книги «ASP.NET MVC 3 Framework с примерами на C# для профессионалов»:
- 17 Об авторах
- 17 О техническом рецензенте
- 18 Благодарности
- 18 От издательства
- 19 Часть I. Введение в ASP.NET MVC 3
- 20 Глава 1. Основная идея
- 20 Краткая история веб-разработки
- 21 Традиционная платформа ASP.NET Web Forms
- 22 Недостатки платформы ASP.NET Web Forms
- 23 Веб-разработка сегодня
- 23 Веб-стандарты и REST
- 24 Гибкая разработка и разработка через тестирование
- 25 Ruby on Rails
- 25 Sinatra
- 26 Node.js
- 26 Ключевые преимущества ASP.NET MVC
- 27 Архитектура MVC
- 27 Расширяемость
- 28 Жесткий контроль над HTML и HTTP
- 28 Тестируемость
- 29 Мощная система маршрутизации
- 29 Построение на основе лучшего из платформы ASP.NET
- 30 Современный API-интерфейс
- 30 ASP.NET MVC — платформа с открытым кодом
- 31 Кому следует использовать ASP.NET MVC
- 31 Сравнение с платформой ASP.NET Web Forms
- 32 Переход от Web Forms к MVC
- 32 Сравнение с Ruby on Rails
- 32 Сравнение с MonoRail
- 33 Что нового в ASP.NET MVC 3
- 33 Резюме
- 20 Краткая история веб-разработки
- 34 Глава 2. Подготовка
- 34 Подготовка рабочей станции
- 34 Установка Visual Studio 2010
- 35 Установка важного программного обеспечения
- 37 Установка необязательных компонентов
- 38 Подготовка сервера
- 39 Активизация роли веб-сервера
- 39 Установка дополнительных компонентов
- 40 Настройка веб-развертывания
- 42 Получение дополнительной информации
- 7 Резюме 43 Содержание
- 34 Подготовка рабочей станции
- 44 Глава 3. Ваше первое приложение MVC
- 44 Создание нового проекта ASP.NET MVC
- 46 Добавление первого контроллера
- 48 Понятие маршрутов
- 48 Визуализация веб-страниц
- 49 Создание и визуализация представления
- 51 Добавление динамического вывода
- 53 Создание простого приложения ввода данных
- 53 Предварительная настройка
- 54 Разработка модели данных
- 55 Привязка методов действий
- 57 Построение формы
- 59 Обработка форм
- 63 Добавление проверки достоверности
- 66 Завершение примера
- 68 Резюме
- 44 Создание нового проекта ASP.NET MVC
- 69 Глава 4. Архитектурный шаблон MVC
- 69 История создания MVC
- 70 Особенности архитектурного шаблона MVC
- 70 Модель предметной области
- 71 ASP.NET-реализация MVC
- 72 Сравнение MVC с другими шаблонами
- 72 Шаблон интеллектуального пользовательского интерфейса
- 76 Применение предметно-ориентированного проектирования
- 77 Построение моделей для примера предметной области
- 77 Общий язык
- 78 Агрегаты и упрощение
- 80 Определение хранилищ
- 81 Создание слабо связанных компонентов
- 82 Использование внедрения зависимости
- 83 Пример внедрения специфичной для MVC зависимости
- 84 Использование контейнера внедрения зависимости
- 85 Первые шаги по автоматизированному тестированию
- 86 Пояснение модульного тестирования
- 93 Комплексное тестирование
- 94 Резюме
- 95 Глава 5. Важные функциональные возможности языка
- 95 Основные средства C#
- 95 Использование автоматически реализованных свойств
- 98 Использование инициализаторов объектов и коллекций
- 99 Использование методов расширения
- 104 Использование лямбда-выражений
- 106 Использование автоматического выведения типа
- 106 Использование анонимных типов
- 107 Выполнение запросов LINQ
- 113 Синтаксис Razor
- 114 Создание проекта
- 116 Исследование элементарного представления Razor
- 124 Резюме
- 95 Основные средства C#
- 125 Глава 6. Инструменты, важные для MVC
- 126 Использование Ninject
- 127 Создание проекта
- 128 Начало работы с Ninject
- 130 Создание цепочек зависимостей
- 131 Указание значений свойств и параметров
- 132 Использование самопривязки
- 133 Привязка к производному типу
- 134 Использование условной привязки
- 135 Применение Ninject к ASP.NET MVC
- 137 Выполнение модульного тестирования с помощью Visual Studio
- 137 Создание проекта
- 139 Создание модульных тестов
- 143 Выполнение модульных тестов (и их неудачное завершение)
- 144 Реализация функциональной возможности
- 144 Использование Moq
- 145 Добавление Moq в проект Visual Studio
- 145 Создание имитированной реализации с помощью Moq
- 148 Выполнение модульного тестирования с помощью Moq
- 149 Проверка с помощью Moq
- 150 Резюме
- 126 Использование Ninject
- 151 Глава 7. SportsStore: реальное приложение
- 152 Начало работы
- 152 Создание решения и проектов Visual Studio
- 154 Добавление ссылок
- 154 Настройка контейнера DI
- 156 Запуск приложения
- 157 Начало построения модели предметной области
- 157 Создание абстрактного хранилища
- 158 Создание имитированного хранилища
- 158 Отображение списка товаров
- 159 Добавление контроллера
- 160 Добавление представления
- 161 Установка маршрута по умолчанию
- 162 Выполнение приложения
- 162 Подготовка базы данных
- 163 Создание базы данных
- 163 Определение схемы базы данных
- 164 Добавление данных в базу
- 165 Создание контекста Entity Framework
- 167 Создание хранилища данных объектов Product
- 168 Добавление разбиения на страницы
- 169 Отображение ссылок на страницы
- 176 Улучшение URL
- 177 Стилизация содержимого
- 177 Определение общего контента в компоновке
- 178 Добавление правил CSS
- 179 Создание частичного представления
- 181 Резюме
- 152 Начало работы
- 182 Глава 8. SportsStore: навигация и корзина для покупок
- 182 Добавление элементов управления навигацией
- 182 Фильтрация списка товаров
- 185 Улучшение схемы URL
- 186 Построение меню навигации по категориям
- 193 Корректировка счетчика страниц
- 195 Построение корзины для покупок
- 196 Определение сущности корзины
- 199 Создание кнопок добавления в корзину
- 200 Реализация контроллера для корзины
- 202 Отображение содержимого корзины
- 205 Использование привязки модели
- 205 Создание специального связывателя модели
- 209 Завершение корзины
- 209 Удаление элементов из корзины
- 210 Добавление итоговой информации по корзине
- 212 Отправка заказов
- 212 Расширение модели предметной области
- 213 Добавление процесса оплаты
- 216 Реализация обработчика заказов
- 218 Регистрация реализации
- 219 Завершение контроллера Cart
- 222 Отображение сообщений об ошибках проверки достоверности
- 222 Отображение итоговой страницы
- 224 Резюме
- 182 Добавление элементов управления навигацией
- 225 Глава 9. SportsStore: администрирование
- 225 Добавление средств управления каталогом
- 226 Создание контроллера CRUD
- 227 Визуализация сетки с товарами из хранилища
- 228 Создание новой компоновки
- 230 Реализация представления списка
- 233 Редактирование товаров
- 244 Создание новых товаров
- 246 Удаление товаров
- 248 Защита административных функций
- 248 Настройка аутентификации с помощью форм
- 249 Применение авторизации с помощью фильтров
- 251 Создание поставщика аутентификации
- 252 Создание контроллера Account
- 253 Создание представления
- 256 Загрузка изображений
- 256 Расширение базы данных
- 257 Расширение модели предметной области
- 258 Обновление концептуальной модели Entity Framework
- 258 Создание элементов пользовательского интерфейса для загрузки
- 259 Сохранение изображений в базе данных
- 260 Реализация метода действия GetImage
- 262 Показ изображений товаров
- 263 Резюме
- 225 Добавление средств управления каталогом
- 265 Часть II. Детальные сведения об ASP.NET MVC 3
- 266 Глава 10. Обзор проектов MVC
- 266 Работа с проектами MVC в Visual Studio
- 270 Использование контроллеров Интернет- и интранет-приложений
- 270 Соглашения в MVC
- 272 Отладка приложений MVC
- 272 Создание проекта
- 273 Запуск отладчика Visual Studio
- 274 Останов отладчика Visual Studio
- 277 Использование средства Edit and Continue
- 280 Внедрение зависимости на уровне проекта
- 282 Резюме
- 266 Работа с проектами MVC в Visual Studio
- 283 Глава 11. URL, маршрутизация и области
- 283 Введение в систему маршрутизации
- 284 Создание проекта маршрутизации
- 285 Введение в шаблоны URL
- 287 Создание и регистрация простого маршрута
- 290 Определение значений по умолчанию
- 292 Использование статических сегментов URL
- 295 Определение специальных переменных сегментов
- 297 Определение необязательных сегментов URL
- 298 Определение маршрутов переменной длины
- 300 Определение приоритетов контроллеров по пространствам имен
- 302 Ограничения маршрутов
- 306 Маршрутизация запросов к дисковым файлам
- 308 Обход системы маршрутизации
- 309 Генерация исходящих URL
- 310 Подготовка проекта
- 310 Генерация исходящих URL в представлениях
- 316 Генерация исходящих URL в методах действий
- 317 Генерация URL из специфического маршрута
- 318 Настройка системы маршрутизации
- 318 Создание специальной реализации RouteBase
- 322 Создание специального обработчика маршрутов
- 323 Работа с областями
- 323 Создание области
- 325 Заполнение области
- 326 Решение проблемы неоднозначности контроллеров
- 328 Генерация ссылок на действия в областях
- 328 Полезные советы относительно схем URL
- 328 Делайте URL чистыми и понятными человеку
- 330 GET и POST: выбор правильного запроса
- 330 Резюме
- 283 Введение в систему маршрутизации
- 331 Глава 12. Контроллеры и действия
- 331 Введение контроллера
- 331 Подготовка проекта
- 331 Создание контроллера с помощью IController
- 332 Создание контроллера за счет наследования от класса Controller
- 334 Получение исходных данных
- 334 Получение данных из объектов контекста
- 336 Использование параметров метода действия
- 338 Генерация вывода
- 339 Результаты действий
- 343 Возвращение HTML-разметки за счет визуализации представления
- 346 Передача данных из метода действия в представление
- 350 Выполнение перенаправлений
- 354 Возвращение текстовых данных
- 355 Возвращение данных XML
- 356 Возвращение данных JSON
- 357 Возвращение файлов и двоичных данных
- 360 Возвращение ошибок и кодов HTTP
- 361 Создание специального результата действия
- 363 Резюме
- 331 Введение контроллера
- 364 Глава 13. Фильтры
- 364 Использование фильтров
- 366 Введение в четыре базовых типа фильтров
- 366 Применение фильтров к контроллерам и методам действий
- 367 Использование фильтров авторизации
- 372 Использование фильтров исключений
- 376 Использование фильтров действия и результата
- 381 Использование возможностей фильтров
- 386 Использование встроенных фильтров
- 389 Резюме
- 364 Использование фильтров
- 390 Глава 14. Расширяемость контроллеров
- 390 Компоненты конвейера обработки запросов
- 391 Создание фабрики контроллеров
- 391 Определение специальной фабрики контроллеров
- 393 Регистрация специальной фабрики контроллеров
- 393 Работа со встроенной фабрикой контроллеров
- 394 Назначение приоритетов пространствам имен
- 395 Настройка создания контроллера DefaultControllerFactory
- 396 Создание специального активатора действий
- 398 Использование встроенного активатора действий
- 399 Использование специального имени действия
- 400 Использование селектора метода действия
- 403 Использование селекторов методов действий для поддержки служб REST
- 405 Улучшение производительности с помощью специализированных контроллеров
- 406 Использование контроллеров, не поддерживающих состояние сеанса
- 408 Использование асинхронных контроллеров
- 416 Резюме
- 417 Глава 15. Представления
- 417 Создание специального механизма визуализации
- 419 Создание специальной реализации IView
- 420 Создание реализации IViewEngine
- 421 Регистрация специального механизма визуализации
- 423 Работа с механизмом Razor
- 423 Визуализация представлений Razor
- 425 Внедрение зависимостей в представления Razor
- 427 Конфигурирование расположений для поиска представлений
- 428 Добавление динамического контента к представлению Razor
- 429 Использование встраиваемого кода
- 434 Использование вспомогательных методов HTML
- 434 Создание встраиваемого вспомогательного метода HTML
- 436 Создание внешнего вспомогательного метода HTML
- 437 Использование внутренних вспомогательных методов HTML
- 450 Использование разделов
- 452 Проверка существования разделов
- 453 Визуализация необязательных разделов
- 453 Использование частичных представлений
- 454 Создание частичного представления
- 455 Использование строго типизированных частичных представлений
- 457 Использование дочерних действий
- 457 Создание дочернего действия
- 457 Визуализация дочернего действия
- 458 Резюме
- 417 Создание специального механизма визуализации
- 459 Глава 16. Шаблоны модели
- 459 Использование шаблонизированных вспомогательных методов представлений
- 463 Стилизация генерируемой HTML-разметки
- 465 Использование метаданных модели
- 472 Работа с параметрами сложных типов
- 474 Настройка системы шаблонизированных вспомогательных методов
- 474 Создание специального шаблона редактора
- 477 Создание специального шаблона отображения
- 478 Создание обобщенного шаблона
- 479 Замена встроенных шаблонов
- 480 Использование свойства ViewData.TemplateInfo
- 481 Передача в шаблон дополнительных метаданных
- 482 Система поставщиков метаданных
- 483 Создание специального поставщика метаданных модели
- 485 Настройка поставщика метаданных модели в виде аннотаций данных
- 486 Резюме
- 459 Использование шаблонизированных вспомогательных методов представлений
- 487 Глава 17. Привязка модели
- 487 Основы привязки модели
- 488 Использование связывателя модели по умолчанию
- 489 Привязка к простым типам
- 490 Привязка к сложным типам
- 493 Привязка к массивам и коллекциям
- 496 Вызов привязки модели вручную
- 497 Ограничение привязки специфическим источником данных
- 498 Обработка ошибок привязки
- 499 Использование привязки модели для получения загруженных файлов
- 499 Настройка системы привязки моделей
- 500 Создание специального поставщика значений
- 502 Создание связывателя модели, осведомленного о зависимостях
- 502 Создание специального связывателя модели
- 505 Создание поставщиков связывателей модели
- 505 Использование атрибута ModelBinder
- 506 Резюме
- 507 Глава 18. Проверка достоверности модели
- 507 Создание проекта
- 509 Явная проверка достоверности модели
- 511 Отображение сообщений проверки достоверности
- 515 Отображение сообщений об ошибках уровня свойств
- 516 Использование альтернативных технологий проверки достоверности
- 516 Выполнение проверки достоверности в связывателе модели
- 520 Определение правил проверки достоверности с использованием метаданных
- 524 Определение самопроверяемых моделей
- 525 Создание специального поставщика проверки достоверности
- 528 Выполнение проверки достоверности на стороне клиента
- 529 Включение и отключение проверки достоверности на стороне клиента
- 531 Использование проверки достоверности на стороне клиента
- 534 Особенности работы проверки достоверности на стороне клиента
- 536 Настройка проверки достоверности на стороне клиента
- 541 Выполнение удаленной проверки достоверности
- 544 Резюме
- 545 Глава 19. Ненавязчивый Ajax
- 545 Использование ненавязчивого Ajax из MVC
- 545 Создание проекта
- 548 Включение и отключение ненавязчивого Ajax
- 549 Использование форм ненавязчивого Ajax
- 550 Принципы работы ненавязчивого Ajax
- 551 Задание параметров Ajax
- 551 Обеспечение плавного сокращения возможностей
- 553 Обеспечение пользователя обратной связью при выполнении запроса Ajax
- 554 Выдача вопроса пользователю перед запросом
- 555 Создание Ajax-ссылок
- 556 Обеспечение плавного сокращения возможностей для ссылок
- 558 Работа с обратными вызовами Ajax
- 560 Работа с JSON
- 561 Добавление поддержки JSON в контроллер
- 562 Обработка JSON в браузере
- 563 Обнаружение запросов Ajax в методе действия
- 564 Получение JSON-данных
- 566 Резюме
- 545 Использование ненавязчивого Ajax из MVC
- 567 Глава 20. jQuery
- 567 Создание проекта
- 569 Ссылка на jQuery
- 571 Написание jQuery-кода
- 572 Создание песочницы jQuery
- 574 Основы jQuery
- 575 Селекторы jQuery
- 577 Применение фильтров jQuery
- 579 Знакомство с методами jQuery
- 579 Ожидание DOM
- 581 Использование jQuery-методов, относящихся к CSS
- 583 Работа с DOM
- 587 Использование событий jQuery
- 588 Использование визуальных эффектов jQuery
- 589 Использование jQuery UI
- 590 Ссылка на jQuery UI
- 591 Улучшенные кнопки
- 592 Использование ползунка
- 594 Резюме
- 595 Часть III. Доставка успешных проектов ASP.NET MVC 3
- 596 Глава 21. Безопасность и уязвимость
- 596 Любые входные данные могут быть поддельными
- 598 Подмена HTTP-запросов
- 599 Межсайтовые сценарии и внедрение HTML-кода
- 600 XSS-уязвимость
- 601 Кодирование HTML для Razor
- 601 Проверка запросов
- 604 Кодирование строк с JavaScript-кодом и XSS-атаки
- 606 Взлом сеансов
- 606 Защита с помощью проверки IP-адреса клиента
- 606 Защита с помощью флага HttpOnly в cookie-наборах
- 607 Подмена межсайтовых запросов
- 607 Атака
- 608 Защита
- 608 Защита от CSRF с помощью вспомогательных методов Antiforgery
- 610 Внедрение SQL-кода
- 610 Атака
- 611 Защита с помощью параметризованных запросов
- 611 Защита с помощью объектно-реляционного отображения
- 611 Безопасное использование MVC Framework
- 611 Не открывайте методы действий
- 612 Не позволяйте связывателю модели изменять важные свойства
- 612 Резюме
- 596 Любые входные данные могут быть поддельными
- 613 Глава 22. Аутентификация и авторизация
- 613 Использование аутентификации Windows
- 615 Использование аутентификации с помощью форм
- 616 Настройка аутентификации с помощью форм
- 619 Аутентификация с помощью форм без cookie-наборов
- 619 Использование членства, ролей и профилей
- 621 Настройка и использование членства
- 628 Настройка и использование ролей
- 631 Настройка и использование профилей
- 636 Почему не следует применять авторизацию на основе URL
- 637 Ограничение доступа с помощью IP-адресов и доменов
- 638 Резюме
- 639 Глава 23. Развертывание
- 639 Подготовка приложения к развертыванию
- 639 Обнаружение ошибок представлений до развертывания
- 640 Настройка динамической компиляции страниц
- 641 Подготовка к bin-развертыванию
- 642 Подготовка файла Web.config к трансформации
- 651 Подготовка проекта к развертыванию базы данных
- 654 Основы IIS
- 654 Что такое веб-сайты
- 654 Понятие виртуальных каталогов
- 655 Понятие пулов приложений
- 655 Привязка веб-сайтов к именам хостов, IP-адресам и портам
- 655 Подготовка сервера к развертыванию
- 657 Развертывание приложения
- 657 Развертывание приложения с помощью копирования файлов
- 658 Применение пакета развертывания
- 661 Публикация одним щелчком
- 662 Резюме
- 639 Подготовка приложения к развертыванию
- 663 Предметный указатель
Инструкция как скачать книгу Адам Фримен, Стивен Сандерсон: ASP.NET MVC 3 Framework с примерами на C# для профессионалов в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.