[ 
https://issues.apache.org/jira/browse/THRIFT-4541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16630898#comment-16630898
 ] 

Christian Weiss commented on THRIFT-4541:
-----------------------------------------

There seem to be some misunderstandings here.

 

Both folders, “csharp” and “netcore”, are written in C#. The main difference in 
the code is that the “netcore” project uses a lot of async/await code, apart 
from that it’s pretty much the same. So from a code perspective, IMO the 
“netcore” folder is like a fork of the “csharp” project. It might be 
interesting to merge them, but that’s a different/bigger project of course.

 

.NET Core is not a new language, so saying that .NET Core would make C# legacy 
isn’t possible.

 

What’s being discussed here is the PLATFORM support. (Full .NET framework, .NET 
Core, Xamarin, Mono, ...)  This is all about tooling and how the projects are 
compiled to get the proper nuget packages. this PR is just about switching to 
the new project format which makes targeting multiple platforms much easier. 

 

> Use new project system in "lib/csharp" and define supported platforms
> ---------------------------------------------------------------------
>
>                 Key: THRIFT-4541
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4541
>             Project: Thrift
>          Issue Type: Umbrella
>          Components: C# - Library
>            Reporter: Christian Weiss
>            Priority: Major
>
> As discussed in THRIFT-4535, it would be great if we could update 
> "lib/csharp" to use the new "csproj" project system. This will allow us to 
> target multiple platforms and the new ".NET Standard" with a single project.
> It's possible to support pretty much every platform there is with this new 
> project format (see e.g. 
> [Newtonsoft.Json|https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Newtonsoft.Json.csproj]),
>  however supporting older platforms requires more work as this requires more 
> #if statements etc.
> This means that we have to decide which platforms we want to support!
> Targeting ".NET Standard 2.0" would be the easiest option as this version 
> [covers a much larger API 
> surface|https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/].
>  However, this would also mean that people have to use rather recent versions 
> of their platforms to use it, as .NET Standard 2.0 requires the following 
> minimum versions:
>  * .NET 4.6.1 (adding support for .NET 4.5 is no problem though)
>  * .NET Core 2.0
>  * Mono 5.4
>  * Xamarin.iOS 10.14
>  * Xamarin.Mac 3.8
>  * Xamarin.Android 8.0
>  * UWP 10.0.16299
> I will create a PR that targets .NET Standard 2.0 and .NET 4.5 to show what 
> the new project files would look like. If the approach is OK for you in 
> general, then I can try to add support for whatever minimum versions you'd 
> like to support.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to