繁体   English   中英

这是为 .NET 3.5 和 .NET 4.6 维护和分发一个汇编代码库的最佳实践

[英]Which is the best practice for maintaining and distributing one assembly code base for both .NET 3.5 and .NET 4.6

我们将 .NET 3.5 程序集分发给更多方,以便在不同的应用程序中引用和使用。

我们现在打算将此程序集升级到 .NET 4.6,因此它将受益于此 .NET 版本中的所有性能和安全改进,不是使用新的 .NET 功能

但是我们不想破坏正在使用它的现有应用程序。

一些消费者应用程序可能仍在使用 .NET 3.5,因此他们将无法使用它,所以我在考虑让两个项目针对两个 .NET 版本(3.5 和 4.6),但代码文件相同。

对于为 .NET 3.5 和 .NET 4.6 版本行维护和分发一个汇编代码库,您有什么建议?

稍后编辑:这个问题不是关于在 .NET 3.5 中引用 .NET 4.6 程序集,而是关于 .NET 4.6 应用程序如何在运行时使用我的程序集以及 .NET 4.6 的安全性和性能的好处。 3.5 应用程序应该继续使用我的 3.5 程序集。

似乎有一种假设,即在 .Net 4.6 中编译的相同代码库将获得“性能和安全性” 这不是真的 如果代码库相同,它将执行相同的操作并且安全性将相同。

.Net 的每次迭代都包含前一个迭代(它实际上是微软试图摆脱的单一过程,因此有Katana 之类的项目)

.NET Framework 的每个新版本都保留了以前版本的功能并添加了新功能。

来源

简单地升级框架不会神奇地使您的代码更快或更安全。

研究创建您自己的 nuget 存储库并在所需的每个特定 .net 版本中发布库。 (对于一个包可以根据需要有不同的 .net 版本)。

一旦进入您的 nuget 存储库,它们就有自己的版本,并且可以同步或以不同方式更新。 这样,消费者可以根据目标 .net 版本的需要使用目标版本。

请参阅托管您自己的 NuGet 提要

在以前的一家公司,我们曾经按照您的建议进行操作,并发布了 .NET 3.5 版本(适用于 XP 用户)和 .NET 4.0+(最高 4.5)版本。

我们这样做的方法是使用两个基本相同的独立解决方案,并将每个项目从 .NET 4.0 版本镜像到 3.5 版本。 这些是添加到解决方案中的实际项目。

对于文件,我们只是将 .NET 4.0 文件直接链接到这些项目中,但我们确实必须手动创建每个文件夹,以便命名空间匹配。 对于 .NET 3.5 不支持的任何代码,我们必须在 3.5 解决方案中创建一个实际文件,并完全重写该功能,以便它可以使用 3.5 进行编译。

这并不有趣,实际上只是在处理遗留解决方案上浪费了大量开发时间。 最后,我们将所有内容迁移到 .NET 4.5 并向用户表示我们将停止对 3.5 版本的支持,对我们而言,用户升级没有成本,因此如果他们希望升级硬件以获得新功能,则取决于他们.

总之,我会说,如果您不需要,我建议您不要尝试同时支持这两种解决方案,这会影响您的开发时间并使开发人员在他们使用并发功能编写此出色功能然后实现时感到沮丧这不在 .NET 3.5 中(我知道这是什么样的,因为我已经发生过)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM