Привет, Харборожители!
С новым изданием «.NET 8: приложения и сервисы» вы сможете поднять свои навыки владения C# и .NET на новый уровень.
В книге описаны практические приемы использования различных технологий, включая Web API, gRPC, GraphQL и SignalR, что выделяет ее среди других источников. Она познакомит вас с новой унифицированной моделью Blazor Full Stack и расскажет, как использовать .NET MAUI для разработки мобильных и десктопных приложений.
В новом издании представлены последние достижения, включая бесшовную реализацию веб-сервисов со встроенной поддержкой Ahead-of-Time (AOT) ADO. NET SqlClient. Помимо других популярных библиотек, в книге рассматриваются Humanizer и Noda Time. Совершенно новая глава расскажет об архитектуре, кэшировании, организации очередей и приемах построения надежных фоновых сервисов.
Обретите глубокие знания и создайте многофункциональные и эффективные
приложения.
Вы научитесь:
узнавать, как хранить данные локально и в облаке и управлять ими с помощью SQL Server и Cosmos DB;
работать с такими технологиями, как gRPC и GraphQL;
научитесь использовать ADO.NET SqlClient для реализации веб-сервисов со встроенной поддержкой AOT;
видеть приемы использования Dapper для повышения производительности по сравнению с EF Core;
выяснять, как внедрять популярные сторонние библиотеки, такие как Serilog, FluentValidation, Humanizer и Noda Time;
исследовать новую унифицированную модель хостинга Blazor Full Stack.
Об авторе книги и научных редакторах
Марк Дж. Прайс (Mark J. Price) — сертифицированный специалист Microsoft по программам Programming in C# и Architecting Microsoft Azure Solutions, имеет более чем 20-летний опыт работы. С 1993 года Марк сдал свыше 80 экзаменов Microsoft по программированию и специализируется на подготовке к сдаче экзаменов других людей. С 2001 по 2003 год Марк занимался составлением официальных учебных программ для Microsoft в Редмонде, США. С коллегами он выпустил первые учебные курсы по C# еще в пору альфа-тестирования. В Microsoft Марк проводил «тренинг тренеров», готовя сертифицированных преподавателей компании к работе с C# и .NET. Большую часть своей карьеры Марк обучает студентов разного возраста — от 16-летних подростков до 70-летних пенсионеров, в большинстве своем профессиональных разработчиков. Имеет степень бакалавра компьютерных наук.
Трой Мартин — программист-самоучка, пишущий код больше десяти лет, причем последнее время в основном на C#. Глубоко мотивированный и увлеченный, он получил более 20 сертификатов по различным языкам программирования и движкам для разработки игр. Сейчас он занят разработкой своего первого независимого игрового проекта и стремится помочь единомышленникам достичь их собственных целей в программировании.
Киран Фут — программист-самоучка на C# с удивительным стремлением к изучению новых технологий и методов. Он постоянно отслеживает последние достижения в области C#, уделяя особое внимание веб-технологиям. Будучи ведущим разработчиком ПО в небольшой софтверной компании ConnX Business Solutions, расположенной в Великобритании, он помогает другим людям в приобретении новых навыков.
Структура книги
Введение
Глава 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. В приложении приведены ответы на вопросы из разделов «Проверьте свои знания»
в конце каждой главы.
Структура книги
Введение
Глава 1 посвящена настройке среды разработки и концепциям использования приложений Visual Studio 2022, Visual Studio Code и JetBrains Rider. Вы также узнаете, как получить справочные сведения и связаться со мной (автором этой книги) в целях решения проблем или отправки отзыва для улучшения книги.
Данные
Глава 2 посвящена настройке SQL Server под Windows и в облаке Azure с помощью SQL Database. Затем вы создадите демонстрационную БД вымышленной организации Northwind. С помощью библиотек ADO.NET (Microsoft.Data.SqlClient) вы научитесь писать код низкоуровневого доступа для достижения максимальной производительности, а также упрощать разработку посредством Dapper — технологии преобразования объектов в данные.
Глава 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. В приложении приведены ответы на вопросы из разделов «Проверьте свои знания» в конце каждой главы.
Подробнее ознакомиться с книгой «.NET 8: приложения и сервисы. Практика создания проектов с использованием Blazor, .NET MAUI, gRPC, GraphQL. 2-е изд.» можно на нашем сайте.
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
Для Хаброжителей скидка 25 % по купону — NET8
Mizantrop777
Ui не поддерживает же aot? Единственное что нашел - avalonia
NarkkoZ
Blazor вроде как поддерживает Aot. https://learn.microsoft.com/en-us/aspnet/core/blazor/webassembly-build-tools-and-aot?view=aspnetcore-9.0
vrdev
AOT для WebAssembly только
maxcat
UWP уже в 2к15 умел AOT, и чтобы сейчас dotnet 8 подружить с UWP придётся собрать dotnet под AOT
Ну а MAUI должен иметь возможность AOT как минимум для iOS