Christian Weiss created THRIFT-4541:
---------------------------------------

             Summary: 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: Improvement
          Components: C# - Library
            Reporter: Christian Weiss


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