The first 200 students can use code LAUNCH20 to get 20% off our new 4 courses Deep Dive: Blazor, From Zero to Hero: Event-Driven Architecture, Getting Started: ASP.NET Core and Getting Started: Event Sourcing

From Zero to Hero: gRPC in .NET

Learn how to build gRPC applications in .NET using C#

gRPC (gRPC Remote Procedure Calls) is a high-performance remote procedure call framework initially created by Google. Since its public release, it has become one of the three most popular approaches to building APIs, not just in .NET but in any programming language (the other two being REST and GraphQL). Its use of Protocol Buffers, Bi-directional streaming, and integrated auth has made it one of the most performance and most popular frameworks, especially regarding internal service communication. It is used by companies like Google, Netflix, Square and Cisco, to name a few, and it is also part of the Cloud Native Computing Foundation. .NET has incredible first-party support for gRPC, and every .NET engineer should know how to utilize it to build scalable, clean and performance applications with gRPC. In this course, Irina Scurtu will take you from the very basics of gRPC to some advanced concepts on how to build and run gRPC applications.

Curriculum

Welcome (0:34)

What will you learn in this course? (1:17)

Who is the course for and prerequisites (0:34)

What is gRPC? (3:24)

Where gRPC fits in the API ecosystem (0:48)

gRPC vs WCF (0:53)

gRPC vs RESTful APIs (2:23)

When to use gRPC (1:54)

Introduction to Protocol Buffers (1:11)

What is a .proto file? (0:29)

Syntax (2:00)

Scalar types (1:10)

Enums (0:49)

Well-known types (1:31)

Nullable types (2:00)

Any (6:30)

OneOf (3:33)

Language constructs (6:14)

Creating your first gRPC project (0:35)

Analyzing the project structure (3:45)

Running the default template project (0:23)

Code generation (0:44)

gRPC types (2:44)

Defining a gRPC service (3:12)

Implementing a gRPC service (2:38)

Unary Type (1:06)

Client Streaming Type (2:18)

Server Streaming Type (1:33)

Bi-Directional Streaming Type (1:22)

Creating & configuring a gRPC client project (2:55)

What is a Channel and how can we use it? (0:49)

Creating a channel (0:43)

Configuring a channel (0:47)

Creating a client (0:56)

Consuming a Unary Type method (1:32)

Consuming a Client Streaming method (2:25)

Consuming a Server Streaming method (1:58)

Consuming a Bi-Directional Streaming method (2:25)

Setting call deadlines (2:13)

Sending cancelation requests (4:12)

Consuming gRPC from an MVC app (6:14)

HTTP Request and Response in the context of gRPC (2:35)

Metadata (4:29)

Trailers (3:45)

gRPC status codes (1:55)

Treating and working with Exceptions (2:57)

Introducing interceptors (1:44)

Client interceptors (1:22)

Implementing client interceptors (6:32)

Server interceptors (0:36)

Implementing server interceptors (3:55)

Middlewares vs Interceptors (1:23)

Enabling compression (4:20)

Avoiding compression (1:18)

Client side load balancing (4:53)

Choosing another policy (0:42)

Transient fault handling in gRPC (2:57)

Implementing a retry policy (6:49)

Implementing a hedging policy (2:43)

Writing unit tests (6:53)

Writing integration tests (8:56)

Using Postman (3:31)

Security levels (2:04)

Adding authentication and authorization to the server (4:31)

Provide call credentials in the client application (4:24)

Health checks (4:34)

Discovering services with Reflection (5:52)

Implementing transcoding (5:24)

grpc-web (9:56)

Code-first gRPC (7:40)

Conclusion (0:45)

Course Info

Level:
From Zero to Hero
Duration:
3h 24m
Rating (2,1K+):
star

Lifetime access

Add to Cart
Dometrain Pro

Want access to all of our courses? Subscribe to Dometrain Pro!

Try it for free!

About the Author

author_img

Irina Scurtu

Irina Scurtu (Dominte) is a software architect, international speaker, Microsoft MVP for developer technologies, and Microsoft certified trainer (MCT) with a wealth of experience. Having taught classes, workshops, and presentations for over 2,000 hours, Irina is passionate about coding and keeping abreast of the latest trends and best practices in software architecture and .NET. Twice a year, for five months each time, Irina teaches .NET and C# to aspiring software developers or people interested in software development or seeking to expand their knowledge. She is an active member of the community and has founded the DotNet Iasi User Group and the dotnetdays.ro conference, where she connects with like-minded developers who are eager to share their expertise and insights. Irina is also a prolific blogger, and her website, https://irina.codes, features a wealth of articles on various coding topics.

More courses by Irina Scurtu