Brian Lachniet created AVRO-2422:
------------------------------------
Summary: C#: Target .NET Standard 2.0 only
Key: AVRO-2422
URL: https://issues.apache.org/jira/browse/AVRO-2422
Project: Apache Avro
Issue Type: Improvement
Components: csharp
Reporter: Brian Lachniet
Assignee: Brian Lachniet
Fix For: 1.9.1
Update the main Avro C# project to target .NET Standard only. I will lay out a
couple reasons below, but first let's start with a little context.
You can see the different frameworks that the C# project currently targets here
in the README. We updated the main Avro library to target .NET Standard with
the release of v1.9.0. However, we continue to target the .NET Framework v4.0
as well. This allows users that are targeting .NET Framework versions between
4.0 and 4.6.1 to still use the library. As you can see in this table on .NET
Standard compatibility, as long as you are targeting .NET Framework 4.6.1 or
later OR .NET Core 2.0 or later, you can use a library that targets .NET
Standard.
To be clear, we are not dropping support for all of .NET Framework. We would
drop support for for any version of .NET Framework before v4.6.1.
This change will simplify our release process. At this time, we can only build
a NuGet package that contains both .NET Framework and .NET Standard binaries on
Windows. This means that after the "official" release is created and deployed,
I have to rebuild the project on my Windows machine before publishing the
package to nuget.org. With this change, we would only create .NET Standard
binaries, which means that we could build the NuGet package on a Linux machine.
Then, we could publish the NuGet directly from the "official" build to
nuget.org. No more side channel builds.
This change will also simplify development, particularly when developing on
non-Windows platforms. I think it's still a good idea to run our unit tests on
.NET Framework in addition to Core, but we could make it so that those are only
run when run on Windows.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)