Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

ASP.Net Core в действии

Покупка
Новинка
Артикул: 799581.02.99
Доступ онлайн
2 049 ₽
В корзину
Эта книга знакомит читателей с основами фреймворка ASP.NET Core, такими как промежуточное ПО, внедрение зависимостей и конфигурация. Автор показывает, как настроить их в соответствии с пользовательскими требованиями. Речь пойдет о том, как добавить аутентификацию и авторизацию в свои приложения, как повысить их безопасность, а также как развертывать их и осуществлять мониторинг. Рассматривается тестирование приложений с использованием модульных и интеграционных тестов. Основное внимание будет уделено тому, как создавать приложения с отрисовкой на стороне сервера, используя страницы Razor и веб-API, а также контроллеры MVC. Книга подойдет как тем, кто является новичком в веб-разработке, так и тем, кто уже имеет опыт использования фреймворка ASP.NET.
Лок, Э. ASP.Net Core в действии : практическое руководство / Э. Лок ; пер. с анг. Д. А. Беликова. - Москва : ДМК Пресс, 2021. - 906 с. - ISBN 978-5-97060-550-9. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2155886 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Эндрю Лок

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

Доступ онлайн
2 049 ₽
В корзину