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 live communication service using SignalR

The SignalR server library is included in ASP.NET Core, but the JavaScript client library is not automatically included in the project. Remember, SignalR supports multiple client types, and a web page using JavaScript is just one of them.

We will use the Library Manager CLI to get the client library from unpkg, a content delivery network (CDN) that can deliver anything found in the Node.js package manager.

Let’s add a SignalR server-side hub and client-side JavaScript to an ASP.NET Core MVC project to implement a chat feature that allows visitors to send messages to:

  • Everyone currently using the website.
  • Dynamically defined groups.
  • A single specified user.

Good Practice: In a production solution, it would be better to host the SignalR hub in a separate web project so that it can be hosted and scaled independently from the rest of the website. Live communication can often put excessive...