.NET 8: приложения и сервисы. Практика создания проектов с использованием Blazor, Net Maui, gRPC, GraphQL

Марк Дж. Прайс

Обложка:


Структура книги

Введение

Глава 1 посвящена настройке среды разработки и концепциям использования приложений Visual Studio 2022, Visual Studio Code и JetBrains Rider. Вы также узнаете, как получить справочные сведения и связаться со мной (автором этой книги) в целях решения проблем или отправки отзыва для улучшения книги.

Данные

Глава 2 посвящена настройке SQL Server под Windows и в облаке Azure с помощью SQL Database. Затем вы создадите демонстрационную БД вымышленной организации Northwind. С помощью библиотек ADO.NET (Microsoft.Data.SqlClient) вы научитесь писать код низкоуровневого доступа для достижения максимальной производительности, а также упрощать разработку посредством Dappe— технологии преобразования объектов в данные.

Глава 3 рассказывает об использовании технологии преобразования объектов в данные более высокого уровня — Entity Framework Core (EF Core). Вы научитесь создавать библиотеки классов, определяющие модель EF Core, для работы с БД Northwind, созданной в главе 2. Эти библиотеки классов используются во многих последующих главах.

Глава 4 посвящена нативному облачному NoSQL-хранилищу данных Azure Cosmos DB. Вы узнаете, как считывать и записывать данные с помощью нативного API.

Библиотеки

В главе 5 рассказывается о повышении производительности, масштабируемости и продуктивности работы пользователей посредством одновременного выполнения нескольких действий с помощью потоков и задач.

В главе 6 рассматриваются вопросы решения таких распространенных практических задач, как форматирование текста и чисел с помощью инструмента Humanizer, обработка изображений в ImageSharp, логирование с библиотекой Serilog, преобразование объектов с помощью AutoMapper, генерация модульных тестов в FluentAssertions, проверка данных посредством FluentValidation и создание PDF документов в библиотеке QuestPDF.

В главе 7 рассказывается о способах решения таких популярных задач, как обработка дат и времени, работа с часовыми поясами, а также глобализация и локализация данных и пользовательского интерфейса приложения в рамках интернационализации. Помимо встроенных типов данных для работы с датами и временем, мы рассмотрим гораздо более совершенную стороннюю библиотеку Noda Time.

Сервисы

В главе 8 представлен наипростейший способ создания веб-сервисов на основе минимальных API в ASP.NET Core. Благодаря им отпадает необходимость в использовании классов-контроллеров. Вы узнаете, как сократить время запуска и количество требуемых ресурсов, используя инструментарий публикации Native AOT. Затем мы рассмотрим, как защитить и обезопасить веб-сервис, ограничивая количество запросов, а также используя технологии CORS, проверки подлинности и авторизации. Вы изучите способы тестирования веб-сервиса в новом HTTP- редакторе, встроенном в программу Visual Studio 2022, и с помощью расширения REST Client для Visual Studio Code.

В главе 9 речь пойдет о проектировании сервисов и добавлении в них средств повышения масштабируемости и надежности, таких как кэширование и очереди. Вы также научитесь справляться с
временными сбоями и решать длительные задачи с помощью фоновых сервисов.

Глава 10 знакомит с сервисом Azure Functions, настраиваемым для работы исключительно за счет ресурсов сервера. При инициации некоего действия, скажем отправки сообщения в очередь, загрузки
файла в хранилище или с указанной периодичностью запускается соответствующий наносервис.

В главе 11 рассматривается SignalR — технология для создания многопользоваельских сервисов, позволяющих рассылать сообщения всем или определенным клиентам в реальном времени, например
системам уведомлений и дашбордам с регулярно обновляемой информацией, в частности с котировками акций.

В главе 12 рассказывается о создании сервисов, обеспечивающих удобный единый канал агрегации данных из нескольких источников. Для реализации сервиса вы воспользуетесь платформой ChilliCream
GraphQL, содержащей сервер Hot Chocolate. Новое в этом издании книги — реализация функций пагинации, фильтрации, сортировки и подписки.

Глава 13 посвящена сборке эффективных gRPC-микросервисов. Вы узнаете о .proto-файлах для конфигурации сервисных контрактов и бинарном формате Protobuf в рамках сериализации сообщений. Путем транскодирования gRPC JSON вы реализуете поддержку gRPC-сервисов в браузерах. В этом изданиия описал приемы оптимизации запуска и уменьшения затрат памяти gRPC-сервиса с помощью инструментария публикации Native AOT, процесс работы с пользовательскими типами данных, в том числе десятичным значениями, а также способы реализации перехватчиков и обработчиков сбоев.

Приложения

Глава 14 посвящена созданию пользовательских веб-интерфейсов с помощью фреймворка MVC на платформе ASP.NET Core. Вы узнаете о синтаксисе Razor, тег-хелперах и фреймворке Bootstrap для быстрого прототипирования пользовательских интерфейсов.

В главе 15 вы займетесь разработкой компонентов пользовательского интерфейса с помощью нового унифицированного полностекового хостинга Blazor, пред- ставленного в .NET 8. Теперь допускается персональная настройка компонентов Blazor для выполнения приложения на сторонах клиента и сервера
одновременно. На случай, когда необходимо использовать такие объекты браузера, как локальное хранилище, вы узнаете о JS-взаимодействии.

Глава 16 рассматривает процессы разработки кросс-платформенных мобильных и классических приложений под системы Android, iOS, macOS и Windows. Вы познакомитесь с языком XAML, используемым для конфигурации графического пользовательского интерфейса приложения.

Резюме

В конце книги описываются способы получения дополнительной информации о разработке приложений и сервисов на C# и .NET, а также инструменты и навыки, необходимые каждому профессиональному разработчику .NET. В приложении приведены ответы на вопросы из разделов «Проверьте свои знания»
в конце каждой главы.