ASP.NET Core. Разработка приложенийДля профессионалов.

Чамберс Джеймс, Пэкетт Дэвид, Тиммс Саймон «ASP.NET Core. Разработка приложений» Питер, 2018 год, 464 стр., ISBN 978-5-496-03071-7; (8,00 мб. pdf)

ASP.NET Core MVC это следующая версия уже знакомого кроссплатформенного фреймворка MVC от компании Microsoft. В ASP.NET Core MVC представлено множество разнообразных библиотек, которые как и сам фреймворк являются продуктом с открытым кодом. Использование ASP.NET Core MVC дает возможность разделить бизнес-логику, маршрутизацию и сервисы, а также предлагает новые методы конфигурирования и работы с расширениями, используя C# и механизм представлений Razor. В этой книге объясняется решение конкретных задач на примере вымышленной компании Alpine Ski House. Каждая глава начинается с краткого изложения проблемы, которая встает перед разработчиками, и того, как они собираются ее решать.

В книге достаточно широко освещена не только функциональность ASP.NET Core MVC, но и рабочий инструментарий, используемый разработчиками для создания, сопровождения и развертывания приложений. Кроме историй и технической информации об ASP.NET Core MVC, в книге рассматривается новая версия Entity Framework, системы управления пакетами и периферийные технологии, используемые современными веб-разработчиками. Вы познакомитесь с архитектурой приложений, средствами развертывания и проектирования приложений для работы в облаке и многими другими технологиями.

Оглавление книги

Содержание.

ЧАСТЬ I. СПРИНТ ПЕРВЫЙ: ПРИЛОЖЕНИЕ ALPINE SKI HOUSE

Глава 1. Что к чему 25
Active Server Pages 26
ASP.NET 28
ASP.NET MVC 32
Web API 36
ASP.NET Core 38
Итоги 39

Глава 2. Факторы влияния 40
Обратная совместимость 41
Rails 42
Node.js 46
Angular и React 47
Открытый код 49
OWIN 49
Итоги 51

Глава 3. Модели, представления и контроллеры 52
M, V и C 53
Подробнее о моделях 53
Представления 55
Частичные представления 56
Контроллеры (…и действия!) 57
Не только MVC 58
Промежуточное ПО 58
Внедрение зависимостей 60
Другие усовершенствования 61
Итоги 61

Глава 4. Структура проекта 62
Лыжные склоны 64
API 67
Административное представление 68
Все вместе 69
Определение предметной области 70
Итоги 71

Глава 5. Сборка кода 72
Сборка из командной строки 73
Билд-серверы 75
Конвейер сборки 76
Сборка приложения Alpine Ski House 80
Итоги 87

Глава 6. Развертывание 88
Выбор веб-сервера 89
Kestrel 90
Обратный прокси-сервер 91
IIS 92
Nginx 94
Публикация 96
Типы сборок 98
Сборка пакета 100
Несколько слов в пользу Azure 101
Развертывание в Azure 103
Контейнерное развертывание 107
Итоги 107

ЧАСТЬ II. СПРИНТ ВТОРОЙ: ПУТЕШЕСТВИЕ ДЛИНОЙ В 1000 ШАГОВ

Глава 7. Сборка веб-приложений на платформе Microsoft Azure 112
Что такое PaaS 113
Платформенные сервисы 113
Оснастка, уничтожение и воссоздание сервисов 116
Проектирование приложений с использованием Platform Services 117
Создание учетной записи хранения 118
Хранение изображений в BLOB-контейнерах 120
Интеграция очередей хранилища 122
Автоматизация обработки с использованием Azure WebJobs 122
Масштабирование приложений 124
Масштабирование в нескольких направлениях 125
Эластичное масштабирование 126
Другие факторы масштабирования 128
Итоги 129

Глава 8. Кроссплатформенность 130
Работа в Ubuntu 131
Установка .NET Core 131
Dotnet CLI 132
Выбор редактора кода 135
Проект Alpine Ski House в Linux 136
.NET Core 139
Итоги 142

