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
00:34 Free preview
What will you learn in this course?
01:17 Free preview
Who is this course for and prerequisites
00:34 Free preview
What is gRPC?
03:24
Where gRPC fits in the API ecosystem
00:48
gRPC vs WCF
00:53
gRPC vs RESTful APIs
02:23
When to use gRPC
01:54
Introduction to Protocol Buffers
01:11
What is a .proto file?
00:29
Syntax
02:00
Scalar types
01:10
Enums
00:48
Well-known types
01:31
Nullable types
02:00
Any
06:30
OneOf
03:33
Language constructs
06:14
Creating your first gRPC project
00:35
Analyzing the project structure
03:45
Running the default template project
00:23
Code generation
00:44
gRPC types
02:43
Defining a gRPC service
03:12
Implementing a gRPC service
02:38
Unary Type
01:06
Client Streaming Type
02:18
Server Streaming Type
01:33
Bi-Directional Streaming Type
01:22
Creating & configuring a gRPC client project
02:55
What is a Channel and how can we use it?
00:49
Creating a channel
00:43
Configuring a channel
00:46
Creating a client
00:56
Consuming a Unary Type method
01:32
Consuming a Client Streaming method
02:25
Consuming a Server Streaming method
01:58
Consuming a Bi-Directional Streaming method
02:25
Setting call deadlines
02:13
Sending cancelation requests
04:12
Consuming gRPC from an MVC app
06:14
HTTP Request and Response in the context of gRPC
02:35
Metadata
04:29
Trailers
03:45
gRPC status codes
01:55
Treating and working with Exceptions
02:57
Introducing interceptors
01:44
Client interceptors
01:22
Implementing client interceptors
06:32
Server interceptors
00:36
Implementing server interceptors
03:55
Middlewares vs Interceptors
01:16
Enabling compression
04:18
Avoiding compression
01:17
Client side load balancing
04:53
Choosing another policy
00:41
Transient fault handling in gRPC
02:57
Implementing a retry policy
06:49
Implementing a hedging policy
02:43
Writing unit tests
06:52
Writing integration tests
08:19
Using Postman
03:31
Security levels
01:56
Adding authentication and authorization to the server
04:31
Provide call credentials in the client application
04:24
Health checks
04:34
Discovering services with Reflection
05:52
Implementing transcoding
05:23
grpc-web
09:56
Code-first gRPC
07:39
Conclusion
00: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

Getting Started: Building .NET Applications on AWS
course

Getting Started: Building .NET Applications on AWS

Learn how to build and deploy .NET applications on AWS using CDK, Lambda, DynamoDB, S3, and more.

Learn More
What's new in C# 14
blog

What's new in C# 14

This guide covers every new C# 14 feature, explains its benefits, and provides practical code examples to help you navigate how you can use them.

Learn More
Let's Build It: AI Chatbot with RAG in .NET Using Your Data
course

Let's Build It: AI Chatbot with RAG in .NET Using Your Data

Build a Retrieval-Augmented Generation (RAG) chatbot that can answer questions using your data.

Learn More
From Zero to Hero: SignalR in .NET
course

From Zero to Hero: SignalR in .NET

Enable enterprise-grade real-time communication for your web apps with SignalR.

Learn More
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