2012-03-16 98 views
4

这里是我的场景:在ASP.NET网站中使用.Net 4.0混合.Net 2.0

我目前正在升级一个我从.Net Framework 3.5维护到4.0的网站。我所有的程序集都用我的代码改变了目标框架,它们编译得很好,网站也能正常工作。

这是我的问题/问题。我正在使用SAP提供的Crystal Reports 2010。他们的库被称为“.Net Framework 4.0的Crystal Reports”,但是这个库实际上是以2.0运行时为目标的(而更让人困惑的是客户端控件拥有1.1依赖关系......)。

我将运行3.5(2.0 CLR)和4.0(CLR)在一起,因为我必须使Crystal Reports,但我想了解这些问题:

  1. 如果有的话它有什么性能的影响,包括这2.0 程序集在ASP.NET 4.0网站(是否需要额外的开销 必须加载)?
  2. 我完全错过了一些东西,并有实际的CR2010 4.0 组件目标4.0?
  3. 如果我隔离我的主要商业逻辑 库的包装类,2.0将被加载/只有当它被调用时使用(或 当网站加载到 内存时,该网站加载程序集导致它们都被加载)?部分原因是我对不同CLR的加载/交互方式无知。
+0

你明显错过了一些东西。微软在Visual Studio 2010中支持Crystal Reports 2010并没有意义,并且它不支持.NET Framework 4.0吗? – 2012-03-16 18:41:13

+0

Microsoft不再将Crystal Reports 2010与Visual Studio 2010打包在一起(它们有一个模板项目,但它所做的只是加载一个说明联系SAP进行安装的Web页面)。我下载了Crystal Reports 2010,并且rferences中的程序集显示“.Net Framewwork 4的Crystal Reports”,但目标运行时为2.0。我读过的所有文献都表示,SAP在2.0版本上测试了4.0版本,这就是为什么他们称之为(尽管它不是针对它的)。 [链接] http://dl.dropbox.com/u/812432/WebPostings/CRReferences.jpg [/ link] – 2012-03-16 18:49:07

回答

1

由于.net 4和DLR,.net的发布安装了多个版本并排运行。当V4接收预V4装配,它将委托执行的预V4框架(所有预先V4框架是完全向后兼容)

  1. 我认为会有一个性能损失,但它应该是微不足道的,足以忽视。
  2. 不知道:)
  3. 框架组件很大程度上按需加载,它们只会根据需要加载(某些程序集加载时,更多是因为JIT编译不同的代码段)。因此,简而言之,大多数v2代码只会在您的代码中被调用时才被加载,编译(本机)并执行。
+0

谢谢。这有助于我的理解。 – 2012-04-16 19:55:48