点击上方蓝字 江湖评谈设为关注/星标
前言
.NET 9 Release Candidate 2于2024年10月8日推出,这是第二个候选版本。候选版本的作用是在.NET9正式版上线生产环境之前最后的测试,润色,以及bug检测。
.NET9 RC2基本上没有新增的功能,新增的功能在它之前的预览版基本上完成,它着重于打磨和加固方面的细致工作。
由于.NET9 PreView5里面进行人工智能张量的内置支持,.NET9 PreView6对于性能瓶颈的解决进一步优化了底层代码布局(主要BB块部分)。所以.NET9相对于.NET8来说算是一个断代的版本,断代意味着.NET9之前的一些功能,语法,以及底层支持遭到了删除,修改,以及其它方面的改动。
注意点
如果要将应用迁移到 .NET 9,需要注意一下不兼容的地方以及行为的更改:
1.二进制文件不兼容 - 当针对新的运行时或组件运行时,现有二进制文件可能会遇到行为上的中断性变更(例如加载或执行失败),如果是这样,则需要重新编译。
2.源代码不兼容 - 当使用新的 SDK 或组件重新编译,或以新的运行时为目标时,现有源代码可能需要更改源才能成功编译。
3.行为更改 - 现有代码和二进制文件在运行时的行为可能会有所不同。如果不需要新的行为,则需要更新和重新编译现有代码。
其它变更
如果是底层玩家,对.NET9这个版本就需要注意了,变动较多。这里仅举一个例子说明下,比如JIT获取当前编译函数名称的偏移量,.NET8.0.4是0x72,而.NET9 PreView3则是0x76。
如果是应用层级玩家,对.NET9版本,框架和底层层面变更涉及到比如SDK,MSBuild,Asp.NET Core等,略有改动,于应用层级玩家基本上无感。
往期精彩回顾