clr

dmiller 2024-12-07T18:53:58.500669Z

The next release of ClojureCLR will be targeting .NET 9 (in addition to 8 and 6 and Framework). One breaking change in .NET 9 is the removal of BinaryFormatter. BinarFormatter was used to implement the serialization contracts. In .Net 8, BinaryFormatter was deprecated. In .Net 9, usage throws an exception. The [BinaryFormatter migration guide](https://learn.microsoft.com/en-us/dotnet/standard/serialization/binaryformatter-migration-guide/) lists a few alternatives. One is to use a unsupported NuGet package that will provide the required support. The other is to move to a different serializer. Given that 117 classes in ClojureCLR are marked with the Serializable attribute and 44 of those have custom formatters, moving to a different serializer is going to require non-trivial effort. I'm inclined to just go whistling past the graveyard where BinaryFormatter is buried and use that NuGet package for the time being, and deal with migrating at later date. Two questions for the community. 1. For curiosity: Are you using serialization in substantial ways? 2. For survival: Anyone already gone through migrating from BinaryFormatter ? Any experiences to relate? I'm considering going with the recommendation in the migration guide to use MessagePack. Has anyone used it?

2024-12-07T18:59:23.369569Z

Stupid question. Is .Net 9 same as .Net core and works on Linux as well? Or different?

2024-12-07T19:51:41.752159Z

.NET and .NET Core are the same https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-and-net-core

dmiller 2024-12-07T19:51:51.685679Z

TL;DR -- Same as = yes, linux = yes. Keeping track of Microsoft naming of versions of .Net is non-trivial. Technically, 'Core' is no longer used as part of the official name, though some places still use it out of habit. Thus, .Net Core 3.x, .Net Core 5.x, but then .Net 6.0. 'Framework` applies to the the 4.x and earlier releases, which preceded .Net Core 3.x. For the foreseeable future, .Net releases are just called .Net. A new version will come out every November. Even numbers indicate an LTS (long-term support) release. Odd numbers are not LTS, but you might use them to get the latest and greatest. I'm not sure at what point the official releases started supporting Linux, but they have for a while and will continue to do so. Handy references: https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core#cadence https://versionsof.net/

👍 1