Глава 9. Контейнеры 144
Повторяемые среды 145
Docker 149
Контейнеры Windows 154
Docker в рабочей среде 156
В облаке 158
Итоги 159

Глава 10. Entity Framework Core 160
Основы Entity Framework 162
Запрос на получение одной записи 164
Запрос на получение нескольких записей 164
Сохранение данных 165
Отслеживание изменений 165
Использование миграции для создания и обновления баз данных 166
Добавление миграций 167
Создание сценариев обновления для рабочих серверов 171
ApplicationDbContext 173
Расширение ApplicationUserContext 174
Контекст для карты 176
Отношения, выходящие за границы контекстов 177
Присоединение контроллера 179
Типы абонементов 185
Абонементы и проверка 187
События и обработчики событий 189
Итоги 191

Глава 11. Представления Razor 192
Создание веб-сайтов с точки зрения современного разработчика 193
Использование предыдущих достижений и находок 194
Роль Razor 194
Основы Razor 195
Взгляд «за кулисы» 195
Выражения в синтаксисе Razor 198
Переключение в режим кода 199
Явное использование разметки 200
Памятка по управлению парсером Razor 200
Использование других возможностей C# 202
Использование типов C# в представлениях 202
Определение модели 202
Использование данных представления 203
Работа с макетами 205
Основы работы с макетами 206
Включение секций из представлений 208
Определение и потребление частичных представлений 209
Использование расширенной функциональности Razor в представлениях 210
Внедрение сервисов в представления 210
Работа с тег-хелперами 212
Предотвращение дублирования в представлениях 216
Использование альтернативных механизмов представлений 217
Итоги 217

Глава 12. Конфигурация и журналирование 219
Расставание с web.config 220
Настройка конфигурации приложения 221
Использование готовых провайдеров конфигурации 223
Построение собственного провайдера конфигурации 224
Применение опций 227
Операции с журналом 228
Создание журналов с доступной информацией 229
Информация об исключениях 230
Журналирование как стратегия разработки 231
Уровни журналирования в ASP.NET Core 232
Применение областей действия 236
Структурированное журналирование 238
Журналирование как сервис 240
Итоги 242

ЧАСТЬ III. СПРИНТ ТРЕТИЙ: В ПАСТИ У ЗВЕРЯ

Глава 13. Идентификация, безопасность и управление правами 246
Эшелонированная оборона 247
Внутренние угрозы 247
Внешние угрозы 249
Оглавление 11
Скрытые данные пользователей 249
Аутентификация с поддержкой Azure 251
Идентификация в ASP.NET Core MVC 257
Учетные записи локальных пользователей 262
Сторонние провайдеры аутентификации 264
Включение средств безопасности с использованием атрибутов 267
Применение политик для авторизации 269
Глобальное применение политик 269
Определение специализированных политик 270
Специальные политики авторизации 271
Защита ресурсов 273
Общий доступ к ресурсам независимо от источника (CORS) 275
Итоги 277

Глава 14. Внедрение зависимостей 278
Что такое «внедрение зависимостей»? 279
Ручное разрешение зависимостей 279
Использование контейнера сервисов для разрешения зависимостей 281
Внедрение зависимостей в ASP.NET Core 282
Использование встроенного контейнера 283
Использование стороннего контейнера 286
Итоги 288

Глава 15. Роль JavaScript 289
Написание хорошего кода JavaScript 290
А это вообще обязательно? 291
Организация кода 292
SPA или не SPA? 293
Сборка JavaScript 294
Bundler & Minifier 295
Grunt 296
gulp 298
WebPack 300
Какой инструмент мне лучше подойдет? 303
TypeScript 304
Компилятор ES2015 в ES5 304
Загрузка модуля 309
Выбор фреймворка 310
Итоги 311

