=

Historie gRPC a .NET

Služby gRPC navrhla společnost Google v roce 2015. Samotný název odkazuje na Google Remote Procedure Call, ačkoliv první písmeno je občas vykládáno jako označení verze. Komunikace vyžaduje protokol HTTP/2 a Protocol Buffers serializaci. Protobuf přebírají i roli neutrálního jazyka, díky čemuž jsou používány k samotnému návrhu gRPC služeb metodou contract first. Mezi výhody gRPC služeb patří rychlost a multiplatformní využití.

Použití Protobuf formátu umožňuje použití širokého spektra nástrojů, které umožňují vygenerovat klientský a serverový kód v různých programovacích jazycích. Od počátku se jedná o výhodu, která eliminuje zbytečné debaty ohledně formátu dat a šetří tak vývojářům čas. Na YouTube lze najít mnoho zajímavých přednášek od velkých společností, které již gRPC používají. Zmínit lze mimo jiné Netflix, Spotify, Dropbox, IBM, Cisco nebo Uber.

gRPC služby hojně využívají princip streamingu, díky kterému dokáží rychle vyměňovat zprávy mezi klientem a serverem bez drahého handshaku, na který jsme zvyklý u klasických HTTP (REST) služeb. Od svého počátku naplňují gRPC svůj význam a jsou orientovány na tzv. volání procedur. Tím se liší od REST služeb, které jsou orientovány datově. Zabezpečení komunikace obvykle zajišťuje TLS a autentizace pomocí tokenů.

gRPC v .NET komunitě

První a poněkud bídnou podporu získaly gRPC služby již na starém .NET frameworku. Skutečný úspěch zaznamenala až verze moderního .NET Core 3.0 frameworku, která přinesla plnou podporu pro vytváření a konzumaci gRPC API.

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

  • šablonu nového 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. Rider v současné době neprovádí automatickou kompilaci Protobuf souborů a je nutné podle potřeby zkompilovat projekt jako celek.

Microsoft v každé verzi .NET Core, aktuálně již .NET 6 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í.

Hlavní nabídka

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

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