2011-05-18 196 views

回答

5

我终于找到了答案。我之前提到的我的团队发现的性能问题是由于其他原因造成的。不在.NET 4.0应用程序域上加载.NET 3.5。

看完这篇文章: http://msdn.microsoft.com/en-us/magazine/ee819091.aspx

进程内的SxS不解决所面临的 库开发的 兼容性问题。任何库 由 应用直接加载 - 或者经由直接 引用或Assembly.Load - 将 继续直接加载到 应用程序载入它的 运行时和应用程序域。这意味着 如果应用程序重新编译为 以针对.NET Framework运行并且依然依赖于 针对.NET 2.0, 构建的程序集,那么这些依赖项也将加载到.NET运行时。因此,我们仍然推荐 针对您希望支持的所有版本的 框架测试您的库 。这是 我们继续 保持我们高水平的落后 兼容性的原因之一。

因此,将.NET 3.5程序集直接加载到.NET 4.0应用程序中而不重新编译为.NET 4.0是没有问题的。

1

4.0是3.5的超集,所以应该没有任何挑战。在座的各位,因为它必须在与VS 2008内置3.5代码将工作您需要按照这个第一
有一个MSDN链接What's New in the .NET Framework 4
Migration Guide to the .NET Framework 4
.NET Framework 4 RTM Application Compatibility Walkthrough

如果谷歌搜索,你会发现许多文章标题为“2010年有哪些新内容”。你不会找到喜欢的东西“有什么不同”

除了这个小珍闻从MSDN:

.NET Framework 4的是与内置 与早期的.NET Framework应用程序 高度 兼容版本,除了为提高安全性所做的一些更改, 标准符合性,正确性, 可靠性和性能。

.NET框架4不 自动使用其 公共语言运行库的版本运行与 早期版本的.NET框架 建 应用。要使用.NET Framework 4中运行旧版应用程序 ,你必须 编译的属性在Visual Studio中 项目指定的 目标.NET Framework版本 您的应用程序,或者你可以 指定与 元素支持的运行时间在应用程序 配置文件中。


+3

-1:“所以不应该有任何挑战,你们所有的3.5代码都可以像使用VS 2008一样工作”:重大更改列表实际上很长,请参阅这里查看各种入口点。 NET技术:[.NET4完整的重大更改列表](http://muneebbaig.blogspot.com/2010/04/net4-complete-list-of-breaking-changes.html)。一般来说,包括.NET运行时环境变化在内的产品变更都应该伴随着大量的测试。 – 2011-05-18 21:04:12

0

那么它不应该有任何性能问题。但是,一个主要区别是.Net 4.0带有不同的运行时间,可能会引入一些差异。

1

您质疑是否会有性能问题无法普遍解答,因为这取决于您的代码正在做什么。很可能你不会看到任何问题。

尽管微软为了保持向后兼容以前版本的运行时而做了很多工作,但您应该注意到有几个重大更改。你会发现他们在这里的MSDN文档:

.NET Framework 4 Migration Issues(包括ASP.NET文件,.NET的核心,数据/ ADO。NET,WCF,WPF和XML)

微软还提供指导和联系,以进一步迁移规划任务:

Migration Guide to the .NET Framework 4

正如你应该对任何问题的准备,不要忘记安排一些时间进行额外的测试。

-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的源代码之前,我们不会将我们的代码库升级到网络4.

+1

你有这方面的任何参考? – 2011-05-23 17:20:02

+0

根据我迄今为止的经验,我希望Omar可能是正确的,但在启动Process Exprlorer并看一看后,我只看到两个AppDomain加载了“SharedDomain”和“DefaultDomain”,而我没有看到任何证据表明只有3.5程序集正被加载到其中一个域中。相反,除mscorlib以外的所有程序集都加载到DefaultDomain中。更多细节在这里http://msdn.microsoft.com/en-us/magazine/cc163791.aspx#S4 – jpierson 2012-04-20 14:39:16

1

计划自己做perf测试。有关指导,请参见&模式的this实践。

我不知道你正在使用哪个块,但是你应该考虑迁移到EntLib v5.0,因为在日志记录应用程序块中有主要的性能改进以及底层基础结构的重构/清理。检查出Migration Guide for Enterprise Library 5.0

相关问题