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 Резюме
  • 34 Глава 2. Подготовка
    • 34 Подготовка рабочей станции
      • 34 Установка Visual Studio 2010
      • 35 Установка важного программного обеспечения
      • 37 Установка необязательных компонентов
    • 38 Подготовка сервера
      • 39 Активизация роли веб-сервера
      • 39 Установка дополнительных компонентов
      • 40 Настройка веб-развертывания
    • 42 Получение дополнительной информации
    • 7 Резюме 43 Содержание
  • 44 Глава 3. Ваше первое приложение MVC
    • 44 Создание нового проекта ASP.NET MVC
      • 46 Добавление первого контроллера
      • 48 Понятие маршрутов
    • 48 Визуализация веб-страниц
      • 49 Создание и визуализация представления
      • 51 Добавление динамического вывода
    • 53 Создание простого приложения ввода данных
      • 53 Предварительная настройка
      • 54 Разработка модели данных
      • 55 Привязка методов действий
      • 57 Построение формы
      • 59 Обработка форм
      • 63 Добавление проверки достоверности
      • 66 Завершение примера
    • 68 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 364 Глава 13. Фильтры
    • 364 Использование фильтров
      • 366 Введение в четыре базовых типа фильтров
      • 366 Применение фильтров к контроллерам и методам действий
      • 367 Использование фильтров авторизации
      • 372 Использование фильтров исключений
      • 376 Использование фильтров действия и результата
      • 381 Использование возможностей фильтров
      • 386 Использование встроенных фильтров
    • 389 Резюме
  • 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 Резюме
  • 459 Глава 16. Шаблоны модели
    • 459 Использование шаблонизированных вспомогательных методов представлений
      • 463 Стилизация генерируемой HTML-разметки
      • 465 Использование метаданных модели
      • 472 Работа с параметрами сложных типов
    • 474 Настройка системы шаблонизированных вспомогательных методов
      • 474 Создание специального шаблона редактора
      • 477 Создание специального шаблона отображения
      • 478 Создание обобщенного шаблона
      • 479 Замена встроенных шаблонов
      • 480 Использование свойства ViewData.TemplateInfo
      • 481 Передача в шаблон дополнительных метаданных
    • 482 Система поставщиков метаданных
      • 483 Создание специального поставщика метаданных модели
      • 485 Настройка поставщика метаданных модели в виде аннотаций данных
    • 486 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 663 Предметный указатель

Инструкция как скачать книгу Адам Фримен, Стивен Сандерсон: ASP.NET MVC 3 Framework с примерами на C# для профессионалов в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
ASP.NET MVC 3 Framework с примерами на C# для профессионалов
Рейтинг книги:
3 голоса
1527

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: