2012-03-16 54 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

相關問題