zarunbal / LogExpert

Windows tail program and log file analyzer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Which .NET Version should be used?

zarunbal opened this issue · comments

Currently LogExpert uses .NET 4.0.

Should LogExpert still support .NET 4.0 or should it be a newer version see Wikipedia

The main problem is some libraries only support .NET 4.5 and newer

What .NET Version should be supported? (You can "vote" by reaction on the bottom posts, please use only 👍 ). Feel free to comment and share your thougts so we can work together.

.NET 4.0

Still supports XP and Windows Server 2003 (are there still such things out there?)

.NET 4.5

Supported by Windows Vista, Server 2008 and up

.NET 4.6.0

Supported by Windows Vista, Server 2008 and up

.NET 4.6.1

Supported by Windows 7 and up

.NET 4.6.1

Supported by Windows 7 and up

New Version should be 4.6.1+ and later
There should also be a Legacy Version that supports 4.0 but is only maintend if security issues arise!

No need to support old Windows Versions that do not have any support left

Windows XP Support ends 2019 for the "Windows Embedded POSReady 2009" Version, this is only used on the business side... no private users can use that Version, probably only used in Banking Sector (old ATMs) (https://en.wikipedia.org/wiki/Windows_XP#End_of_support)

Windows Server 2003 Support ended sometime in 2015 (https://en.wikipedia.org/wiki/Windows_Server_2003#Support_lifecycle) (https://www.us-cert.gov/ncas/alerts/TA14-310A)

No need to support this either at least not with a new Version!

Edit:

.NET 4.6.1 and later. No need for support .net 4.0

This vote has been open for 4 months, it's safe to say a decision can be made.

24 People voted for 4.6.1+
None for the other options 💃

I want to add, we should also consider .net Core 3.0/3.1, since .net Core will be the future and .net Core 3.0/3.1 includes winForms!

https://blogs.msdn.microsoft.com/dotnet/2018/05/07/net-core-3-and-support-for-windows-desktop-applications/
https://blogs.msdn.microsoft.com/dotnet/2018/12/04/announcing-net-core-3-preview-1-and-open-sourcing-windows-desktop-frameworks/

In Regard of .net Core, I did run the MS Portability analyser (https://github.com/Microsoft/dotnet-apiport/blob/master/docs/HowTo/PlatformPortability.md)

and this is the summary:

Submission Id ad186e34-50ce-4f53-bc81-fd652543d825      
Description        
Targets .NET Core + Platform Extensions,.NET Core,.NET Framework,.NET Standard + Platform Extensions  
         
Header for assembly name entries Target Framework .NET Core + Platform Extensions .NET Core .NET Framework
ColumnizerLib .NETFramework,Version=v4.0 96.67 100 100
ColumnizerLib.UnitTests .NETFramework,Version=v4.0 100 100 100
CsvColumnizer .NETFramework,Version=v4.0 68.75 100 100
DefaultPlugins .NETFramework,Version=v4.0 73.82 100 100
FlashIconHighlighter .NETFramework,Version=v4.0 84.85 100 100
GlassfishColumnizer .NETFramework,Version=v4.0 100 100 100
JsonColumnizer .NETFramework,Version=v4.0 100 100 82.95
Log4jXmlColumnizer .NETFramework,Version=v4.0 58.22 100 100
LogExpert .NETFramework,Version=v4.0 52.23 99.06 100
RegexColumnizer .NETFramework,Version=v4.0 72.34 100 100
SftpFileSystem .NETFramework,Version=v4.0 63.18 100 100
UnitTests .NETFramework,Version=v4.0 91.43 91.43 91.43
WeifenLuo.WinFormsUI.Docking .NETFramework,Version=v4.0 62.75 100 100
         
API Catalog last updated on Wednesday, February 13, 2019      
See 'http://go.microsoft.com/fwlink/?LinkId=397652' to learn how to read this table      

As it seems there is only need for a little refactoring to make this project .net Core ready!

I'll consider the votes for .NET 4.6.1 as a vote for the latest framework. If there are blockers or opinions against it please share them. I hope this is ok that I interpret the votes like this.

My current plan would be:

The next release will be the last release with .NET 4.0 support.

The future releases will then be .NET 4.7.2. This is the step in between .NET Core and .NET. Then afterwards somewhere in the future it will be ported to .NET Core.

There will be no "support" for old versions! Only the latest. If there is someone willing to "support" the .NET 4.0 version feel free. But I can't "support" two or more versions in my free time. (don't forget the last paragraph of the license ;) )

Why I don't migrate directly to .NET Core? Because I don't want to create a big change and deal with all the related problems and maybe make it with little steps by steps.

I think our next step should go with .Net 5 which is a dramatic but also appealing step from microsoft.

.net 5 will be released in Nov 2020, so at least 1.5 years away, switching so fast to .net 5 is also not a good idea, being on the "latest shit" is never a good Idea. This is also regarding the old code base, that needs a slow and steady rework.

Also starting with nov 2020, there will be LTS releases, and imo we should target LTS Releases

current Version is .net 4.7.2
future Version maybe .net 6 (LTS)

Targets .NET Core + Platform Extensions,Version=v3.1,.NET Core,Version=v3.1,.NET Standard + Platform Extensions,Version=v2.0
Assembly Name Target Framework .NET Core + Platform Extensions,Version=v3.1 .NET Core,Version=v3.1
_build, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null .NETCoreApp,Version=v3.1 100 100
AutoColumnizer, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 100
ColumnizerLib, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 100
ColumnizerLib.UnitTests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null .NETFramework,Version=v4.7.2 100 100
CsvColumnizer, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 100
DefaultPlugins, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 100
FlashIconHighlighter, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 100
GlassfishColumnizer, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 100
JsonColumnizer, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 84.54
JsonCompactColumnizer, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 93.41
Log4jXmlColumnizer, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 100
LogExpert, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 99.09 98.76
LogExpert.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 99.04
RegexColumnizer, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 100
SftpFileSystem, Version=1.8.8.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 100
SftpFileSystem, Version=1.8.8.0, Culture=neutral, PublicKeyToken=null .NETFramework,Version=v4.7.2 100 100
UnitTests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 91.38 91.38
WeifenLuo.WinFormsUI.Docking, Version=2.5.0.34375, Culture=neutral, PublicKeyToken=4f1de4c770adbe0a .NETFramework,Version=v4.7.2 100 100