From Zero to Hero: gRPC in .NET

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

About This Course

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.

Course Curriculum

3h 24m 13 sections
Welcome
0:34 Free preview
What will you learn in this course?
1:17 Free preview
Who is the course for and prerequisites
0:34 Free preview
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

Meet Your Instructor

Irina Scurtu

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.

View all courses by Irina Scurtu

What's New

Deep Dive: Solution Architecture
course

Deep Dive: Solution Architecture

Master solution architecture and turn business needs into scalable, maintainable systems.

Learn More
Migrating: ASP.NET Web APIs to ASP.NET Core
course

Migrating: ASP.NET Web APIs to ASP.NET Core

A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core.

Learn More
Getting Started: Caching in .NET
course

Getting Started: Caching in .NET

Let's make the hardest thing in programming easy for .NET software engineers.

Learn More
From Zero to Hero: Testing with xUnit in C#
course

From Zero to Hero: Testing with xUnit in C#

Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library.

Learn More
Create a ChatGPT Console AI Chatbot in C#
blog

Create a ChatGPT Console AI Chatbot in C#

This walkthrough is your hands-on entry point to create a basic C# console application that talks to ChatGPT using the OpenAI API.

Learn More