Skip to content

Commit 4c410dc

Browse files
Update docs on the recommended C# implementation (#1278)
* update README.md * update implementation_comparison.md * Update README.md Co-authored-by: James Newton-King <[email protected]> Co-authored-by: James Newton-King <[email protected]>
1 parent 650aaa1 commit 4c410dc

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# gRPC for .NET
22

3-
## Available now on .NET Core 3.0!
4-
53
gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC enables client and server applications to communicate transparently, and simplifies the building of connected systems.
64

75
gRPC functionality for .NET Core 3.0 includes:
@@ -10,10 +8,13 @@ gRPC functionality for .NET Core 3.0 includes:
108
* [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client) &ndash; A gRPC client for .NET Core that builds upon the familiar `HttpClient`. The client uses new HTTP/2 functionality in .NET Core.
119
* [Grpc.Net.ClientFactory](https://www.nuget.org/packages/Grpc.Net.ClientFactory) &ndash; gRPC client integration with `HttpClientFactory`. The client factory allows gRPC clients to be centrally configured and injected into your app with DI.
1210

13-
Please note that gRPC for .NET does not replace [gRPC for C#](https://github.com/grpc/grpc/tree/master/src/csharp) (gRPC C# API over native C-core binaries). These implementations coexist and share many of the same APIs to avoid lock-in. There are currently no plans for one implementation to replace the other one. gRPC for C# is the recommended solution for frameworks that gRPC for .NET does not support, such as .NET Framework.
14-
1511
For more information, see [An introduction to gRPC on .NET](https://docs.microsoft.com/aspnet/core/grpc/).
1612

13+
## gRPC for .NET is now the recommended implementation!
14+
15+
Starting from May 2021, gRPC for .NET is the recommended implemention of gRPC for C#. The original [gRPC for C#](https://github.com/grpc/grpc/tree/master/src/csharp) implementation (distributed as the `Grpc.Core` nuget package) is now in maintenance mode and will be deprecated in the future.
16+
See [blogpost](https://grpc.io/blog/grpc-csharp-future/) for more details.
17+
1718
## To start using gRPC for .NET
1819

1920
The best place to start using gRPC for .NET is the gRPC template that comes with .NET Core 3.0. Use the template to [create a gRPC service website and client](https://docs.microsoft.com/aspnet/core/tutorials/grpc/grpc-start).

doc/implementation_comparison.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,17 @@ This document summarizes the differences between the two available implementatio
1111

1212
## Criteria for choosing between grpc-dotnet and gRPC C#
1313

14-
One might choose one or the other implementation mostly for one of these reasons
14+
Starting from May 2021, gRPC for .NET is the recommended implemention of gRPC for C#.
15+
The original [gRPC C#](https://github.com/grpc/grpc/tree/master/src/csharp) implementation (distributed as the `Grpc.Core` nuget package) is now in maintenance mode and will be deprecated in the future.
16+
See [blogpost](https://grpc.io/blog/grpc-csharp-future/) for more details.
1517

16-
- avoid use of native code
17-
- ability to use one of the newer .NET Frameworks: grpc-dotnet requires at least .NET Core 3+ or .NET 5+ (.NET Core 3.1 LTS was released in December 2019 so legacy stacks might still be using an older framework)
18-
- want seamless integration with ASP.NET Core 3, dependency injection etc.
19-
- features available (see breakdown)
20-
- performance (while data we have data that seems to indicate that grpc-dotnet peforms at least as well as Grpc.Core, we strongly encourage to run your own benchmarks if performance matters for your application)
18+
Here are some key points in which the two implementation differ:
2119

20+
- grpc-dotnet avoids the use of native code (while Grpc.Core use the native C-core library internally)
21+
- grpc-dotnet requires a newer version of .NET (see the "Framework supported" section)
22+
- grpc-dotnet server integrates seamlessly ASP.NET Core (and allows e.g. dependency injection)
23+
- performance (while data we have data that seems to indicate that grpc-dotnet peforms at least as well as Grpc.Core, we strongly encourage to run your own benchmarks if performance matters for your application)
24+
- features available (see breakdown below)
2225
## Frameworks supported
2326

2427
Grpc.Core supports a wide range of .NET Framework versions, included some very old ones. A more detailed overview is [here]( https://github.com/grpc/grpc/tree/master/src/csharp#supported-platforms)

0 commit comments

Comments
 (0)