Thanks for your reply Jan, my apologies I should have been more specific in 
what our issue was. Specifically, our current generations of service 
objects from our protos yields C# code that utilizes the Channel class 
<https://grpc.github.io/grpc/csharp/api/Grpc.Core.Channel.html>, whereas 
their C# compiler with the new native .NET gRPC implementation is expecting 
services to be implemented with the ChannelBase class 
<https://grpc.github.io/grpc/csharp-dotnet/api/Grpc.Core.ChannelBase.html>. 
When we update our protoc version to 3.13.0 we can see the generated 
implementations utilize ChannelBase where before they use Channel. As far 
as I understand it from our client, the Channel class no longer exists in 
the .NET gRPC implementation they are using. Below is an example of our 
generated code difference.

How our code currently generates one of our services:

public ServiceManagerClient(grpc::Channel channel) : base(channel)
{
}

When we use protoc 3.13.0:

public SystemConfigClient(grpc::ChannelBase channel) : base(channel)
{
}

Let me know if this is not clear or if you need more information.

On Monday, February 8, 2021 at 9:43:13 AM UTC-6 Jan Tattermusch wrote:

> The protobuf C# library has always worked just fine with the grpc-dotnet 
> implementation. We've made some changes in the generated code over time, 
> but even the ancient versions of the generated code should just work with 
> grpc-dotnet.
>
> In gRPC C# (not the codegen) we've made some changes to enable the 
> grpc-dotnet functionality. Your best best is to look a the version of 
> Grpc.Core.Api and Google.Protobuf that's being included by the early 
> versions of grpc-dotnet and you can be sure that those work just fine - 
> e.g the first stable version of Grpc.AspNetCore.Server is using 
> Grpc.Core.Api 2.23.0 (but yeah the prereleases before that also worked just 
> fine).
>
> Btw, when you don't specify what broke on your end, it's kind of 
> impossible to tell what change could have caused it.
>
> On Wednesday, February 3, 2021 at 5:14:54 PM UTC+1 Luke S wrote:
>
>> I am currently working as a developer for a C++ gRPC Server project, and 
>> one of my server clients is using C# to interact with our server. Their 
>> client code currently utilizes the older gRPC C# library 
>> <https://github.com/grpc/grpc/tree/master/src/csharp> but they have a 
>> need to move to the more modern modern gRPC C# .NET framework 
>> <https://github.com/grpc/grpc-dotnet>. They noted that when they 
>> attempted to switch over to this more modern framework, their client code 
>> no longer compiled due to compilation issues in the C# proto wrapper files 
>> we generated for them.
>>
>> The issue clearly seems to stem from the version of 
>> protoc.exe/grpc_csharp_plugin.exe we are using. Currently, the C++ install 
>> of gRPC that we have comes with version 3.5.0 of protoc.exe. When our 
>> client did the NuGet C# .NET install of gRPC, they were provided with a 
>> protoc.exe version of 3.13.0, which we took from them (along with their 
>> installed grpc_csharp_plugin.exe file). We used these two files, and these 
>> alone, to replace our existing exes at C:\Program Files\grpc\bin and 
>> noticed that, without any other changes, all of our C# files generated from 
>> proto, had different outputs. When we sent these newly generated files to 
>> our client, their project was able to properly compile with them where it 
>> could not before.
>>
>> Clearly a change was made between version 3.5.0 and 3.13.0 of protoc (and 
>> maybe also grpc_csharp_plugin) where file generations of C# files became 
>> compatible with your .NET framework. At what version did this occur? What 
>> is the earliest possible version of your C++ gRPC library that I can 
>> install to obtain the version of protoc/plugin to enable me to generate 
>> these more modern files for our clients?
>>
>> Your help is greatly appreciated!
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/26ca7527-09c1-420b-acdc-9ac3eafd337en%40googlegroups.com.

Reply via email to