Фёдор Сазанавец | C# 11 и .NET 7.0. Создаем кросс-платформенные приложения на базе .NET Core (2024) [PDF]
Автор: Фёдор Сазанавец
Издательство: БХВ-Петербург
ISBN: 978-5-9775-1966-3
Жанр: NET framework, Программирование, Продукты Microsoft, Разработка приложений, Разработка программного обеспечения, Язык C#
Формат: PDF
Качество: Изначально электронное (ebook)
Иллюстрации: Цветные и черно-белые
Описание:Книга о разработке нативных, кросc-платформенных и веб-приложений на платформе .NET с использованием языка C#. Подробно рассмотрена экосистема платформы .NET, средства связи в распределённых системах (gRPC и SignalR), инструменты современной веб-разработки – Blazor, библиотека машинного обучения ML.NET, фреймворк для веб-разработки ASP.NET Core, инструментарий Entity Framework Core 7. Объяснены возможности подготовки микросервисной архитектуры, а также развертывание контейнеров и управление ими с применением Docker Swarm и Kubernetes.
Оглавление:
Об авторе ....................................................................................................................... 15
О рецензентах ................................................................................................................. 16
Благодарности ................................................................................................................. 17
Предисловие ................................................................................................................... 18
Комплект исходного кода и цветные иллюстрации .............................................................. 22
Глава 1. Знакомство со структурой приложений .NET 7 ....................................................... 23
Введение ......................................................................................................................... 23
Структура ........................................................................................................................ 24
Цели ................................................................................................................................ 24
Настройка среды разработки ............................................................................................. 24
Компьютеры, подходящие для разработки ПО ..................................................................... 24
.NET 7 SDK ....................................................................................................................... 24
Установка редактора кода или среды IDE ........................................................................... 25
Установка подходящего редактора кода ............................................................................. 26
Установка подходящей IDE ............................................................................................... 28
Microsoft Visual Studio 2022 ............................................................................................... 28
Microsoft Visual Studio 2022 for Mac .................................................................................... 29
JetBrains Rider .................................................................................................................. 30
Создание приложения .NET 7 ............................................................................................ 31
Создание приложения с помощью CLI ................................................................................ 32
Создание приложения с помощью графического интерфейса IDE ......................................... 33
Обзор структуры проекта .NET 7 .......................................................................................... 35
Добавление объекта struct ..................................................................................................... 35
Добавление интерфейса и класса ......................................................................................... 36
Изменение точки входа в приложение ................................................................................... 39
Основы C# 11 и встроенные типы данных .................................................................................. 41
Встроенные типы данных ..................................................................................................... 41
Поток управления .................................................................................................................. 43
Пользовательские типы в C# ................................................................................................ 44
Модификаторы доступа ........................................................................................................ 44
Заключение.................................................................................................................................. 45
Что следует помнить ..................................................................................................................... 46
Контрольные вопросы ................................................................................................................... 46
Ответы .................................................................................................................................... 47
Основные термины ........................................................................................................................ 47
Глава 2. Обзор возможностей C# 11 .......................................................................................... 48
Введение ......................................................................................................................................... 48
Структура ....................................................................................................................................... 48
Цели ................................................................................................................................................ 48
Предварительные условия ............................................................................................................ 49
Автоматическая инициализация структур .................................................................................. 49
Обобщенные атрибуты.................................................................................................................. 50
Пример обобщенного атрибута ................................................................................................ 51
Сопоставление последовательности с образцом ........................................................................ 53
Демонстрация сопоставления последовательности с образцом ................................................... 54
Сопоставление последовательности с образцом типа char span .................................................. 54
Новые операции со строками ....................................................................................................... 56
Заключение..................................................................................................................................... 59
Что следует помнить ..................................................................................................................... 60
Контрольные вопросы ................................................................................................................... 60
Ответы .................................................................................................................................... 61
Основные термины ........................................................................................................................ 61
Глава 3. Что нового в .NET 7? ......................................................................................................... 62
Введение ......................................................................................................................................... 62
Структура ....................................................................................................................................... 62
Цели ................................................................................................................................................ 62
Предварительные условия ............................................................................................................ 63
Улучшения в SDK и инструментах сборки ................................................................................. 63
Улучшения инструментов командной строки ..................................................................... 63
NativeAOT и функция обрезки библиотек........................................................................... 64
Центральный диспетчер пакетов .......................................................................................... 65
Обновления библиотек System и Microsoft ................................................................................. 66
Поддержка микросекунд и наносекунд ............................................................................... 66
Новые возможности для работы с JSON ............................................................................. 68
Свойство MaxDepth класса JsonWriterOptions ........................................................... 69
Конфигурация JsonSerializerOptions по умолчанию ................................................. 70
Вызовы HTTP PATCH для JSON ................................................................................. 70
Полиморфизм JSON ..................................................................................................... 71
Тестирование возможностей JSON ............................................................................. 73
Новые возможности класса Stream ...................................................................................... 73
Улучшения RegEx .................................................................................................................. 75
Улучшения в криптографии ................................................................................................. 76
Новый TAR API ..................................................................................................................... 78
Улучшения наблюдаемости .......................................................................................................... 80
Новые способы мониторинга действий ............................................................................... 80
Мониторинг остановленных действий ....................................................................... 80
Событие изменения текущего действия ..................................................................... 81
Перечисление свойств действия .................................................................................. 81
Показатель UpDownCounter .................................................................................................. 83
Критические изменения в .NET 7................................................................................................. 83
Допустимость неопределенных значений в пространстве имен Microsoft.Extensions ....... 83
Конечные точки: устаревшие и не допускающие неопределенных значений ................. 84
Ограничение PatternContext .................................................................................................. 84
Многоуровневый поиск в Windows отключен .................................................................... 84
Сериализация пользовательских типов в MSBuild.............................................................. 84
Заключение..................................................................................................................................... 85
Что следует помнить ..................................................................................................................... 85
Контрольные вопросы ................................................................................................................... 86
Ответы .................................................................................................................................... 86
Основные термины ........................................................................................................................ 87
Глава 4. MAUI и кросс-платформенные нативные приложения ........................................................... 88
Введение ......................................................................................................................................... 88
Структура ....................................................................................................................................... 88
Цели ................................................................................................................................................ 89
Предварительные условия ............................................................................................................ 89
Общие сведения о MAUI .............................................................................................................. 89
Включение среды разработки MAUI ................................................................................... 90
Создание простых MAUI-приложений ................................................................................ 91
Справочные данные по MAUI XAML ................................................................................... 94
Работа с Blazor на платформе .NET MAUI .......................................................................... 97
Архитектурные паттерны MAUI .......................................................................................... 99
Model-View-ViewModel ............................................................................................... 99
Паттерны, поддерживаемые MAUI через сторонние платформы ................................... 101
ReactiveUI .................................................................................................................... 101
Model-View-Update ..................................................................................................... 101
Использование MAUI для создания настольных приложений ................................................ 102
Подготовка среды разработки настольных приложений ................................................. 102
Запуск настольного приложения в режиме отладки ......................................................... 102
Публикация настольного приложения ............................................................................... 103
Использование MAUI для создания мобильных приложений ................................................ 104
Подготовка среды разработки мобильных приложений ..................................................... 105
Запуск мобильного приложения на эмуляторе ................................................................. 106
Публикация мобильного приложения ............................................................................... 106
Ограничения разработки для Mac OS и iOS.............................................................................. 107
Дополнительные инструменты, необходимые для публикации приложений
для iOS .................................................................................................................................. 107
Менее строгие требования к приложениям для Mac OS .............................................................. 108
Заключение................................................................................................................................... 108
Что следует помнить ................................................................................................................... 109
Контрольные вопросы ................................................................................................................. 109
Ответы .................................................................................................................................. 110
Основные термины ...................................................................................................................... 110
Глава 5. Доступ к базам данных с помощью Entity Framework 7 ....................................................... 111
Введение ....................................................................................................................................... 111
Структура ..................................................................................................................................... 111
Цели .............................................................................................................................................. 112
Предварительные условия .......................................................................................................... 112
Знакомство с основами реляционных БД .................................................................................. 112
Обзор систем управления реляционными БД и SQL............................................................ 112
Таблицы, отношения и нормализация ............................................................................... 113
Введение первичных ключей............................................................................................. 115
Нормализация и отношения внешних ключей ..................................................................... 115
Введение в Entity Framework 7 ................................................................................................... 117
Подход "сначала код" в EF7 ....................................................................................................... 119
Добавление кода Entity Framework .................................................................................... 119
Добавление объектов-сущностей ....................................................................................... 120
Добавление контекста базы данных ................................................................................... 122
Добавление скрипта создания базы данных ...................................................................... 124
Создание базы данных путем запуска приложения .......................................................... 128
Подход "сначала база данных" в EF7 ........................................................................................ 129
Создание моделей EF7 из существующей БД ................................................................... 129
Просмотр автоматически сгенерированного кода ............................................................ 130
Новейшие функции EF7 .............................................................................................................. 131
Подход "сначала база данных" и управление с помощью шаблонов T4 .................................... 131
Защищенный ключ .............................................................................................................. 131
Отображение "одна таблица на конкретный тип" (TPC) ........................................................... 133
Перехватчики ....................................................................................................................... 136
Заключение................................................................................................................................... 137
Что следует помнить ................................................................................................................... 137
Контрольные вопросы ................................................................................................................. 138
Ответы .................................................................................................................................. 139
Основные термины ...................................................................................................................... 139
Глава 6. Типы веб-приложений в .NET............................................................................................. 140
Введение ....................................................................................................................................... 140
Структура ..................................................................................................................................... 140
Цели .............................................................................................................................................. 141
Предварительные условия .......................................................................................................... 141
Основы ASP.NET Core ................................................................................................................ 141
Структура базового приложения ASP.NET Core .......................................................................... 141
Web API в ASP.NET Core ........................................................................................................... 144
Web API с контроллерами ................................................................................................... 144
Конечные точки Minimal API ............................................................................................. 149
Добавление метаданных Open API ........................................................................... 150
Улучшение передачи параметров в Minimal API....................................................... 150
Minimal API и типизированные результаты ............................................................. 151
Выгрузка файлов в Minimal API ................................................................................ 153
Новое в промежуточном ПО для обработки запросов ..................................................... 153
MVC в ASP.NET Core ................................................................................................................. 155
Razor Pages в ASP.NET Core ....................................................................................................... 167
Заключение................................................................................................................................... 169
Что следует помнить ................................................................................................................... 170
Контрольные вопросы ................................................................................................................. 170
Ответы .................................................................................................................................. 171
Основные термины ...................................................................................................................... 171
Глава 7. Blazor и WebAssembly в .NET ............................................................................................ 172
Введение ....................................................................................................................................... 172
Структура ..................................................................................................................................... 173
Цели .............................................................................................................................................. 173
Предварительные условия .......................................................................................................... 173
Общие сведения о Blazor ............................................................................................................ 173
Примеры Razor-компонентов ............................................................................................. 174
@page ........................................................................................................................... 175
@onclick ....................................................................................................................... 175
@code ........................................................................................................................... 175
Ключевые слова Razor в Razor-компонентах .................................................................... 175
@using .......................................................................................................................... 176
@implements ................................................................................................................ 176
@inherits ...................................................................................................................... 176
@inject.......................................................................................................................... 176
@layout ........................................................................................................................ 176
@namespace ................................................................................................................. 176
@preservewhitespace ...................................................................................................... 177
@attributes .................................................................................................................... 177
@bind ........................................................................................................................... 177
@ref .............................................................................................................................. 177
@typeparam .................................................................................................................. 178
Обзор Blazor WebAssembly .............................................................................................. 178
Отделение кода программной части .................................................................................. 179
Взаимодействие с JavaScript ............................................................................................... 181
Передача параметров в Razor-компоненты ....................................................................... 182
Предварительная компиляция ............................................................................................ 183
Пустой шаблон Blazor WebAssembly ................................................................................. 184
Хостинг приложений Blazor WebAssembly в ASP.NET Core .................................................. 185
Добавление хостируемого приложения Blazor WebAssembly к существующему
приложению ASP.NET Core ............................................................................................... 185
Проверка форм в Blazor .................................................................................................. 186
NavigationManager и передача состояния между страницами .............................................. 188
Настройка Blazor Server ................................................................................................... 189
Пользовательские элементы в Blazor ................................................................................. 190
Жизненный цикл Razor-компонента .................................................................................. 191
Пустой шаблон Blazor Server .............................................................................................. 192
Заключение................................................................................................................................... 193
Что следует помнить ................................................................................................................... 193
Контрольные вопросы ................................................................................................................. 194
Ответы .................................................................................................................................. 194
Основные термины ...................................................................................................................... 195
Глава 8. SignalR и двусторонняя связь .......................................................................................... 196
Введение ....................................................................................................................................... 196
Структура ..................................................................................................................................... 197
Цели .............................................................................................................................................. 197
Предварительные условия .......................................................................................................... 197
Общие сведения о библиотеке SignalR ...................................................................................... 197
WebSocket ............................................................................................................................. 198
Server-Sent Events................................................................................................................. 198
Длительный опрос ............................................................................................................... 199
Создание хаба SignalR на сервере .............................................................................................. 199
Строго типизированный хаб ................................................................................................ 202
Внедрение зависимостей в хаб SignalR ................................................................................. 203
JSON и MessagePack ............................................................................................................ 204
JavaScript-клиент для SignalR ..................................................................................................... 204
Добавление HTML-разметки для клиента SignalR .......................................................................... 205
Применение функций SignalR в JavaScript ................................................................................... 208
.NET-клиент для SignalR ............................................................................................................. 211
Заключение................................................................................................................................... 214
Что следует помнить ................................................................................................................... 214
Контрольные вопросы ................................................................................................................. 214
Ответы .................................................................................................................................. 215
Основные термины ...................................................................................................................... 215
Глава 9. gRPC в ASP.NET Core ........................................................................................................ 216
Введение ....................................................................................................................................... 216
Структура ..................................................................................................................................... 216
Цели .............................................................................................................................................. 217
Предварительные условия .......................................................................................................... 217
Общие сведения о технологии gRPC ................................................................................. 217
Protobuf как основной протокол сериализации сообщений ..................................................... 218
Настройка сервера gRPC ............................................................................................................. 218
Структура проекта ASP.NET Core gRPC .............................................................................. 219
Типы вызовов и типы данных gRPC .................................................................................. 221
JSON-перекодирование в gRPC .......................................................................................... 224
Настройка клиента gRPC ............................................................................................................ 227
Использование фабрики клиентов gRPC и внедрение зависимостей ...................................... 230
Обзор типов данных gRPC.......................................................................................................... 232
Перечисления Protobuf ........................................................................................................ 233
Использование коллекций с помощью ключевого слова repeated ........................................ 234
Функциональность словаря в Protobuf ............................................................................... 234
Использование ключевого слова oneof в Protobuf ............................................................... 234
Общеизвестные типы данных..................................................................................................... 235
Заключение................................................................................................................................... 236
Что следует помнить ................................................................................................................... 237
Контрольные вопросы ................................................................................................................. 237
Ответы .................................................................................................................................. 238
Основные термины ...................................................................................................................... 238
Глава 10. Машинное обучение с помощью ML.NET .......................................................................... 239
Введение ....................................................................................................................................... 239
Структура ..................................................................................................................................... 240
Цели .............................................................................................................................................. 240
Предварительные условия .......................................................................................................... 240
Основы ML.NET .......................................................................................................................... 240
Типы машинного обучения ................................................................................................. 242
Обучение с учителем .................................................................................................. 242
Обучение без учителя ................................................................................................. 242
Обучение с подкреплением ............................................................................................... 242
Начало работы с ML.NET ................................................................................................... 243
Установка инструментов ML.NET ......................................................................................... 243
Использование ML.NET для создания первой модели МО ........................................................ 244
Выбор задачи для МО .......................................................................................................... 246
Бинарная классификация .................................................................................................... 246
Многоклассовая классификация ........................................................................................ 248
Регрессия .............................................................................................................................. 249
Рекомендации ....................................................................................................................... 250
Прогнозирование ................................................................................................................. 251
Классификация изображений ............................................................................................. 253
Кластеризация ...................................................................................................................... 254
Обнаружение отклонений ................................................................................................... 254
Ранжирование ...................................................................................................................... 255
Обучение и оценка модели .................................................................................................... 255
Показатели бинарной классификации ............................................................................... 256
Показатели многоклассовой классификации .................................................................... 256
Классификация изображений ............................................................................................. 256
Прогнозирование ................................................................................................................. 257
Регрессия и рекомендации .................................................................................................. 257
Показатели кластеризации .................................................................................................. 257
Показатели обнаружения отклонений ............................................................................... 258
Показатели ранжирования .................................................................................................. 258
Использование малокодового построителя моделей ............................................................... 258
Заключение................................................................................................................................... 261
Что следует помнить ................................................................................................................... 262
Контрольные вопросы ................................................................................................................. 262
Ответы .................................................................................................................................. 263
Основные термины ...................................................................................................................... 263
Глава 11. Микросервисы и контейнеризация в .NET 7 ..................................................................... 265
Введение ....................................................................................................................................... 265
Структура ..................................................................................................................................... 266
Цели .............................................................................................................................................. 266
Предварительные условия .......................................................................................................... 266
Контейнеры Docker ..................................................................................................................... 266
Контейнеры и образы контейнеров .................................................................................... 267
Базовые образы и уровни .................................................................................................... 267
Изоляция сети и сопоставление портов ............................................................................. 268
Изоляция файловой системы и монтирование каталогов хоста ...................................... 268
Установка Docker в Linux ................................................................................................... 269
Установка Docker на Mac .................................................................................................... 269
Установка Docker в Windows .............................................................................................. 269
Базовый образ Docker для .NET 7 ...................................................................................... 270
Создание приложения с поддержкой Docker .................................................................... 271
Добавление поддержки Docker в существующее приложение ........................................ 272
Структура файла Dockerfile ................................................................................................ 273
Создание и запуск контейнера Docker ............................................................................... 275
Оркестрация приложений с помощью Docker Swarm .............................................................. 275
Базовая оркестрация помощью Docker Compose .............................................................. 276
Запуск Docker Swarm ........................................................................................................... 278
Оркестрация приложений с помощью Kubernetes .................................................................... 279
Установка Kubernetes в Linux ............................................................................................. 279
Установка Kubernetes на Mac ............................................................................................. 280
Добавление сервисов в кластер Kubernetes ....................................................................... 281
Заключение...................................................................................................................... 282
Что следует помнить ......................................................................................................... 282
Контрольные вопросы ....................................................................................................... 282
Ответы ............................................................................................................................ 283
Основные термины ........................................................................................................... 283
Предметный указатель ...................................................................................................... 285
Скриншоты:
Время раздачи: с 10 до 20 (минимум до появления первых 3-5 скачавших)