[ 
https://issues.apache.org/jira/browse/AVRO-3236?focusedWorklogId=718703&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-718703
 ]

ASF GitHub Bot logged work on AVRO-3236:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 01/Feb/22 14:24
            Start Date: 01/Feb/22 14:24
    Worklog Time Spent: 10m 
      Work Description: zcsizmadia commented on pull request #1375:
URL: https://github.com/apache/avro/pull/1375#issuecomment-1026898923


   @KyleSchoonover 
   
   NET Standard 2.0 is required becuase of the NET Framework 4.6.x+ support. 
Many older NET Frameworks go EOL this April, however some are still supported. 
E.g. NET Framework 4,8 is an open ended LTS, and its supoort is toed to OS 
support. In the future they might add NET Standrad 2.1 support to Frameork as 
well, however at this point it is only NET Standard 2.0. To be fair I have to 
say I have no idea how many of this Avro library users are on NET Framework.
   
   My 2 cents on using newer language features in this project should be 
performance driven. When we have to support multiple frameworks , a common code 
base makes it eaiser to maintain it.
   
   However if there is a performance gain by moving to a newer language, 
becuase of a better compiler generated code or newer API features, a new target 
framework should be added. This was the reason netstandard2.1 was added. I 
would love to see if there is an improvement  by  adding net6.0 as a target 
framework. I would not be surprised if it would be somewhat faster. In that 
case we might be lucky and simply just compiling the same source with net6.0 
target or we need to add some net6.0 specific source code (using conditional 
compiling). However the new language features would be available only in the 
code which is compiled o nly on net6.0+.
   
   Regarding to the future os MS support for NET Frameowrks and Core versions:
   
   1. NET Framework 4.6.x, 4.7 and 4.8: Tied to Windows OS support. This 
requires NET Standard 2.0, so it has to be supported for a while
   2.  NET Core 3.1 EOL is in 12/2022: This requires NET Standard 2.1 (or NET 
STandard 2.0), however 2.1 is faster
   3. NET 5.0 EOL 5/2022: Pretty much the same as NET Core 3.1 (NET STandard 
2.1)
   4. NET 6.0 EOL 11/2024: Pretty much the same as NET Core 3.1 (NET STandard 
2.1)
   
   It is trivial to add net5.0 or net6.0 to the supported frameworks, however 
this should happen only if some performance gain is proven. Otherwise the 
published nuget packages might double or triple in size without gaining 
anything.
   https://github.com/apache/avro/blob/master/lang/csharp/common.props#L42
   


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

To unsubscribe, e-mail: issues-unsubscr...@avro.apache.org

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


Issue Time Tracking
-------------------

    Worklog Id:     (was: 718703)
    Time Spent: 2h 40m  (was: 2.5h)

> Retire .NET Core 2.1
> --------------------
>
>                 Key: AVRO-3236
>                 URL: https://issues.apache.org/jira/browse/AVRO-3236
>             Project: Apache Avro
>          Issue Type: Improvement
>            Reporter: Zoltan Csizmadia
>            Assignee: Zoltan Csizmadia
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.11.0
>
>          Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> .NET Core was retired and EOL since August, 2021.
> [https://dotnet.microsoft.com/download/dotnet/2.1]
>  
>  # Remove netcoreapp2.1 from TargetFramework(s) in all csproj.
>  # Remove .NET Core 2.1 dependency form the build environment



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to