Book Image

Apps and Services with .NET 8 - Second Edition

By : Mark J. Price
5 (7)
Book Image

Apps and Services with .NET 8 - Second Edition

5 (7)
By: Mark J. Price

Overview of this book

Elevate your practical C# and .NET skills to the next level with this new edition of Apps and Services with .NET 8. With chapters that put a variety of technologies into practice, including Web API, gRPC, GraphQL, and SignalR, this book will give you a broader scope of knowledge than other books that often focus on only a handful of .NET technologies. You’ll dive into the new unified model for Blazor Full Stack and leverage .NET MAUI to develop mobile and desktop apps. This new edition introduces the latest enhancements, including the seamless implementation of web services with ADO.NET SqlClient's native Ahead-of-Time (AOT) support. Popular library coverage now includes Humanizer and Noda Time. There’s also a brand-new chapter that delves into service architecture, caching, queuing, and robust background services. By the end of this book, you’ll have a wide range of best practices and deep insights under your belt to help you build rich apps and efficient services.
Table of Contents (19 chapters)
18
Index

Building a service that supports GraphQL

There is no dotnet new project template for GraphQL, so we will use the ASP.NET Core Empty project template. Even though GraphQL does not have to be hosted on a web server because it is not tied to HTTP, it is a sensible choice to get started. We will then add a package reference for GraphQL support:

  1. Use your preferred code editor to add a new project, as defined in the following list:
    • Project template: ASP.NET Core Empty / web
    • Solution file and folder: Chapter12
    • Project file and folder: Northwind.GraphQL.Service
    • Other Visual Studio 2022 options:
      • Configure for HTTPS: Selected
      • Enable Docker: Cleared
      • Do not use top-level statements: Cleared
  2. In the project file, add a package reference for Hot Chocolate hosted in ASP.NET Core, as shown in the following markup:
    <ItemGroup>
      <PackageReference...