Подводные камни для преобразования решения .net 2.0 в .net 3.5 - PullRequest
6 голосов
/ 02 октября 2008

Мы перемещаем решение с более чем 20 проектами с .net 2.0 на 3.5 и в то же время переходим с Visual Studio 2005 на 2008. Мы также одновременно с MS Entlib 2.0 на 4.0.

  • Есть ли причины не пускать Visual Studio Wizard преобразует решение для нас?
  • 3,5 полностью обратно совместим с 2.0?
  • Является ли Entlib 4.0 полностью обратно совместимым с 2.0?

Редактировать: Возможно, я немного растерялся, когда писал это, предполагается, что обратная совместимость означает; Есть ли что-то, что существует в проекте 2.0, который не будет работать / компилироваться в 3.5

:)

// W

Ответы [ 6 ]

6 голосов
/ 02 октября 2008

Мы модернизировали довольно большое решение (более 20 проектов) с 2005 по 2008 год, но оно было действительно тривиальным. Обновление проекта только в принципе. Базовая структура остается неизменной, поскольку и 3.0 / 3.5, и 2.0 используют одну и ту же базовую структуру.

Как было сказано выше, даже если вы выполняете обновление, вам не нужно менять ссылку на каркас для проектов - фактически, он по умолчанию оставляет фреймворк на уровне 2.0 вместо того, чтобы менять его на 3.0 / 3.5. Это означает, что вы не сможете воспользоваться преимуществами функций 3.0 / 3.5, пока не измените ссылку (страница «Свойства проекта», поле «Таблица целей» таблицы приложений), но это также означает, что вы гораздо увереннее, что дополнительной совместимости не будет проблемы (так как вы получите ошибку при добавлении кода 3.0 / 3.5, пока эта ссылка не будет изменена).

Не следует упускать из виду и новые возможности TFS 2008, хотя вам не нужно обновлять приложение, чтобы иметь возможность использовать TFS 2008.

1,1 в 2,0 преобразование было гораздо более болезненным ...

4 голосов
/ 02 октября 2008

Я обновил несколько проектов с Visual Studio 2005 до 2008 с помощью мастера, и все они прошли безболезненно (хорошо ... за исключением этого чудовища C ++. Но вы все равно говорите о .NET).

Имейте в виду, что вам не нужно обновлять версию .NET. Visual Studio 2008 поддерживает .NET 2.0, 3.0 и 3.5. Тем не менее, 3.5 в любом случае обратно совместим, так как он находится в том же CLR и, более или менее, является лишь некоторыми дополнительными библиотеками. И «старые» библиотеки остаются прежними.

Я не знаю об Энтлибе.

Почему бы вам просто не попробовать запустить свои юнит-тесты? :)

1 голос
/ 09 июля 2009

Не должно быть никаких серьезных изменений при переходе с EntLib 3.1 на 4.0:

"В общедоступном API нет серьезных изменений. Это было одной из целей разработки EL4. Просто помните, что EL4 требует .NET3.5.

- Григория "

http://blogs.msdn.com/agile/archive/2008/05/16/enterprise-library-4-0-for-visual-studio-2008-released.aspx

(Григори - менеджер программ для EntLib)

Я не уверен насчет 2.0 до 3.1. Если я смогу найти подходящих людей @ p & p завтра, я обновлю это.

Ade

1 голос
/ 26 июня 2009

Когда я обновил EntLib 2.0 до 4.0, я заметил следующее изменение исходного кода при использовании блока приложения Caching:

  • В 2.0 вы получаете менеджер кэша, используя CacheManager cache = CacheFactory.GetCacheManager().
  • В 4.0 вы должны заменить CacheManager на ICacheManager, иначе он не скомпилируется.

Кроме того, если вы пишете свой собственный класс форматирования исключений для блока обработки исключений:

  • В 2.0 вы должны определить один конструктор с подписью (TextWriter, Exception).
  • В 4.0 это устарело, и вам нужно определить второй конструктор с подписью (TextWriter, Exception, Guid).
1 голос
/ 02 октября 2008
  • Есть ли причины не позволять мастеру Visual Studio преобразовать решение для нас?

номер

  • Является ли 3.5 полностью обратно совместимым с 2.0?

Нет. В 3.5 есть новые функции, которые изначально не переносятся в обратном направлении. И (IIRC) есть некоторые амортизации, идущие от 2,0 до 3,5.

  • Является ли Entlib 4.0 полностью обратно совместимым с 2.0?

Я так не думаю. 3.5 указан как требование.

Сделайте резервную копию, запустите мастер, посмотрите, что получится. Для такого короткого проекта может потребоваться некоторое время, но вы будете в состоянии определить, будет ли он собран / запущен как ожидалось.

0 голосов
/ 08 сентября 2009

Проверьте эту ссылку о том, как перейти с .net 2.0 на .net 3.5

http://codingreview.blogspot.com/2009/09/how-to-migrate-your-application-from.html

...