=

Historie gRPC a podpora v .NET

Podpora gRPC sahá až do tradičního .NET Frameworku. Skutečně snadné a zábavné použití však přinesla až moderní verze .NET Core 3.1. Vývojáře potěší, že oproti jiným technologiím se gRPC rozvíjí pomaleji a není se třeba obávat neustálých aktualizací a zpětně nekompatibilních změn.

Technologie gRPC je v tomto ohledu skutečně stabilní. Největší zásluhy na moderní implementaci gRPC v .NETu má především James Newton-King, který je též autorem známého serializeru Newtonsoft.Json a výkonnostně zmodernizované knihovny System.Text.Json. Na platformě .NET lze založit nové projekty typu gRPC a vyvíjet tento typ služeb stejně pohodlně jako jiný typ aplikací.

V současné době mají .NET vývojáři k dispozici:

  • šablonu gRPC projektu
  • kompiler, který umí překládat Protobuf do C#
  • klientskou factory, která usnadňuje komunikaci s gRPC službami
  • reflection service pro generování specifikačního endpointu
  • CLI nástroj a GUI nástroj (grpc CLI a grpc UI)

Služby gRPC lze vyvíjet v klasickém prostředí Visual Studio nebo v modernějším IDE JetBrains Rider. Pro Rider existuje mnoho užitečných rozšíření s podporou Protocol Buffers.

S příchodem .NET 7 lze již gRPC hostovat na všech běžných platformách, především na Windows a na Linuxu. Zkušenosti s vývojem gRPC na platformě macOS mám také výborné. Služby gRPC mají podporu i ze strany IIS i HTTP.sys, ovšem zde je nutné nasazovat na Windows 11 nebo Windows Server 2022 a vyšší. Podpora Kestrelu je perfektní. V případě cloudové platformy Azure lze nasazovat na AKS a Azure Container Apps. Služby gRPC běží i v prostředí Azure App Service nad Linuxem a to od verze .NET 6.

Dále s příchodem .NET 7 začal Microsoft experimentovat také s propojením RESTu a gRPC. Nově lze jednoduše anotovat gRPC služby tak, že jsou dostupné i jako tradiční HTTP API. Jeden serverový kód tedy dokáže být konzumován jak gRPC klientem, tak tradičním HTTP klientem využívajícím formát JSON. Vrchol snažení nakonec přináší podpora automatického generování dokumentace do OAS skrze nástroje Swashbuckle.Swagger.

Microsoft v každé verzi .NET Core, aktuálně již .NET 7 provádí aktualizace, kterými vylepšuje výkonnost gRPC služeb. Přestože se funkčně od .NET Core 3.0 prakticky nic nezměnilo, výkonnost novějších verzí je výrazně lepší a platforma .NET nabízí suveréně nejlepší výkonnost gRPC služeb v porovnání s konkurencí.

image-20220118091628518

Hlavní nabídka

Úvod do gRPC
Historie a .NET
Komunikace
Protobuf
Návrh služeb
Nástroje
Cheatsheet
Školení gRPC

Miroslav Holec

Miroslav Holec

Jsem nezávislý konzultant a lektor na volné noze se zaměřením na vývojářské technologie Microsoftu. Školím ve firmách po celé České republice a na Slovensku.

kontakt zde

Dotazy, poptávky a objednávky

mirek@miroslavholec.cz
Loading