ASP.Net Core в действии
Покупка
Новинка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Лок Эндрю
Перевод:
Беликов Д. А.
Год издания: 2021
Кол-во страниц: 906
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование взрослых
ISBN: 978-5-97060-550-9
Артикул: 799581.02.99
Эта книга знакомит читателей с основами фреймворка ASP.NET Core, такими как промежуточное ПО, внедрение зависимостей и конфигурация. Автор показывает, как настроить их в соответствии с пользовательскими требованиями. Речь пойдет о том, как добавить аутентификацию и авторизацию в свои приложения, как повысить их безопасность, а также как развертывать их и осуществлять мониторинг. Рассматривается тестирование приложений с использованием модульных и интеграционных тестов. Основное внимание будет уделено тому, как создавать приложения с отрисовкой на стороне сервера, используя страницы Razor и веб-API, а также контроллеры MVC. Книга подойдет как тем, кто является новичком в веб-разработке, так и тем, кто уже имеет опыт использования фреймворка ASP.NET.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Эндрю Лок ASP.Net Core в действии
ASP.NET Core in Action SECOND EDITION ANDREW LOCK
ASP.Net Core в действии ЭНДРЮ ЛОК Москва, 2021
УДК 004.438.NET ББК 32.973.26-018.2 Л73 Лок Э. Л73 ASP.Net Core в действии / пер. с анг. Д. А. Беликова. – М.: ДМК Пресс, 2021. – 906 с.: ил. ISBN 978-5-97060-550-9 Эта книга знакомит читателей с основами фреймворка ASP.NET Core, такими как промежуточное ПО, внедрение зависимостей и конфигурация. Автор показывает, как настроить их в соответствии с пользовательскими требованиями. Речь пойдет о том, как добавить аутентификацию и авторизацию в свои приложения, как повысить их безопасность, а также как развертывать их и осуществлять мониторинг. Рассматривается тестирование приложений с использованием модульных и интеграционных тестов. Основное внимание будет уделено тому, как создавать приложения с отрисовкой на стороне сервера, используя страницы Razor и веб-API, а также контроллеры MVC. Книга подойдет как тем, кто является новичком в веб-разработке, так и тем, кто уже имеет опыт использования фреймворка ASP.NET. УДК 004.438.NET ББК 32.973.26-018.2 Original English language edition published by Manning Publications USA, USA. Russian-language edition copyright © 2021 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-6172-9830-1 (англ.) © Manning Publications, 2021 ISBN 978-5-97060-550-9 (рус.) © Перевод, оформление, издание, ДМК Пресс, 2021
Оглавление Часть I НАЧАЛО РАБОТЫ С ASP.NET CORE ....................................................... 31 1 Начало работы с ASP.NET Core ...................................................................... 33 2 Ваше первое приложение .............................................................................. 58 3 Обработка запросов с по мощью конвейера промежуточного ПО ....... 95 4 Создание веб-сайта с помощью страниц Razor ...................................... 130 5 Сопоставление URL-адресов с Razor Pages с использованием маршрутизации ............................................................................................. 164 6 Модель привязки: получение и проверка пользовательского ввода .... 203 7 Визуализация HTML-кода с использованием представлений Razor .... 239 8 Создание форм с помощью тег-хелперов ................................................ 278 9 Создание веб-API для мобильных и клиентских приложений с по мощью MVC ............................................................................................. 313 Часть II СОЗДАНИЕ ПОЛНОЦЕННЫХ ПРИЛОЖЕНИЙ ................................ 350 10 Конфигурация сервисов с по мощью внедрения зависимостей ......... 352 11 Конфигурирование приложения ASP.NETCore ....................................... 394 12 Cохраняем данные с Entity Framework Core ........................................... 432 13 Конвейер фильтров MVC и Razor Pages ................................................... 471 14 Аутентификация: добавляем пользователей в приложение с по мощью ASP.NET Core Identity ............................................................. 513 15 Авторизация: обеспечиваем защиту приложения ............................... 553 16 Публикация и развертывание приложения ............................................ 590 Часть III РАСШИРЕНИЕ ПРИЛОЖЕНИЙ .............................................................. 628 17 Мониторинг и устранение ошибок с помощью журналирования .... 630 18 Повышаем безопасность приложения ..................................................... 667 19 Создание специальных компонентов ...................................................... 710 20 Создание специальных компонентов MVC и Razor Pages .................. 745 21 Вызов удаленных API с помощью IHttpClientFactory .......................... 775 22 Создание фоновых задач и сервисов ........................................................ 799 23 Тестирование приложения .......................................................................... 827
Содержание Предисловие .......................................................................................................... 19 Благодарности ....................................................................................................... 21 Об этой книге ........................................................................................................ 23 Об авторе ................................................................................................................ 29 Об иллюстрации на обложке ............................................................................. 30 Часть I НАЧАЛО РАБОТЫ С ASP.NET CORE ..................... 31 1 Начало работы с ASP.NET Core .................................................... 33 1.1 Введение в ASP.NET Core ......................................................................... 34 1.1.1Использованиевеб-фреймворка ........................................................ 35 1.1.2ЧтотакоеASP.NETCore? ................................................................. 37 1.2 Когда следует отдать предпочтение ASP.NET Core ............................ 40 1.2.1Какиетипыприложенийможносоздавать? ................................... 40 1.2.2Есливыновичокв разработкена.NET ............................................. 43 1.2.3Есливыразработчик,создающийновоеприложение...................... 45 1.2.4ПереноссуществующегоASP.NET-приложениянаASP.NETCore ..... 50 1.3 Как работает ASP.NET Core? .................................................................... 51 1.3.1Какработаетвеб-запроспопротоколуHTTP? .............................. 52 1.3.2КакASP.NETCoreобрабатываетзапрос? ....................................... 54 1.4 Что вы узнаете из этой книги ................................................................ 56 Резюме .................................................................................................................... 57 2 Ваше первое приложение .................................................................... 58 2.1 Краткий обзор приложения ASP.NET Core .......................................... 60 2.2 Создание вашего первого приложения ASP.NET Core ...................... 62 2.2.1Использованиешаблона .................................................................... 63 2.2.2Сборкаприложения ........................................................................... 66 2.3 Запуск веб-приложения........................................................................... 68 2.4 Разбираемся с макетом проекта ........................................................... 70
Содержание 2.5 Файл проекта .csproj: определение зависимостей ............................ 71 2.6 Класс Program: сборка веб-хоста ........................................................... 74 2.7 Класс Startup: настройка вашего приложения ................................... 77 2.7.1Добавлениеи настройкасервисов .................................................... 79 2.7.2Определяем,какобрабатываютсязапросыс помощьюпромежуточногопрограммногообеспечения ................................... 81 2.8 Создание ответов с по мощью Razor Pages .......................................... 86 2.8.1СозданиеHTMLс помощьюстраницRazor ...................................... 87 2.8.2Логикаобработкизапросовс помощьюPageModelsи обработчиков ................................................................................. 89 Резюме .................................................................................................................... 93 3 Обработка запросов с по мощью конвейера промежуточного ПО .............................................................................. 95 3.1 Что такое промежуточное ПО? .............................................................. 97 3.2 Объединение компонентов в конвейер ............................................ 102 3.2.1Простойсценарийконвейера1:страница приветствия ..................102 3.2.2Простойсценарийконвейера2:обработка статическихфайлов ... 106 3.2.3Простойсценарийконвейера3:приложениесо страницамиRazor ......................................................................................................110 3.3 Обработка ошибок с по мощью промежуточного ПО ..................... 116 3.3.1Просмотрисключенийв окруженииразработки:DeveloperExceptionPage .................................................................... 118 3.3.2Обработкаисключенийв промышленномокружении:ExceptionHandlerMiddleware ............................................................ 119 3.3.3Обработкадругихошибок:StatusCodePagesMiddleware ................ 124 3.3.4 Компонент обработки ошибок и веб-API .......................................... 128 Резюме .................................................................................................................. 129 4 Создание веб-сайта с помощью страниц Razor ........... 130 4.1 Введение в Razor Pages .......................................................................... 132 4.1.1ИзучениетипичнойстраницыRazor .............................................. 132 4.1.2ПаттернпроектированияMVC ..................................................... 134 4.1.3ПрименениепаттернапроектированияMVCк Razor Pages ........ 137 4.1.4ДобавлениеRazorPagesв приложение ............................................ 145 4.2 Сравнение Razor Pages и MVC в ASP.NET Core ................................. 149 4.2.1КонтроллерыMVCв ASP.NETCore ................................................. 149 4.2.2ПреимуществаRazorPages ............................................................. 151 4.2.3КогдавыбиратьконтроллерыMVCвместоRazorPages ............... 154 4.3 Razor Pages и обработчики страниц ................................................... 155 4.3.1Приемпараметровв обработчикахстраниц ................................ 157 4.3.2Возвратответовс помощьюActionResults.................................... 159 Резюме .................................................................................................................. 163 5 Сопоставление URL-адресов с Razor Pages с использованием маршрутизации ......................................... 164 5.1 Что такое маршрутизация? ................................................................... 165 5.2 Маршрутизация в ASP.NET Core .......................................................... 169
Содержание 5.2.1Использованиемаршрутизацииконечныхточекв ASP.NETCore .... 169 5.2.2Маршрутизациянаосновесоглашенийи маршрутизациянаосновеатрибутов ...................................................................... 173 5.2.3Маршрутизацияи страницыRazor ................................................ 176 5.3 Настройка шаблонов маршрутов для страницы Razor .................. 178 5.3.1Добавлениесегментав шаблонмаршрута .................................... 180 5.3.2ПолнаязаменашаблонамаршрутастраницыRazor .................... 181 5.4 Изучение синтаксиса шаблона маршрута ......................................... 182 5.4.1Использованиедополнительныхзначенийи значенийпоумолчанию .................................................................................. 182 5.4.2Добавлениедополнительныхограниченийк параметраммаршрута ....................................................................................... 184 5.4.3СопоставлениепроизвольныхURL-адресовс помощьюуниверсальногопараметра ............................................................. 186 5.5 Генерация URL-адресов из параметров маршрута ......................... 188 5.5.1СозданиеURL-адресовдлястраницыRazor ................................... 189 5.5.2СозданиеURL-адресовдляконтроллераMVC ................................ 190 5.5.3СозданиеURL-адресовс помощьюActionResults ............................. 192 5.5.4СозданиеURL-адресовиздругихчастейвашего приложения ........ 193 5.6 Выбор обработчика страницы для вызова ........................................ 194 5.7 Настройка соглашений с помощью Razor Pages .............................. 197 Резюме .................................................................................................................. 201 6 Модель привязки: получение и проверка пользовательского ввода ................................................................. 203 6.1 Модели в Razor Pages и MVC ................................................................. 204 6.2 От запроса к модели: делаем запрос полезным .............................. 208 6.2.1Связываниепростыхтипов ............................................................ 212 6.2.2Привязкасложныхтипов ................................................................ 216 6.2.3Выбористочникапривязки ............................................................. 221 6.3 Обработка пользовательского ввода с помощью валидации модели .................................................................................. 223 6.3.1Необходимостьвалидациимодели ................................................. 223 6.3.2ИспользованиеатрибутовDataAnnotationsдля валидации .......... 225 6.3.3Валидациямоделинасерверев целяхбезопасности ...................... 228 6.3.4Валидациянасторонеклиентадля улучшенияпользовательскогоинтерфейса ...................................................... 232 6.4 Организация моделей привязки в Razor Pages ................................ 234 Резюме .................................................................................................................. 237 7 Визуализация HTML-кода с использованием представлений Razor .......................................................................... 239 7.1 Представления: визуализация пользовательского интерфейса ..... 241 7.2 Создание представлений Razor ........................................................... 245 7.2.1ПредставленияRazorи сопутствующийкод ................................. 245 7.2.2Знакомствос шаблонамиRazor ..................................................... 247 7.2.3Передачаданныхв представления ................................................. 248 7.3 Создание динамических веб-страниц с помощью Razor .............. 251 7.3.1ИспользованиеC#в шаблонахRazor ............................................... 252
Содержание 7.3.2Добавлениециклови условийв шаблоныRazor .............................. 253 7.3.3ВизуализацияHTMLс помощьюметодаRaw ................................. 256 7.4 Макеты, частичные представления и _ViewStart ............................ 259 7.4.1Использованиемакетовдляобщейразметки ................................ 260 7.4.2Переопределениеродительскихмакетовс помощью секций ......... 262 7.4.3Использованиечастичныхпредставленийдля инкапсуляцииразметки ......................................................................................... 264 7.4.4Выполнениекодав каждомпредставлениис помощью_ViewStartи _ViewImports............................................................... 267 7.5 Выбор представления из контроллера MVC ..................................... 270 Резюме .................................................................................................................. 276 8 Создание форм с помощью тег-хелперов ........................... 278 8.1 Редакторы кода и тег-хелперы ............................................................. 280 8.2 Создание форм с по мощью тег-хелперов ......................................... 283 8.2.1Тег-хелперформы ............................................................................ 288 8.2.2Тег-хелперметки(label) ................................................................. 291 8.2.3Тег-хелперыввода(input)и областитекста(textarea) ................. 292 8.2.4Тег-хелперраскрывающегосясписка ............................................... 296 8.2.5Тег-хелперысообщенийвалидациии сводкисообщений(ValidationSummary) ....................................................................... 302 8.3 Создание ссылок с по мощью тег-хелпера якоря (Anchor Tag Helper) ................................................................................. 305 8.4 Сброс кеша с по мощью тег-хелпера добавления версии (Append Version Tag Helper) .................................................... 307 8.5 Использование условной разметки с помощью тег-хелпера окружения .......................................................................... 308 Резюме .................................................................................................................. 310 9 Создание веб-API для мобильных и клиентских приложений с по мощью MVC ........................................................ 313 9.1 Что такое веб-API, и когда его следует использовать? ................... 314 9.2 Создание первого проекта веб-API .................................................... 318 9.3 Применение паттерна проектирования MVC к веб-API ................ 326 9.4 Маршрутизация на основе атрибутов: связывание методов действий с URL-адресами ..................................................... 330 9.4.1Сочетаниеатрибутовмаршрута,чтобываши шаблонымаршрутовследовалипринципуDRY ............................................. 333 9.4.2Использованиезаменымаркерадляуменьшениядублированияпримаршрутизациинаосновеатрибутов ............. 334 9.4.3ОбработкаHTTP-методовс помощьюмаршрутизациинаосновеатрибутов ...................................................................... 335 9.5 Использование общепринятых соглашений с атрибутом [ApiController]........................................................................................... 337 9.6 Генерация ответа от модели ................................................................. 341 9.6.1Настройкаформатеровпоумолчанию:добавляем поддержкуXML ............................................................................... 343 9.6.2Выборформатаответас помощьюсогласованиясодержимого .... 345 Резюме .................................................................................................................. 347
Содержание Часть II СОЗДАНИЕ ПОЛНОЦЕННЫХ ПРИЛОЖЕНИЙ .......................................................................... 350 10 Конфигурация сервисов с по мощью внедрения зависимостей ............................................................................................. 352 10.1 Введение во внедрение зависимостей............................................... 353 10.1.1Преимуществавнедрениязависимостей ....................................... 354 10.1.2Созданиеслабосвязанногокода ...................................................... 360 10.1.3Внедрениезависимостейв ASP.NETCore ....................................... 362 10.2 Использование контейнера внедрения зависимостей .................. 364 10.2.1ДобавлениесервисовфреймворкаASP.NETCoreв контейнер ....... 364 10.2.2Регистрациясобственныхсервисовв контейнере ......................... 367 10.2.3Регистрациясервисовс использованиемобъектови лямбда-функций ........................................................................... 369 10.2.4Многократнаярегистрациясервисав контейнере ....................... 374 10.2.5Внедрениесервисовв методыдействий,обработчики страници представления............................................................... 378 10.3 Жизненный цикл: когда создаются сервисы? ................................. 382 10.3.1Transient:всеуникально .................................................................. 385 10.3.2Scoped:давайтедержатьсявместе ............................................... 386 10.3.3Singleton:можетбытьтолькоодин .............................................. 387 10.3.4Следитезазахваченнымизависимостями .................................... 388 Резюме .................................................................................................................. 392 11 Конфигурирование приложения ASP.NETCore ................ 394 11.1 Представляем модель конфигурации ASP.NET Core ....................... 395 11.2 Конфигурирование приложения с по мощью метода CreateDefaultBuilder ................................................................................ 397 11.3 Создание объекта конфигурации для вашего приложения .......... 399 11.3.1Добавлениепоставщикаконфигурациив файле Program.cs .......... 402 11.3.2Использованиенесколькихпоставщиковдля переопределениязначенийконфигурации ................................ 405 11.3.3Безопасноехранениесекретовконфигурации ................................ 407 11.3.4Перезагрузказначенийконфигурацииприихизменении ............... 412 11.4 Использование строго типизированных настроек с паттерном Options ............................................................................... 413 11.4.1Знакомствос интерфейсомIOptions ............................................. 415 11.4.2Перезагрузкастроготипизированныхпараметровс помощьюIOptionsSnapshot ........................................................... 417 11.4.3Разработкаклассовпараметровдляавтоматическойпривязки ... 418 11.4.4Связываниестроготипизированныхнастроекбез интерфейсаIOptions ................................................................. 420 11.5 Настройка приложения для нескольких окружений ...................... 422 11.5.1Определениеокруженияразмещения.............................................. 422 11.5.2Загрузкафайловконфигурациидляконкретногоокружения .......... 424 11.5.3Задаемокружениеразмещения ...................................................... 426 Резюме .................................................................................................................. 430