Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-4541

Use new project system in "lib/csharp" and define supported platforms

    XMLWordPrintableJSON

    Details

    • Type: Umbrella
    • Status: Resolved
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: C# - Library
    • Labels:
      None

      Description

      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), 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. 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.

        Attachments

          Activity

            People

            • Assignee:
              jensg Jens Geyer
              Reporter:
              cwe1ss Christian Weiss
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 10m
                10m