Microsoft Windows Communication Foundation (WCF) has always been go-to communication framework on Windows.
Microsoft did not migrate WCF to the .Net Core platform. The .Net Core platform is cross-platform, and Microsoft tightly coupled WCF to the
Windows operating system. The tight coupling makes it difficult for them to migrate WCF.
Microsoft recommends using .Net Core for all new application development. As Microsoft .Net Core does not support WCF, you have to migrate.
You could decide not to migrate at all and stay with the Microsoft .Net framework. A valid option, but you won’t be doing yourself a favor.
Microsoft’s future investment in .NET will be in .NET Core.
Microsoft recommends gRPC as the WCF alternative on .Net Core.
Migrating WCF services to use gRPC helps provide the RPC features, performance, an interoperability needed in modern apps.
gRPC Overview
 gRPC is the modern, lightweight communication protocol from Google.
 gRPC is a high-performance, open source, universal RPC framework that can run in any environment.
 It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication.
 Google designed gRPC to be performant and as efficient as possible.
 gRPC was initially developed by Google in 2015. Today, the Cloud Native Computing Foundation is in charge of distributing and developing the
communication technology.
 gRPC clients and servers can run and talk to each other in a variety of environments and can be written in any of gRPC’s supported languages. gRPC
Automatically generates servers and clients in 10+ languages so you can pick up any language of your favorite. So, for example, you can easily create a
gRPC server in Java with clients in Go, Python, or Ruby
 gRPC use protobuf as it’s serializing and something like “contracts” between client and server on the wire.
 gRPC has SSL/TLS integration and promotes the use of SSL/TLS to authenticate the server and encrypt all the data exchanged between the client and the
server.
WCf vs gRPC
Feature WCF gRPC
Objective Separate business code from networking
implementation.
Separate business code from interface definition and networking implementation
Define services and messages Service Contract, Operation Contract, and Data
Contract.
Uses proto file to declare services and messages
Language Contracts written in C# or Visual Basic. Protocol Buffer language
Interface definition In WCF, the interface of the service is described
through a C# interface. The WCF server
generates WSDL through reflection at runtime. Client
generators use the WSDL to create clients for the
service.
gRPC uses Protocol Buffers to describe the interface. communication interface is
defined using this Protocol Buffer definition language. This is stored in a .proto file.
Various generators are available that use the .proto file to generate client and server
stubs.
Wire format Configurable, including SOAP/XML, Plain XML, JSON,
and .NET Binary.
Protocol Buffer binary format (although it’s possible to use other formats
Protocol HTTP, TCP, MSMQ, or named pipes(IPC) HTTP/2
Message Format BasicHttp, NetTcp, NetMsMqBinding,
MsMqIntegrationBinding
Binary Format
Error handling FaultException<TDetail> to provide error information
that conforms to the SOAP Fault standard.
gRPC uses status codes and metadata.
Security Message Level encryption or Value encryption.
Authentication - Active Directory Integration,
Kerberos, LDAP, etc.
All major browsers only support HTTP/2 over TLS. So HTTP/2 will always use
encrypting using TLS. So will gRPC.
Windows Communication Foundation (WCF) and gRPC are both implementations of the Remote Procedure Call (RPC) pattern. gRPC aims to make calls to services that run on a different
machine, or in a different process, work seamlessly, like method calls in the client application. While the aims of WCF and gRPC are the same, the details of the implementation are quite
different. The following table sets out how the key features of WCF relate to gRPC, and where you can find more detailed explanations.

Presentation1.pptx

  • 1.
    Microsoft Windows CommunicationFoundation (WCF) has always been go-to communication framework on Windows. Microsoft did not migrate WCF to the .Net Core platform. The .Net Core platform is cross-platform, and Microsoft tightly coupled WCF to the Windows operating system. The tight coupling makes it difficult for them to migrate WCF. Microsoft recommends using .Net Core for all new application development. As Microsoft .Net Core does not support WCF, you have to migrate. You could decide not to migrate at all and stay with the Microsoft .Net framework. A valid option, but you won’t be doing yourself a favor. Microsoft’s future investment in .NET will be in .NET Core. Microsoft recommends gRPC as the WCF alternative on .Net Core. Migrating WCF services to use gRPC helps provide the RPC features, performance, an interoperability needed in modern apps.
  • 2.
    gRPC Overview  gRPCis the modern, lightweight communication protocol from Google.  gRPC is a high-performance, open source, universal RPC framework that can run in any environment.  It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication.  Google designed gRPC to be performant and as efficient as possible.  gRPC was initially developed by Google in 2015. Today, the Cloud Native Computing Foundation is in charge of distributing and developing the communication technology.  gRPC clients and servers can run and talk to each other in a variety of environments and can be written in any of gRPC’s supported languages. gRPC Automatically generates servers and clients in 10+ languages so you can pick up any language of your favorite. So, for example, you can easily create a gRPC server in Java with clients in Go, Python, or Ruby  gRPC use protobuf as it’s serializing and something like “contracts” between client and server on the wire.  gRPC has SSL/TLS integration and promotes the use of SSL/TLS to authenticate the server and encrypt all the data exchanged between the client and the server.
  • 3.
    WCf vs gRPC FeatureWCF gRPC Objective Separate business code from networking implementation. Separate business code from interface definition and networking implementation Define services and messages Service Contract, Operation Contract, and Data Contract. Uses proto file to declare services and messages Language Contracts written in C# or Visual Basic. Protocol Buffer language Interface definition In WCF, the interface of the service is described through a C# interface. The WCF server generates WSDL through reflection at runtime. Client generators use the WSDL to create clients for the service. gRPC uses Protocol Buffers to describe the interface. communication interface is defined using this Protocol Buffer definition language. This is stored in a .proto file. Various generators are available that use the .proto file to generate client and server stubs. Wire format Configurable, including SOAP/XML, Plain XML, JSON, and .NET Binary. Protocol Buffer binary format (although it’s possible to use other formats Protocol HTTP, TCP, MSMQ, or named pipes(IPC) HTTP/2 Message Format BasicHttp, NetTcp, NetMsMqBinding, MsMqIntegrationBinding Binary Format Error handling FaultException<TDetail> to provide error information that conforms to the SOAP Fault standard. gRPC uses status codes and metadata. Security Message Level encryption or Value encryption. Authentication - Active Directory Integration, Kerberos, LDAP, etc. All major browsers only support HTTP/2 over TLS. So HTTP/2 will always use encrypting using TLS. So will gRPC. Windows Communication Foundation (WCF) and gRPC are both implementations of the Remote Procedure Call (RPC) pattern. gRPC aims to make calls to services that run on a different machine, or in a different process, work seamlessly, like method calls in the client application. While the aims of WCF and gRPC are the same, the details of the implementation are quite different. The following table sets out how the key features of WCF relate to gRPC, and where you can find more detailed explanations.