Ответ 1
(Как уже упоминалось в других ответах, а также некоторые дополнительные функции:)
-
Преобразование решения VS 2005 в VS 2008 будет означать, что вам нужно будет поддерживать дубликаты, или другие должны также использовать Visual Studio 2008 (в то время как формат файла проекта (который из вашего вопроса, который вы не используете в любом случае) теоретически не меняется в период с 2005 по 2008 год, файлы решений несовместимы...)
-
Преобразование веб-сайта в 3.5 в основном влияет на web.config. Некоторые ссылки добавляются к нескольким сборкам по умолчанию 3.5, таким как System.Core.dll. И он добавит разделы IIS 7 (которые игнорируются, если сайт опубликован в ящике IIS6).
-
Как правило, не вижу новых ошибок компиляции во время обновления (и если да, то не ожидали бы многих). Обе команды С# и VB приложили усилия для обеспечения обратной совместимости во всех новых ключевых словах LINQ... так что вы можете иметь локальное имя "var" в методе "where" в классе с именем "from", и все компилируется просто отлично... (улучшение для тех, у кого были символы с именем "operator" в кодовой базе VB 2003 при обновлении до 2005 года: -)
-
Очевидно, что после переключения вы будете использовать .NET 3.5 на любом сервере, на котором вы развертываете. В отличие от .NET 1.1 vs .NET 2.0, нет проблем с CLR-версией/AppPool, о которых нужно беспокоиться, все это работает в .NET 2.0. Читайте ниже...
Если вы беспокоитесь о регрессии во время выполнения для любого существующего кода .NET 2.0, есть хорошие новости и плохие новости.
Хорошие новости: регресс практически не слышен.
Плохая (или другая хорошая) новость: если вы установили .NET 3.5 на сервер с 2.0 сайтами, вы уже опробовали регрессии:)
Как уже упоминалось выше,.NET 3.5 - это просто CLR.NET 2.0 с некоторыми дополнительными сборками и новыми возможностями компилятора.
И когда вы устанавливаете .NET 3.5, он также устанавливает пакет обновления для .NET 2.0 и 3.0. Таким образом, любое изменение изменения уже повлияет на веб-сайты .NET 2.0 без какого-либо явного шага обновления.
Скотт Ханзельман опубликовал хорошее объяснение разницы между версией CLR и версией .NET Runtime здесь некоторое время назад.Один заключительный комментарий - вы должны знать, что при использовании VS 2008 для целевой .NET 2.0 вы фактически компилируете против обновленного .NET 2.0. Поэтому, если вы используете один из (очень немногих и редко используемых) методов, который тихо добавляется к обновленной версии .NET 2.0, например GCSettings.LatencyMode, при развертывании на машине с исходным RTM.NET 2.0 она будет не работает. Читайте об этом более подробно здесь, а Скотт также опубликовал полный список API меняется здесь)
В то время как на самом деле проблема с подобной ситуацией довольно маловероятна, в некотором роде (даже исключая преимущества новых функций 3.5) вам лучше работать на 3.5:-)