Глава 16. Управление зависимостями 313
NuGet 314
Установка пакетов в NuGet 314
Инструментарий Visual Studio 315
npm 317
Добавление зависимостей 318
Использование модулей npm 318
Интеграция с Visual Studio 319
Yarn 321
bower 323
Добавление зависимостей 324
Обращение к ресурсам из пакетов bower 325
Итоги 325

Глава 17. Стильный интерфейс 327
Создание сайтов с таблицами стилей 328
Немного истории 329
Создание собственной таблицы стилей 331
SASS в работе со стилями 333
Основы SCSS 335
Переменные 335
Импортирование и фрагменты 336
Вложение 337
Создание примесей 339
Объединение примесей и директив 340
Рабочий процесс 341
Инструменты командной строки 341
Работа в Visual Studio Code 341
Изменение задач сборки проекта 342
Использование сторонних фреймворков 343
Расширение фреймворка CSS 343
Настройка используемых элементов фреймворка CSS 344
Применение фреймворков CSS для специализированных таблиц стилей 344
Альтернативы для фреймворков CSS 346
Итоги 347

Глава 18. Кэширование 348
Заголовки управления кэшированием 350
Использование Data-Cache 353
Кэширование памяти 354
Распределенный кэш 355
Ограничение размера кэша 357
Итоги 358

ЧАСТЬ IV. СПРИНТ ЧЕТВЕРТЫЙ: ФИНИШНАЯ ПРЯМАЯ

Глава 19. Многоразовый код 362
Тег-хелперы 363
Оглавление 13
Строение тег-хелперов 363
Тег-хелперы environment, link и script 364
Файловые шаблоны 365
Запрет кэширования 365
Тег-хелпер cache 367
Создание тег-хелперов 367
Работа с существующими атрибутами и содержимым 369
Компоненты представлений 370
Работа с компонентами представлений 372
Что случилось с дочерними действиями? 372
Компонент представления для связи со службой поддержки 372
Частичные представления 374
Итоги 376

Глава 20. Тестирование 377
Модульное тестирование 378
XUnit 378
Основы xUnit 379
Запуск тестов 380
Организация модульного тестирования 382
Тег-хелперы для тестирования 388
Тестирование компонентов представлений 391
Тестирование кода JavaScript 392
Другие виды тестирования 397
Итоги 398

Глава 21. Расширение фреймворка 399
Соглашения 400
Создание нестандартных соглашений 401
Промежуточное ПО 403
Настройка конвейера 403
Написание промежуточного ПО 405
Разветвление конвейера 407
Загрузка внешних контроллеров и представлений 408
Загрузка представлений из внешних проектов 409
Загрузка контроллеров из внешних сборок 409
Маршрутизация 410
Маршрутизация на основе атрибутов 411
Расширенная маршрутизация 412
Инструменты dotnet 412
Изоморфные приложения и сервисы JavaScript 413
Изоморфные приложения 413
Использование Node 414
Итоги 415

Глава 22. Интернационализация 416
Локализация текста 419
Локализация строк 419
Создание файлов ресурсов 421
Локализация представлений 422
Аннотации данных 423
Совместное использование файлов ресурсов 423
Назначение текущей культуры 424
Итоги 428

Глава 23. Рефакторинг и повышение качества кода 429
Что такое рефакторинг? 430
Оценка качества кода 432
Выбор времени для рефакторинга 434
Меры безопасности при рефакторинге 434
Разработка на основе данных 442
Пример чистки кода 443
Полезные инструменты 448
На пути к качественному коду 448
Итоги 448

Глава 24. Организация кода 450
Структура репозитория 451
Внутри исходного кода 452
Параллельная структура 452
Паттерн «Посредник» 454
Краткое введение в паттерн «Передача сообщений» 454
Реализация паттерна «Посредник» 455
Области 459
Итоги 460
Послесловие 461
Об авторах 464

СкачатьPDF

Похожая литература