gRPC + ASP.NET Core as a Migration Path for WCFs in .NET Core
Feature | WCF | ASP.Net Core + gRPC |
Platforms | Windows | Windows, Linux, MacOS |
Protocols | LRPC/Named Pipes/HTTP/TCP/MSMQ | Binary (GRPC) + HTTP2 (TCP/Named Pipes/LRPC) .AddProtocol(“ncacn_ip_tcp”, “8080”) .AddProtocol(“ncacn_np”, @”\pipe\MyService”) .AddProtocol(“ncalrpc”, “MyService”) By removing the ASP.NET Core stack and just using .NET Core |
Injected Aspects | Behaviors | ASP.NET Core DI Middleware/ gRPC interceptors |
Distributed Transactions | *Yes – [TransactionFlow], transactionscopes, and supported bindings | *No |
Transport Security | SSL/TLS | SSL/TLS |
Message Security | Certificates/credentials | Certificates/credentials https://docs.microsoft.com/en-us/aspnet/core/grpc/authn-and-authz?view=aspnetcore-3.0 |
Windows Authentication | Kerberos/NTLM | AAD Sync/ASFS + ASP.NET Core middleware |
Proxies/Contracts | Service Contracts/Data Contracts | Protocol Buffers |
Proxy-less Communication | WCF Channel Factory | † Protobuf-Net.GRPC |