While reviewing PR #217, @Flundrahn suggested that updating the target frameworks should be its own piece of work rather than part of an unrelated bug fix. This issue is for that discussion.
Current targets:
| Project |
Targets |
| NModbus |
net46, netstandard1.3, netstandard2.0, net6.0 |
| NModbus.Serial |
net46, netstandard2.0, net6.0 |
| NModbus.SerialPortStream |
net46, netstandard1.5 |
| NModbus.UnitTests |
net4.6 |
| NModbus.IntegrationTests |
net46, net6.0 |
| Samples |
net46 |
A few observations:
- .NET 6 reached end of support on November 12, 2024.
- .NET Framework 4.6 reached end of support on April 26, 2022 (4.6.2 and later are still supported).
- The projects are inconsistent with each other, and the unit tests only run on .NET Framework, so none of the modern targets of the main library are exercised by the test suite.
- netstandard1.3 and netstandard1.5 are rarely needed today; netstandard2.0 covers almost all consumers.
Suggested direction, open to feedback:
- Library projects (NModbus, NModbus.Serial, NModbus.SerialPortStream): netstandard2.0 plus a supported .NET Framework target (net462 or net48) and a current LTS target (net8.0, or net10.0 given that .NET 8 support ends in November 2026).
- Test and sample projects: the same .NET Framework target plus the same LTS target, so both runtime families stay covered by the tests.
- Dropping netstandard1.3 and netstandard1.5 would be a breaking change for very old consumers, so it may belong in a major version bump.
I am happy to put a PR together once the maintainers agree on a direction.
While reviewing PR #217, @Flundrahn suggested that updating the target frameworks should be its own piece of work rather than part of an unrelated bug fix. This issue is for that discussion.
Current targets:
A few observations:
Suggested direction, open to feedback:
I am happy to put a PR together once the maintainers agree on a direction.