Будут ли .net 2.0 и 3.5 работать рядом? - PullRequest
7 голосов
/ 08 января 2009

Мы являемся магазином разработки, который до сих пор делает большую часть нашей разработки в .net 2.0. Мы начинаем думать об использовании некоторых новых вещей в 3.5 (LINQ и т. Д.), И есть некоторые другие программные пакеты, на которые мы смотрим, требующие WPF и т. Д.

Мы бы хотели запустить 3.5 на нашем тестовом сервере, но без разрушения любого из сайтов 2.0, которые у нас уже есть (и мы бы хотели, чтобы они продолжали работать под 2.0). Есть ли какие-то скрытые проблемы, о которых я должен знать, или я могу просто установить 3.5 на наш компьютер с Server 2003 и быть готовым к работе?

(Особую озабоченность вызывает то, что, несмотря на то, что Microsoft утверждает, что компоненты .net 2.0 одинаковы в 3.5, они действительно что-то изменили.)

Обновление: благодаря всем комментариям здесь и прочтению, мы решили откусить пулю и установить 3.5 на сервер «просто чтобы посмотреть, что произойдет».

Запустив программу установки, мы обнаружили (к нашему несомненному удивлению), что .net 3.5 был установлен еще в августе - и никто из нас не знал об этом.

Что, на самом деле, является столь же простым обновлением, как вы можете просить.

Спасибо всем!

Ответы [ 9 ]

12 голосов
/ 08 января 2009

2.0 будет хорошо играть с 3.5. .NET 3.5 - это всего лишь несколько дополнительных классов, добавленных поверх 2.0, так что все совместимо. Я переместил несколько проектов с 2.0 на 3.5, и все прошло очень плавно, всего лишь перекомпиляцией.

7 голосов
/ 08 января 2009

.Net 3.5 - это, по сути, набор дополнительных сборок, которые работают бок о бок с библиотеками 2.0. Ни в одной из существующих библиотек 2.0 не произошло ни одного критического изменения. Вы можете напрямую конвертировать все ваши приложения 2.0 в 3.5 без единой проблемы. Это включает в себя запуск приложений 2.0 на платформе 3.5. Некоторые оптимизации и исправления ошибок были сделаны в 2.0, но все открытые интерфейсы остаются неизменными. Это относится ко всему пространству имен, включая System.Web.

В версии 3.0 и 3.5 было добавлено много новых функций, таких как WPF, структура сущностей и несколько других "сред". Классы были добавлены в существующие пространства имен, но на самом деле они живут в отдельных библиотеках.

Одна вещь, которую нужно отметить как FryGuy указывает:

Будьте осторожны при установке 3.5 SP1, потому что он также устанавливает 2.0 SP2, который добавляет некоторые дополнительные функции. это было бы хорошо, за исключением визуального студия будет использовать IntelliSense и все будет хорошо скомпилироваться и работать отлично подходит для разработчика, но полностью потерпеть неудачу с неясной ошибкой на компьютерах с "просто" 2.0.

Примером этого является метод ManualResetEvent.WaitOne. SP1 добавлен перегрузка WaitOne (int), тогда как без него нужно позвонить WaitOne (int, false).

Как CMS от 4GuysFromRolla :

Additive versions of the .NET Frameworks
(источник: 4guysfromrolla.com )

3 голосов
/ 08 января 2009

Да, но с оговоркой.

Будьте осторожны при установке 3.5 SP1, поскольку он также устанавливает 2.0 SP2, который добавляет некоторые дополнительные функции. Это было бы хорошо, за исключением того, что Visual Studio будет использовать IntelliSense, и все прекрасно скомпилируется и будет отлично работать на компьютере разработчика, но полностью завершится с неясной ошибкой на компьютерах с «just» 2.0.

Примером этого является метод ManualResetEvent.WaitOne. SP1 добавил перегрузку WaitOne (int), тогда как без нее вам нужно вызвать WaitOne (int, false).

2 голосов
/ 08 января 2009

3.5 - это расширение, если 2.0. Нет 3.5 без 2.0. Это на самом деле другой DLL (Core.dll). Это не похоже на переход с 1.1 на 2.0; если ваши старые сайты не ссылаются на новую dll, то эти сайты не будут изменены вообще.

1 голос
/ 08 января 2009

Помимо всех предоставленных ответов, и поскольку ваша работа должна быть поставлена ​​на карту, вам следует сначала попробовать ее на тестовом сервере, а затем развернуть на рабочем сервере.

По моему опыту, у нас не было проблем с обновлением до .NET 3.5 на наших веб-серверах.

1 голос
/ 08 января 2009

За последние пару лет я сделал это на двух очень больших системах, и у меня не было абсолютно никаких проблем в обоих случаях. 3.5 работает поверх версии 2.0.

3.0 действительно должно было быть 2.1, а 3.5 должно было быть 2.5. Если это поможет любому. 3.0 и 3.5 на самом деле являются просто функциональными расширениями до 2.0 и не включают их собственную среду выполнения. Выпуски пакета обновлений до 2.0 - это место, где обнаружены изменения в версии 2.0.

1 голос
/ 08 января 2009

Просто добавим, что версии .NET предназначены для совместной работы, а не только для 2.0 / 3.0 / 3.5. Вы также можете запустить 1.1 вдоль стороны, и все будет в порядке.

0 голосов
/ 08 января 2009

Как уже говорилось, у вас не будет проблем:

Additive versions of the .NET Frameworks
(источник: 4guysfromrolla.com )

: -)

0 голосов
/ 08 января 2009

Нет, вы не можете. Это, вероятно, будет работать, но 3.5 заменяет определенные части 2.0, поэтому вам необходимо пройти регрессионный тест.

[править] Не голосуйте, если вам не нравится ответ.

Я специально задал этот вопрос на TechEd. Сохранение одного и того же API не означает, что реализация ведет себя одинаково. В то время выступавший говорил об улучшении производительности (без подробностей).

Повторюсь, поскольку он, кажется, не регистрируется: API тот же, реализация другая (как вы можете видеть по ссылке Hanselman в комментариях). Мика, ты, похоже, не знаешь, о чем говоришь.

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