Book Image

Building Blazor WebAssembly Applications with gRPC

By : Václav Pekárek
5 (1)
Book Image

Building Blazor WebAssembly Applications with gRPC

5 (1)
By: Václav Pekárek

Overview of this book

Building Blazor WebAssembly Applications with gRPC will take you to the next level in your web development career. After working through all the essentials of gRPC, Blazor, and source generators, you will be far from a beginner C# developer and would qualify as a developer with intermediate knowledge of the Blazor ecosystem. After a quick primer on the basics of Blazor technology, REST, gRPC, and source generators, you’ll dive straight into building Blazor WASM applications. You’ll learn about everything from two-way bindings and Razor syntax to project setup. The practical emphasis continues throughout the book as you steam through creating data repositories, working with REST, and building and registering gRPC services. The chapters also cover how to manage source generators, C# and debugging best practices, and more. There is no shorter path than this book to solidify your gRPC-enabled web development knowledge. By the end of this book, your knowledge of building Blazor applications with one of the most modern and powerful frameworks around will equip you with a highly sought-after skill set that you can leverage in the best way possible.
Table of Contents (10 chapters)

Using generic services for data manipulation

Each time we need to CRUD some record from the database, we will need to use our MediaLibraryDbContext class and write a LINQ query to retrieve the required data. To prevent typing the same lines of code, we will create a service class that will retrieve the data for us.

For reasons including concerns around security, we also should never expose database entities to the client. We can avoid this behavior by creating models that will be shared between the client and server part of the application. The client will only know about the public models, and not about database entities. The service class will CRUD the entities created in the previous section, but the caller of this method will only see the model as method parameters or result values. This can prevent unrequired modifications of the entities and create a more secure and extensible application.

Creating models

In this section, we will create two classes in the MediaLibrary...