我们计划移动使用企业库4.1的遗留应用程序,该应用程序在.Net 4.0 Web应用程序中使用.Net 3.5。
我们想知道这会导致任何性能问题吗? .net 3.5代码是否会以不同的方式运行 应用程序池?
答案 0 :(得分:5)
我终于找到了答案。我之前提到的团队发现的性能问题是由于其他原因造成的。不在.NET 4.0 App Domain上加载.NET 3.5。
阅读这篇文章: http://msdn.microsoft.com/en-us/magazine/ee819091.aspx
In-Proc SxS无法解决问题 面临的兼容性问题 库开发者。任何图书馆 由...直接加载 申请 - 通过直接申请 参考或Assembly.Load - 将 继续直接加载到 运行时和AppDomain 应用程序加载它。这意味着 如果应用程序被重新编译 运行.NET Framework 4 运行时仍然具有依赖性 针对.NET 2.0构建的程序集, 这些家属将加载在.NET上 4运行时也是如此。因此,我们还是 建议测试你的库 反对所有版本的 您希望支持的框架。这是 我们继续的原因之一 保持我们的高水平落后 兼容性。
因此,将.NET 3.5程序集直接加载到.NET 4.0应用程序中而不将其重新编译到.NET 4.0中是没有问题的。
答案 1 :(得分:1)
4.0是3.5的超集,所以不应该有任何挑战。你们所有人的3.5代码都可以像使用VS 2008一样工作。你需要先按照这个步骤进行操作
有一个MSDN链接What's New in the .NET Framework 4
Migration Guide to the .NET Framework 4
.NET Framework 4 RTM Application Compatibility Walkthrough
如果您进行Google搜索,您会发现许多文章的标题为“2010年的新内容”。你找不到像“有什么不同”这样的东西
除了来自MSDN的这个小小的消息:
.NET Framework 4非常高兴 与应用程序兼容 使用早期的.NET Framework构建 版本,除了一些更改 是为了提高安全性 标准合规性,正确性, 可靠性和性能。
.NET Framework 4没有 自动使用其版本 要运行的公共语言运行库 使用。构建的应用程序 早期版本的.NET 框架。运行较旧的应用程序 使用.NET Framework 4,您必须 使用。编译您的应用程序 目标.NET Framework版本 在您的属性中指定 在Visual Studio中的项目,或者你可以 使用指定支持的运行时 应用程序中的元素 配置文件。
答案 2 :(得分:1)
您怀疑是否会出现性能问题,因为这取决于您的代码在做什么。很可能你不会看到任何问题。
虽然Microsoft做了很多工作以保持向后兼容以前版本的运行时,但您应该知道有几个重大更改。您将在MSDN中找到它们:
.NET Framework 4 Migration Issues (包括有关ASP.NET,.NET Core,Data / ADO.NET,WCF,WPF和XML的文档)
Microsoft还提供了指导和指向进一步迁移规划任务的链接:
由于您应该为任何问题做好准备,不要忘记安排一些时间进行额外的测试。
答案 3 :(得分:1)
计划进行自己的性能测试。如需指导,请参阅模式中的this&做法。
我不知道您正在使用哪些块,但您应该考虑迁移到EntLib v5.0,因为日志应用程序块中的主要性能改进以及底层基础架构的重构/清理。查看Migration Guide for Enterprise Library 5.0。
答案 4 :(得分:0)
它应该没有任何性能问题。但是,一个主要的区别是.Net 4.0带有不同的运行时,可能会带来一些差异。
答案 5 :(得分:-1)
.NET 3.5 DLL加载在与.NET 4不同的应用程序域中。因此,从.NET 4对.NET 3.5 DLL的所有调用都将跨越应用程序域。这意味着一些开销。除非您可以在.net 4中重建3.5源代码,否则我不建议使用它。我的一个团队尝试过,然后他们看到了相当糟糕的性能,所以他们又回到了.NET 3.5。在我们获得所有.net 3.5 DLL或供应商发布的.net 4 DLL的源代码之前,我们不会将我们的代码库升级到net 4。