Sdílet prostřednictvím


gRPC pro vývojáře wcf (Windows Communication Foundation)

Poznámka:

Toto není nejnovější verze tohoto článku. Aktuální verzi najdete v tomto článku ve verzi .NET 9.

Upozorňující

Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v zásadách podpory .NET a .NET Core. Aktuální verzi najdete v tomto článku ve verzi .NET 9.

Důležité

Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.

Aktuální verzi najdete v tomto článku ve verzi .NET 9.

Tento článek obsahuje souhrn toho, proč ASP.NET Core gRPC je vhodný pro vývojáře windows Communication Foundation (WCF), kteří chtějí migrovat na moderní architektury a platformy.

Porovnání s WCF

I když se implementace a přístup pro gRPC liší, zkušenosti s vývojem a využíváním služeb s gRPC by měly být pro vývojáře WCF intuitivní. WCF a gRPC jsou architektury RPC (vzdálené volání procedur) se stejnými cíli:

  • Umožňuje kódovat, jako by klient a server byly na stejné platformě.
  • Poskytnutí zjednodušeného přenosného síťového rozhraní API

Obě platformy sdílejí požadavek na deklarování a implementaci rozhraní, i když se proces deklarace rozhraní liší. Mnoho typů volání RPC, která gRPC podporuje mapování dobře na vazby dostupné pro služby WCF. Další informace a příklady naleznete v tématu Migrace řešení WCF do gRPC.

Výhody gRPC

gRPC poskytuje lepší architekturu než jiné přístupy z následujících důvodů.

Výkon

gRPC používá protokol HTTP/2. Na rozdíl od HTTP/1.1, HTTP/2:

  • Je menší, rychlejší binární protokol.
  • Je efektivnější analyzovat počítače.
  • Podporuje požadavky multiplexingu přes jedno připojení. Multiplexing umožňuje odesílání více požadavků přes jedno připojení bez toho, aby mezi sebou neblokovaly požadavky. V protokolu HTTP/1.1 se blokování označuje jako "blokování hlavního řádku (HOL).

gRPC používá k serializaci zpráv protobuf, efektivní binární formát. Zprávy protobuf jsou:

  • Rychle serializovat a deserializovat.
  • Použijte menší šířku pásma než textové formáty.

gRPC je dobrým řešením pro mobilní zařízení a sítě s omezeními šířky pásma.

Vzájemná funkční spolupráce

Existují nástroje a knihovny gRPC pro všechny hlavní programovací jazyky a platformy, včetně .NET, Java, Python, Go, C++, Node.js, Swift, Dart, Ruby a PHP. Díky binárnímu drátovému formátu Protobuf a efektivnímu generování kódu pro každou platformu můžou vývojáři vytvářet výkonné aplikace pro různé platformy.

Použitelnost a produktivita

gRPC je komplexní řešení RPC. Funguje konzistentně napříč více jazyky a platformami. Poskytuje také vynikající nástroje s velkou částí často používaného kódu, který se automaticky generuje. Podobně jako WCF gRPC automaticky generuje zprávy a klienta silného typu. Vývojářský čas se uvolní, aby se zaměřil na obchodní logiku.

Streamování

gRPC má úplné obousměrné streamování, které poskytuje podobné funkce jako plně duplexní služby WCF. Streamování gRPC může fungovat přes běžná připojení k internetu, nástroje pro vyrovnávání zatížení a sítě služeb.

Konečné termíny, časové limity a zrušení

gRPC umožňuje klientům zadat maximální dobu dokončení rpc. Pokud je zadaný termín překročen, může server operaci zrušit nezávisle na klientovi. Konečné termíny a zrušení je možné rozšířit prostřednictvím následných volání gRPC, která vám pomůžou vynutit limity využití prostředků. Klienti mohou zastavit operace v případě překročení konečného termínu nebo dřívějšího termínu v případě potřeby. Klienti můžou například zastavit operace kvůli interakci uživatele.

Zabezpečení

GRPC může používat protokol TLS a HTTP/2 k zajištění komplexního šifrovaného připojení mezi klientem a serverem. Podpora ověřování klientských certifikátů dále zvyšuje zabezpečení a důvěryhodnost mezi klientem a serverem.

gRPC jako cesta migrace pro WCF do .NET Core a .NET 5

.NET Core a .NET 5 označují posun způsobem, jakým Microsoft poskytuje řešení pro vzdálenou komunikaci vývojářům, kteří chtějí poskytovat služby napříč celou řadou platforem. .NET Core a .NET 5 podporují volání služeb WCF, ale nenabízí podporu na straně serveru pro hostování WCF.

Pro modernizaci aplikací WCF existují dvě doporučené cesty:

  • GRPC je založená na moderních technologiích a stala se nejoblíbenější volbou v komunitě vývojářů pro aplikace RPC. Od .NET Core 3.0 mají moderní platformy .NET vynikající podporu pro gRPC. Migrace služeb WCF pro použití gRPC pomáhá poskytovat funkce RPC, výkon a interoperabilitu potřebnou v moderních aplikacích.

  • CoreWCF je komunitní úsilí, které přináší podporu hostování služeb WCF do .NET Core a .NET 5. K dispozici je verze Preview a projekt pracuje na tom, aby byl připravený na produkční prostředí. CoreWCF podporuje jenom podmnožinu funkcí WCF a aplikace rozhraní .NET Framework, které migrují na použití, budou potřebovat změny kódu a testování, aby byly úspěšné. CoreWCF je dobrou volbou, pokud aplikace musí udržovat kompatibilitu se stávajícími klienty, kteří volají služby WCF.

Začínáme

Podrobné pokyny k vytváření služeb gRPC v ASP.NET Core pro vývojáře WCF najdete v tématu ASP.NET Core gRPC pro vývojáře WCF.