新.Net项目中的旧类库

问题描述 投票:0回答:2

对不起,我是老派程序员,解决方案的所有项目都用于同一个.Net框架。但是,我看到开发人员创建.Net 4.6.1项目引用.Net 4.5.1类库。

在较新的MVC / Web Api项目中引用旧版本的类库是否可以?

对于绿色领域项目,通过混合不同的运行时间,我们不会遇到类似DLL地狱的类似情况,更不用说由于在生产服务器中同时加载运行时间而导致的性能损失(如果有的话)。

c# asp.net .net-core
2个回答
3
投票

这些天只有2 Runtimes(如果你包括1.0和1.1,则为4)。在运行它的机器上有2.0和4.0,然后是不同版本的那些。因此,您可以在.NET 4.5.1中定位项目,并且它将很乐意在4.6.1运行时运行。

如果所有内容都是一个解决方案的一部分,最终成为一个进程,那么保持所有目标平台相同是有意义的,但.NET 4.7应用程序添加对仅针对4.5的目标的第三方库的引用没有任何代价 - 对于例。

我必须编写面向.NET 4.0和桌面的代码,但是在服务器端编写一个较新的.NET。我有很多项目在.NET 4.0中使用公共代码,我从Desktop和Server项目中引用它们。


2
投票

答案很短 - 是的。这不是最佳实践,在处理旧库时,您需要确保:

1)旧类中的方法和对象仍然是最新的,并且与您当前的.net框架兼容。您还需要确保不使用已弃用的方法。

2)你必须确保旧类也将在新的.net框架上编译和运行。

这种方法非常方便,因为如果您的旧类适用于新的.net框架,则无需再将整个类重写为新框架的脚。

如果一切都是您的解决方案的一部分并且没有问题,那么就没有理由不这样做,只要确保检查所有内容是否适合并且这些内容是否正在协同工作。

缺点是,如果你想将类迁移到更高的框架,你将不得不重写整个类代码以适应框架,如果它不适合。

© www.soinside.com 2019 - 2024. All rights reserved.