[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2019-01-31 Thread James E. King III (JIRA)


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

James E. King III commented on THRIFT-4541:
---

@jensg your work on {{netstd}} probably obsoletes this.

> 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
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> 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)


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-09-27 Thread Christian Weiss (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-09-16 Thread Jens Geyer (JIRA)


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

Jens Geyer commented on THRIFT-4541:


I'm just insisting on the fact that you can't on the spur of the moment declare 
c# as legacy, backed by virtually no facts and no consensus across the team. 
Since you did that in two tickets I had to make a point.

Even if a language degrades to something that only a fraction of the market 
uses (in todays highly polyglot landscape this basically affects every 
language), as long as there is a valid use case and user base we should strive 
to continue supporting that language. At least there should be some sort of 
consensus before we talk in public about some parts of Thrift being legacy.

Of course, what (in the case of C# framework) versions we are willing to 
support is another cup of tea. Thrift has always evolved along the evolution of 
the languages, we have modernized client libraries multiple times to keep pace. 
For example, we did that a while a go with the Go libraries, they have 
basically undergone a complete rewrite. That's all fine and in the spirit of 
the project.

 

> You are a snarky one aren't you

https://www.apache.org/foundation/how-it-works.html#philosophy

 

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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-09-16 Thread James E. King III (JIRA)


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

James E. King III commented on THRIFT-4541:
---

You are a snarky one aren't you... my understanding based on looking at the 
ecosystem is that .NET Core is the future, and .NET (numbered) is the past.  
Perhaps that is incorrect, given .NET 4.7.2 came out with the latest Windows 10 
update.  .NET Core seems much more compelling to me, providing cross-platform 
development without the need for something like Mono.

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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-09-15 Thread Jens Geyer (JIRA)


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

Jens Geyer commented on THRIFT-4541:


> I would recommend focusing on netcore for new development and leaving csharp 
> as legacy

I would recommend to leave C++ as legacy because we have Rust and Go. We also 
can throw out JS because we have TS.

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


AW: [jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-09-14 Thread Jens Geyer
No?

Sent from mobile device, please ignore spelling mistakes.

Von: ASF GitHub Bot (JIRA)
Gesendet: 14.09.2018 14:05
An: dev@thrift.apache.org
Betreff: [jira] [Commented] (THRIFT-4541) Use new project system in 
"lib/csharp" and define supported platforms


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

ASF GitHub Bot commented on THRIFT-4541:


jeking3 commented on issue #1532: [WIP] THRIFT-4541: Use new project system in 
lib/csharp
URL: https://github.com/apache/thrift/pull/1532#issuecomment-421337840


   I would recommend focusing on netcore for new development and leaving csharp 
as legacy.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-09-14 Thread ASF GitHub Bot (JIRA)


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

ASF GitHub Bot commented on THRIFT-4541:


jeking3 commented on issue #1532: [WIP] THRIFT-4541: Use new project system in 
lib/csharp
URL: https://github.com/apache/thrift/pull/1532#issuecomment-421337840
 
 
   I would recommend focusing on netcore for new development and leaving csharp 
as legacy.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-05-26 Thread Christian Weiss (JIRA)

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

Christian Weiss commented on THRIFT-4541:
-

What's your opinion regarding frameworks & versions we should target?

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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-05-08 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4541:


jeking3 commented on issue #1532: [WIP] THRIFT-4541: Use new project system in 
lib/csharp
URL: https://github.com/apache/thrift/pull/1532#issuecomment-379905863
 
 
   As long as the updates are infrequent I see no issue.  Keep updating this PR 
if the updates are infrequent (like, once daily).


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-05-01 Thread James E. King III (JIRA)

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

James E. King III commented on THRIFT-4541:
---

I'm happy to see any improvements in this space, so go for it.

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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-05-01 Thread Christian Weiss (JIRA)

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

Christian Weiss commented on THRIFT-4541:
-

Any feedback on this? I do not want to proceed until I have your feedback.

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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-09 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4541:


jeking3 commented on issue #1532: [WIP] THRIFT-4541: Use new project system in 
lib/csharp
URL: https://github.com/apache/thrift/pull/1532#issuecomment-379905863
 
 
   As long as the updates are infrequent I see no issue.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-09 Thread Christian Weiss (JIRA)

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

Christian Weiss commented on THRIFT-4541:
-

{quote}Question: What would be the difference between a branch in repo A that 
you can't control and a branch in repo B that you control and coordinate?
{quote}
See previous comments for my arguments. Also, it's your project and not mine so 
I don't want to make changes that you don't approve - this means that I have to 
wait for your approval on every PR anyway. Bringing the conversation to my fork 
just leads to confusion - it also wouldn't even work with your Jira-bot anymore 
etc...

The "frequent commits" will always happen in my fork of course - I'll only 
create PRs whenever something is ready or when I need feedback.

What's your concerns?

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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-09 Thread Jens Geyer (JIRA)

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

Jens Geyer commented on THRIFT-4541:


Question: What would be the difference between a branch in repo A that you 
can't control and a branch in repo B that you control and coordinate? 

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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-09 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4541:


cwe1ss commented on issue #1532: [WIP] THRIFT-4541: Use new project system in 
lib/csharp
URL: https://github.com/apache/thrift/pull/1532#issuecomment-379835040
 
 
   But since no-one is watching my fork I can only /cc you two (as I don't know 
anyone else here) and no-one else will have a chance to provide feedback. Also, 
I won't keep my fork forever so the discussion history would be lost. It would 
also be great if you guys could help at some point so having this in my fork is 
not ideal either.
   
   As I've said in my original post, I'd prefer a branch in this repo that I 
could create the PRs against. This would ensure that everything is in one 
place, that we can work together and that we don't break the production code 
until we're done. This seems to be what many other projects do in cases like 
this.
   
   Your thoughts?


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-09 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4541:


jeking3 commented on issue #1532: [WIP] THRIFT-4541: Use new project system in 
lib/csharp
URL: https://github.com/apache/thrift/pull/1532#issuecomment-379773631
 
 
   We can look at PRs in your fork as well. :)


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-09 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4541:


cwe1ss commented on issue #1532: [WIP] THRIFT-4541: Use new project system in 
lib/csharp
URL: https://github.com/apache/thrift/pull/1532#issuecomment-379760181
 
 
   Thanks for your response. As noted in my last paragraph, I’m looking for 
your feedback on my changes to know if I can proceed. I thought that creating a 
PR would be the easiest option for that.
   
   I’ll not do frequent commits on this PR.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-03 Thread Jens Geyer (JIRA)

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

Jens Geyer commented on THRIFT-4541:


I just made this an "Umbrella". The idea is to create sub-tasks for every PR 
that we plan to merge. 

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


[jira] [Commented] (THRIFT-4541) Use new project system in "lib/csharp" and define supported platforms

2018-04-03 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4541:


GitHub user cwe1ss opened a pull request:

https://github.com/apache/thrift/pull/1532

[WIP] THRIFT-4541: Use new project system in lib/csharp

See [THRIFT-4541](https://issues.apache.org/jira/browse/THRIFT-4541). 

This is a WIP/PoC and **MUST NOT BE MERGED** (because supported versions 
must be defined first etc).

This PR updates all project files to the new project system and targets 
".NET Standard 2.0" and ".NET 4.5". (Except for the MSBuild-task which 
currently can't target .NET 4.5 due to its dependencies)

Some notes about it:
* The solution can now be built using the cross-platform .NET Core SDK 
(v2.0+). (using the cmd `dotnet build`)
* I have not changed the MAKE files yet as I don't yet know how they work. 
I'll look into this once I know that we'll actually do this change.
* NuGet packages for the main Thrift library and for the MSBuild library 
can be created with `dotnet pack -c Release`. They will be placed in the 
"lib\csharp\artifacts" folder.
* `AssemblyInfo.cs` files are no longer required as most things are now 
defined either in `Directory.Build.props` or directly in the `*.csproj` files.
* **Thrift** project:
  * As there's some classes that depend on "System.Web" I already had to 
add some #if statements. These classes are only available when the package is 
consumed on the full .NET framework.
  * I also had to change something in `TNamedPipeServerTransport` as .NET 
standard doesn't have a NamedPipeServerStream constructor that accepts a 
PipeSecurity. We'll have to look into how to test this.
* **ThriftMSBuildTask** project:
  * I had to reference NuGet packages for MSBuild and these no longer 
contain the "Csc" class. I therefore had to change the implementation to 
manually call "csc". **This is not yet tested though!!** I wanted to show you 
the general approach first before I invest more time.
  * The project now creates a NuGet package that includes props files etc. 
I got this from [this 
how-to](https://www.natemcmaster.com/blog/2017/07/05/msbuild-task-in-nuget/).
* The test projects contain `PreBuildEvents` that generate `*.cs` files for 
`thrift` files. This currently is executed too late which results in the first 
build to fail. I still have to look into this or we should discuss using a 
different approach (e.g. using the MSBuild task)

I'm looking for general feedback on this approach. If the approach is ok, 
we should discuss in THRIFT-4541, which platforms we'd like to support. We can 
then either merge this into a branch or I can create a new PR with all changes.

/cc @Jens-G @jeking3 

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/cwe1ss/thrift cweiss/Netstd

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/thrift/pull/1532.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1532


commit 550df5b23dc9ba28198b8ccb92db46fb41be64e3
Author: Christian Weiss 
Date:   2018-04-03T11:49:53Z

Target netstandard2.0 and net45




> 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
>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