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

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

    XMLWordPrintableJSON

Details

    • Umbrella
    • Status: Resolved
    • Major
    • Resolution: Won't Fix
    • None
    • None
    • C# - Library
    • 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

            jensg Jens Geyer
            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