.NET 3.5 DLL в приложении .Net 4.0 любые проблемы - PullRequest
5 голосов
/ 19 мая 2011

Мы планируем переместить устаревшее приложение, которое использует корпоративную библиотеку 4.1, которая использует .Net 3.5, в веб-приложении .Net 4.0.

Интересно, не вызовет ли это проблем с производительностью? Будет ли код .net 3.5 работать в другом пул приложений?

Ответы [ 6 ]

5 голосов
/ 05 июня 2011

Я наконец нашел ответ на этот вопрос. Проблема с производительностью, о которой я упоминал ранее, была обнаружена моей командой. Не загружается .NET 3.5 в домене приложения .NET 4.0.

Чтение этой статьи: http://msdn.microsoft.com/en-us/magazine/ee819091.aspx

In-Proc SxS не решает проблемы совместимости, с которыми сталкиваются разработчики библиотеки. Любые библиотеки непосредственно загружается приложение - либо через прямой Ссылка или сборка. Загрузка - будет продолжать загружать прямо в время выполнения и AppDomain из приложение загружает его. Это означает что если приложение перекомпилировано работать против .NET Framework 4 время выполнения и до сих пор зависит сборки, собранные против .NET 2.0, эти иждивенцы будут загружаться в .NET 4 времени выполнения, а также. Поэтому мы все еще рекомендуем протестировать свои библиотеки против всех версий рамки, которые вы хотите поддержать. Это одна из причин, по которой мы продолжили чтобы поддерживать наш высокий уровень отсталых совместимость.

Таким образом, нет проблем с загрузкой сборок .NET 3.5 непосредственно в приложения .NET 4.0 без перекомпиляции их в .NET 4.0.

1 голос
/ 20 мая 2011

Запланируйте собственное тестирование.Инструкции см. В this из шаблонов и практик.

Я не знаю, какие блоки вы используете, но вам следует подумать о переходе на EntLib v5.0, так как было многоулучшения в блоке регистрации приложений, а также рефакторинг / очистка базовой инфраструктуры.Ознакомьтесь с Руководством по миграции для Enterprise Library 5.0 .

1 голос
/ 19 мая 2011

Вы спрашиваете, будут ли проблемы с производительностью, на которые вообще нельзя ответить, так как это зависит от того, что делает ваш код.Скорее всего, вы не увидите никаких проблем.

Несмотря на то, что Microsoft многое сделала для обеспечения обратной совместимости с предыдущей версией среды выполнения, вы должны знать, что есть несколько критических изменений.Вы найдете их в MSDN здесь:

.NET Framework 4 Проблемы миграции (включая документацию по ASP.NET, .NET Core, Data /ADO.NET, WCF, WPF и XML)

Microsoft также предоставляет рекомендации и ссылки на дальнейшие задачи планирования миграции:

Руководство по миграции на.NET Framework 4

Поскольку вы должны быть готовы к любым проблемам, не забудьте запланировать некоторое время для дополнительного тестирования.

1 голос
/ 19 мая 2011

4.0 - это расширенный набор 3.5, поэтому проблем не должно быть. Весь код 3.5 будет работать так же, как и при сборке с VS 2008. Сначала вы должны выполнить это
Существует ссылка MSDN Что нового в .NET Framework 4
Руководство по миграции на .NET Framework 4
.NET Framework 4 RTM Совместимость приложений: пошаговое руководство

Если вы выполните поиск в Google, вы найдете много статей, озаглавленных «Что нового в 2010 году». Вы не найдете таких вещей, как «Что отличается»

За исключением этого небольшого отрывка из MSDN:

.NET Framework 4 очень совместим с приложениями, которые построен с более ранней .NET Framework версии, за исключением некоторых изменений, которые были сделаны для повышения безопасности, соответствие стандартам, правильность, надежность и производительность.

.NET Framework 4 не поддерживает автоматически использовать свою версию общеязыковая среда выполнения приложения, созданные с более ранние версии .NET Фреймворк. Для запуска старых приложений с .NET Framework 4 вы должны скомпилируйте ваше заявление с целевая версия .NET Framework указано в свойствах для вашего проект в Visual Studio, или вы можете укажите поддерживаемую среду выполнения с помощью Элемент в приложении файл конфигурации.


0 голосов
/ 20 мая 2011

.NET 3.5 DLL загружаются в отдельном домене приложения, чем .NET 4. Таким образом, все вызовы .NET 3.5 DLL из .NET 4 будут осуществляться через домен приложения.Это означает довольно много накладных расходов.Если вы не можете перестроить исходный код 3.5 в .net 4, я бы не рекомендовал его использовать.Один из моей команды попробовал это, и затем они увидели довольно плохую производительность, поэтому они вернулись к .NET 3.5.Пока мы не получим исходный код для всех DLL-библиотек .net 3.5 или поставщиков .NET 4 DLL, мы не собираемся обновлять нашу кодовую базу до net 4.

0 голосов
/ 19 мая 2011

Ну, у него не должно быть проблем с производительностью.Тем не менее, одним из основных отличий является то, что .Net 4.0 поставляется с другой средой выполнения, которая может вводить некоторые различия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...