gRPC dla deweloperów programu Windows Communication Foundation (WCF)
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
Ważne
Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany, zanim zostanie wydany komercyjnie. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
Ten artykuł zawiera podsumowanie, dlaczego ASP.NET Core gRPC jest dobrym rozwiązaniem dla deweloperów programu Windows Communication Foundation (WCF), którzy chcą przeprowadzić migrację do nowoczesnych architektur i platform.
Porównanie z usługą WCF
Chociaż implementacja i podejście różnią się w przypadku gRPC, doświadczenie w tworzeniu i używaniu usług za pomocą usługi gRPC powinno być intuicyjne dla deweloperów WCF. WCF i gRPC to struktury RPC (zdalne wywołanie procedury) z tymi samymi celami:
- Umożliwia kod, tak jakby klient i serwer znajdują się na tej samej platformie.
- Zapewnianie uproszczonego przenośnego interfejsu API sieci.
Obie platformy mają wymóg deklarowania i implementowania interfejsu, chociaż proces deklarowania interfejsu jest inny. Wiele typów wywołań RPC, które gRPC obsługuje mapowania na powiązania dostępne dla usług WCF. Aby uzyskać więcej informacji i przykładów, zobacz Migrowanie rozwiązania WCF do usługi gRPC.
Korzyści wynikające z gRPC
GRPC zapewnia lepszą strukturę niż inne podejścia z następujących powodów.
Wydajność
GRPC używa protokołu HTTP/2. W przeciwieństwie do http/1.1, HTTP/2:
- Jest mniejszym, szybszym protokołem binarnym.
- Jest wydajniejszy w przypadku komputerów do analizowania.
- Obsługuje multipleksowanie żądań za pośrednictwem jednego połączenia. Multipleksowanie umożliwia wysyłanie wielu żądań za pośrednictwem jednego połączenia bez blokowania siebie żądań. W przypadku protokołu HTTP/1.1 blokowanie jest nazywane "blokowaniem nagłówka (HOL).
GRPC używa protobuf, wydajnego formatu binarnego, aby serializować komunikaty. Komunikaty Protobuf to:
- Szybkie serializowanie i deserializowanie.
- Używaj mniejszej przepustowości niż formaty tekstowe.
gRPC to dobre rozwiązanie dla urządzeń przenośnych i sieci z ograniczeniami przepustowości.
Współdziałanie
Istnieją narzędzia i biblioteki gRPC dla wszystkich głównych języków programowania i platform, w tym .NET, Java, Python, Go, C++, Node.js, Swift, Dart, Ruby i PHP. Dzięki formatowi przewodu binarnego Protobuf i wydajnemu generowaniu kodu dla każdej platformy deweloperzy mogą tworzyć międzyplatformowe, wydajne aplikacje.
Użyteczność i produktywność
gRPC to kompleksowe rozwiązanie RPC. Działa spójnie w wielu językach i platformach. Zapewnia również doskonałe narzędzia, z dużą częścią kodu kociołowego generowanego automatycznie. Podobnie jak WCF, gRPC automatycznie generuje komunikaty i silnie typizowanego klienta. Czas dewelopera można zwolnić, aby skupić się na logice biznesowej.
Przesyłanie strumieniowe
GRPC ma pełne dwukierunkowe przesyłanie strumieniowe, które zapewnia podobne funkcje do pełnych usług dwukierunkowych WCF. Przesyłanie strumieniowe gRPC może działać za pośrednictwem zwykłych połączeń internetowych, modułów równoważenia obciążenia i siatki usług.
Terminy, przekroczenia limitu czasu i anulowanie
GRPC umożliwia klientom określenie maksymalnego czasu zakończenia procedury RPC. Jeśli określony termin zostanie przekroczony, serwer może anulować operację niezależnie od klienta. Terminy i odwołania można propagować za pomocą kolejnych wywołań gRPC, aby ułatwić wymuszanie limitów użycia zasobów. Klienci mogą zatrzymywać operacje po przekroczeniu terminu ostatecznego lub wcześniejszego w razie potrzeby. Na przykład klienci mogą zatrzymywać operacje z powodu interakcji użytkownika.
Zabezpieczenia
Usługa gRPC może używać protokołów TLS i HTTP/2 do zapewnienia kompleksowego połączenia szyfrowanego między klientem a serwerem. Obsługa uwierzytelniania certyfikatu klienta dodatkowo zwiększa bezpieczeństwo i zaufanie między klientem a serwerem.
gRPC jako ścieżka migracji dla programu WCF do platformy .NET Core i platformy .NET 5
Platforma .NET Core i .NET 5 oznaczają zmianę sposobu, w jaki firma Microsoft dostarcza rozwiązania komunikacji zdalnej deweloperom, którzy chcą dostarczać usługi na różnych platformach. Platformy .NET Core i .NET 5 obsługują wywoływanie usług WCF, ale nie oferują obsługi po stronie serwera na potrzeby hostowania usługi WCF.
Istnieją dwie zalecane ścieżki do modernizacji aplikacji WCF:
GRPC opiera się na nowoczesnych technologiach i stał się najpopularniejszym wyborem w całej społeczności deweloperów dla aplikacji RPC. Począwszy od platformy .NET Core 3.0, nowoczesne platformy .NET mają doskonałą obsługę biblioteki gRPC. Migrowanie usług WCF do korzystania z gRPC pomaga zapewnić funkcje RPC, wydajność, współdziałanie potrzebne we nowoczesnych aplikacjach.
CoreWCF to społeczność, która umożliwia obsługę hostowania usług WCF na platformach .NET Core i .NET 5. Dostępna jest wersja zapoznawcza i projekt pracuje nad gotowością do produkcji. Program CoreWCF obsługuje tylko podzestaw funkcji programu WCF, a aplikacje platformy .NET Framework, które są migrowane w celu jej używania, będą wymagały zmian kodu i testowania w celu pomyślnego przeprowadzenia testów. CoreWCF jest dobrym wyborem, jeśli aplikacja musi zachować zgodność z istniejącymi klientami wywołującymi usługi WCF.
Rozpocznij
Aby uzyskać szczegółowe wskazówki dotyczące tworzenia usług gRPC w programie ASP.NET Core dla deweloperów WCF, zobacz ASP.NET Core gRPC dla deweloperów WCF