LCARS x32 has been using version 2.0 of the .NET framework for a long time now. Originally, this was because it was smaller than version 3.0 or 3.5, and was still supported on Windows 98. Unfortunately, it's starting to show its age, and I think we should consider upgrading to a newer version.

In particular:

  • Outdated encryption algorithms. .NET 4.0 and earlier do not support TLS 1.2. (although there are ways to get around that for 3.5 and 4.0). This has directly prevented me from simplifying the update process to fetch from GitHub directly.
  • Better compatibility with new versions of Windows. I am sick and tired of Windows trying to "help" by hiding the details of a multiple-monitor setup for "old" programs.
  • A few new features in the framework, such as a hash set would make things easier.
  • Applications using .NET 3.5 or earlier require a separate framework installation on newer computers. This is mostly an annoyance, but potentially confusing if you haven't seen it before.
  • Newer tooling. I don't know if it's even possible to get Visual Studio 2008 anymore, but newer framework versions have better support. This would also make it easier for new developers to get started.

The downsides of upgrading:

  • No way to guarantee that the new framework version is installed from the updater. The update would probably have to be manually installed.
  • We would have to drop support for some older versions of Windows. How many depends on which framework version we upgrade to.

Options:

  • Leave it as-is. I can probably eventually find workarounds for the issues I've listed, but I've also been fighting with them for two years now.
  • Upgrade to version 4.0. This is the last version that officially supports XP. I'm not sure how many of us are still using it, (and I strongly recommend you upgrade if you are) but this would get around most of the issues while maintaining maximum compatibility.
  • Upgrade to version 4.5. This only supports Vista and later, but it also fixes all the issues I've been having without any potentially-fragile workarounds.
  • Upgrade to latest version (4.8 at time of writing). I'm including this one for completeness, but this is probably unnecessary. Anything written for 4.0 or later will run on all the newer framework versions without problems. This would also bring the minimum supported OS up to Windows 7.

For reference: .NET Framework version history

Let me know what you think.

Live long and prosper,

Tim.