Смешивание .Net 2.0 с .Net 4.0 на сайте ASP.NET

Вот мой сценарий:

В настоящее время я обновляю поддерживаемый мной веб-сайт с .Net Framework 3.5 до 4.0. Все мои сборки с моим кодом, на которых я изменил целевой фреймворк, они скомпилировались нормально, и сайт работает.

Вот моя проблема / вопрос. Я использую Crystal Reports 2010, предоставленный SAP. Их библиотека называется «Crystal Reports для .Net Framework 4.0», но на самом деле эта библиотека нацелена на среду выполнения 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 загружаются / взаимодействуют друг с другом.

person b.pell    schedule 16.03.2012    source источник
comment
Вы явно чего-то упускаете. Для Microsoft нет смысла поддерживать Crystal Reports 2010 в Visual Studio 2010, и разве она не поддерживает .NET Framework 4.0. Вы обращались в SAP?   -  person Security Hound    schedule 16.03.2012
comment
Microsoft больше не упаковывает Crystal Reports 2010 с Visual Studio 2010 (у них есть шаблонный проект, но все, что он делает, это загружает веб-страницу, на которой говорится, что свяжитесь с SAP для установки). Я загрузил Crystal Reports 2010, и сборка в ссылках говорит, что Crystal Reports для .Net Framewwork 4, но целевая среда выполнения - 2.0. Во всей литературе, которую я читал, говорится, что SAP тестировал сборку 2.0 против 4.0, и поэтому они так ее называют (хотя она и не нацелена на нее). [ссылка] dl.dropbox.com/u/812432/WebPostings /CRReferences.jpg[/link]   -  person b.pell    schedule 16.03.2012


Ответы (1)


Начиная с .net 4 и выпуска DLR, .net устанавливает несколько версий для совместной работы. Когда v4 получает сборку до v4, он делегирует выполнение фреймворку до v4 (все фреймворки до v4 полностью обратно совместимы)

  1. Я предполагаю, что произойдет снижение производительности, но это должно быть достаточно тривиально, чтобы игнорировать его.
  2. Без понятия :)
  3. Компоненты фреймворка в значительной степени загружаются по запросу, и они будут загружаться только по мере необходимости (некоторые - при загрузке сборки, больше - когда JIT компилирует разные сегменты кода). Короче говоря, большая часть кода v2 будет загружаться, компилироваться (в собственный код) и выполняться только тогда, когда он вызывается в вашем коде.
person major-mann    schedule 28.03.2012
comment
Спасибо. Это помогает мне понять. - person b.pell; 16.04.2012