Bing 广告平台迁移到 .net6( 二 )


Bing 广告平台迁移到 .net6

文章插图
现代服务架构除了这些明显的性能优势之外,进入 .NET 为我们提供了从 IIS 和 Windows 迁移到在 AKS 中托管的 Linux 容器内运行的 Kestrel 服务器的机会,我们现在可以使用所有可用于管理和配置云服务的现代化工具和资源(比如K8s)
总结对于计划将大型现有 .NET Framework 代码库迁移到 .NET 6 及更高版本的其他人 , 可以应用从我们的经验中吸取的教训:
1. 现有代码从4.7 升级到4.8
2. 将所有项目迁移到新的 SDK 格式,以便它们在执行任何其他操作之前使用 PackageReference 。(说实话我忘了.net framework 是咋回事了,所以上面这块儿原文也没怎看就没翻译)
3. 使用 .NET Standard 作为桥梁,允许在迁移过程中在 .NET Framework 和 .NET 项目之间共享库代码
4. 使用集中的包引用来极大地简化向较新 NuGet 包的过渡 。
迁移完成了 , 我们的脚步并没有停下,接下来我们会研究.net的一些新的特性:
1. 找到我们可以使用 Span\<T> 来减少堆分配并提高性能的地方,例如,我们的代码有一些地方可以检查两个字节缓冲区是否相同 。我们可以使用高度优化的 SequenceEqual 方法,而不是遍历每个字节并测试相等性
```return bufferA.AsSpan().SequenceEqual(bufferB);```
以下是benchmark
Bing 广告平台迁移到 .net6

文章插图
随着我们的前进,重写我们的一些代码以专门利用新的语言和运行时特性,这将继续是一项有趣且非常有益的练习

推荐阅读