Есть ли какие-либо преимущества для .NET Framework 3.5 вместо 2.0?

Есть ли какие-либо преимущества для .NET Framework 3.5 вместо 2.0?

Например, меньшее потребление памяти, более быстрый запуск, более высокая производительность...

Лично я так не думаю, что, возможно, что-то пропустил.

Изменить: Конечно, в структуре 3.5 есть больше возможностей, но это не является предметом этого вопроса.

Edit2: Кажется, нет никаких преимуществ.

Edit3: Да, я имел в виду таргетинг на Framework. Я установил последние 3.5 SP1 и VS 2008, так что разница между компиляцией и таргетингом на фреймворк? Я могу настроить таргетинг на структуру в параметрах проекта, но как мне "скомпилировать с" конкретную версию фреймворка? Я не знал, что есть разница.

Edit4: Так что пока мы согласны с тем, что нет никаких преимуществ.

Спасибо за ваши мнения

Ответ 1

Есть разница между компиляцией и таргетингом.

Компиляция кода с (например) компилятором С# 3.0, вероятно, даст вам преимущество по производительности (очень мало в любом случае), так как включена некоторая оптимизация для сгенерированного IL-кода. Он также позволяет использовать некоторые новые функции, такие как автоматические свойства или лямбда-выражения.

Ориентация для данной структуры гарантирует, что ваша сборка будет работать для этой структуры (и позади) и не удастся, если вы нацелитесь на 2.0 и используете библиотеку 3.5. Никакие улучшения производительности не будут напрямую связаны с этим, если вы не замените класс из одной структуры другим "самым быстрым" классом. Например, таргетинг на .NET 1.1 не позволит вам использовать дженерики, и поэтому вам придется использовать ArrayList, который значительно медленнее, чем List (из-за бокса и распаковки).

Ответ 2

Есть две вещи, которые нужно помнить в отношении .NET 2.0 и .NET 3.5.

  • .NET Framework 3.5 - это всего лишь несколько библиотек, которые работают поверх .NET 2.0.
  • При разработке в Visual Studio 2008 и таргетинге на .NET 2.0 вы все равно можете использовать некоторые языковые функции С# 3.0, такие как методы расширения, поскольку они на самом деле являются функциями компилятора С# 3.0 (или .NET 3.5). См. Эту ссылку: http://www.codethinked.com/post/2008/02/Using-Extension-Methods-in-net-20.aspx

Ответ 3

Я не нашел. Очевидным недостатком, если вам не нужны 3.5 специфические функции, является то, что база кода 3.5 моложе и, следовательно, возможно, хотя и маловероятна, что есть какая-то ошибка, скрывающаяся вокруг.

Ответ 4

Нет никакой пользы для компиляции в среду 3.5, если вы не используете какие-либо классы из этой версии фреймворка.

Ответ 5

Я предполагаю, что вы должны иметь в виду таргетинг на платформу .NET 3.5 для вашей компиляции? Если так, то, как сказали другие, я не верю, что вы увидите большую разницу.

Однако, если вы говорите об использовании обновленных компиляторов, тогда существуют различные изменения и изменения изменений, описанные как для С#, так и для VB по следующим ссылкам:

Ответ 6

Я считаю, что другой компилятор поставляется с каждой версией Visual Studio. Например, в случае С# компилятор 2.0, поставляемый с Visual Studio 2005 и С# 3.0, поставляется с Visual Studio 2008. В зависимости от того, какая версия Visual Studio вы используете, вы получаете другой компилятор.

Ориентация на фреймворк относится конкретно к той версии фреймворка, на которую вы хотите настроить таргетинг во время процесса компиляции; таргетинг - новая функция Visual Studio 2008. Например, я мог бы открыть решение в Visual Studio 2008 и целевой версии 2.0.NET. Результатом было бы то, что у меня не было бы возможностей 3.0 или 3.5.Net, доступных мне во время этой компиляции, например WPF.

Ответ 7

Если ваша сборка .NET нацелена на .NET 3.5, результирующее приложение будет искать и требовать библиотеки .NET 3.5, и это. Эти библиотеки поставляются с многочисленными дополнительными классами, не найденными в платформе .NET 2.0, поэтому было бы полезно настроить эти библиотеки.

Если вы, однако, компилируете код С# с отправкой компилятора С# 3.0, например. Visual Studio 2008 и подходит для .NET 3.5, но у вас есть цель сборки .NET 2.0, вам все равно понадобятся только обычные библиотеки .NET 2.0, и, несмотря на это, на самом деле используют некоторые функции компилятора .NET 3.5, так как ряд этих функций только используя код .NET 2.0 в конце. Подробнее об этом читайте здесь: http://weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and-net-2-0-code.aspx

Ответ 8

3.5 имеет классы, которых нет в 2.0. Например, Func <... > . Если вы нацелитесь на 2.0, вы не сможете их использовать.