【问题标题】:Mixing .Net 2.0 with .Net 4.0 in an ASP.NET site在 ASP.NET 站点中混合 .Net 2.0 和 .Net 4.0
【发布时间】:2012-03-16 18:33:51
【问题描述】:

这是我的场景:

我目前正在将我维护的网站从 .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 是如何加载/相互交互的。

【问题讨论】:

  • 你显然遗漏了一些东西。微软在 Visual Studio 2010 中支持 Crystal Reports 2010 并且不支持 .NET Framework 4.0 是没有意义的。您联系过 SAP 吗?
  • Microsoft 不再将 Crystal Reports 2010 与 Visual Studio 2010 打包在一起(他们有一个模板项目,但它所做的只是加载一个显示联系 SAP 进行安装的网页)。我下载了 Crystal Reports 2010,引用中的程序集显示“.Net Framework 4 的 Crystal Reports”,但目标运行时是 2.0。我读过的所有文献都说 SAP 针对 4.0 测试了 2.0 程序集,这就是他们称之为的原因(即使它没有针对它)。 [链接]dl.dropbox.com/u/812432/WebPostings/CRReferences.jpg[/link]

标签: asp.net .net crystal-reports crystal-reports-2010


【解决方案1】:

自从 .net 4 和 DLR 发布以来,.net 安装了多个版本以并行运行。当 v4 接收到 pre v4 程序集时,它会将执行委托给 pre v4 框架(所有 pre v4 框架都完全向后兼容)

  1. 我认为这会影响性能,但它应该是微不足道的,可以忽略。
  2. 不知道:)
  3. 框架组件很大程度上是按需加载的,它们只会在需要时加载(有些是在加载程序集时,更多是因为 JIT 编译不同的代码段)。所以简而言之,大部分 v2 代码只有在你的代码中被调用时才会被加载、编译(到本机)和执行。

【讨论】:

  • 谢谢。这有助于我的理解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 2023-03-11
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
相关资源
最近更新 更多