dotnet / MQTTnet

MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
MIT License
4.46k stars 1.07k forks source link

.NET Framework support dropped from v5.0 #2084

Open wazzamatazz opened 1 month ago

wazzamatazz commented 1 month ago

Describe your question

I note that support for all frameworks except for net8.0 is being dropped from MQTTnet 5.0. In the upgrade guide it mentions that one of the reasons for dropping support is to make use of types such as Memory<T> and Span<T>. However, these types are already available on earlier versions of .NET and .NET Framework via the System.Memory package.

I understand the desire to drop support for older frameworks but .NET Framework is still supported by Microsoft with no support end date currently scheduled for .NET Framework 4.7 and above (see here). With this in mind it would be great if the MQTTnet client could continue to support .NET Framework in some way even if server support was going to end.

Which project is your question related to?

TimMakins commented 1 month ago

Yes, PLEASE include support for .NET Framework 4.7 and above. This is very important for me, too.

rido-min commented 1 month ago

@wazzamatazz @TimMakins you can continue using v4, as it "will receive hotfixes but no new features."

Span<T> was only one example, there are other areas such Certificate Management that are only available in .NET7+, and there are also many C# features not available for older target frameworks.

just for curiosity: What's the reason to keep using .NET Framework 4.7.2 in a client-side application?

wazzamatazz commented 1 month ago

In my case, it's because of some upstream dependencies that mean that we can't move off of .NET Framework entirely.

We integrate with a lot of industrial process systems and in some cases (particularly with older systems) the vendor SDKs explicitly only support .NET Framework because they make extensive use of features like AppDomains.

TimMakins commented 1 month ago

In my case, it is because I use Visual Basic.Net to create Windows Forms Desktop applications, using .NET Framework 4.8. To move over to Net 8.0 would mean converting everything to C# and re-writing tens of thousands of lines of code, plus coping with the many significant changes that .NET Framework 4.8 > Net 8.0 involves.

ArcadePlayer1999 commented 11 hours ago

My use-case is a visual studio extension, it requires using 4.7.2.