Подтвердить что ты не робот

Является ли переход С# 2.0 в С# 3.0 для этого проекта?

Я прочитал о переполнении стека некоторых людей, которые конвертируются в С# 2.0 на С# 3, но действительно ли это стоит?

У меня есть проект, который выполняется на 75%, прежде чем перейти на этап обслуживания. Я спрашиваю себя, стоит ли переключиться на С# 3.0?

Обновление:

Теперь проект будет иметь веб-интерфейс, поэтому перед тем, как вы войдете в фазу обслуживания, мы должны разработать веб-часть (все было сделано для внутренних целей с помощью Windows Forms). Большинство частей будут повторно загружены (back-end). Большинство людей заявили, что в прошлом это не стоило, потому что это было уже на 75%... но теперь вы все еще думаете, что это не стоит?

Что было сделано наконец

Наконец, поскольку мы продолжаем проект с помощью веб-интерфейса, мы обновим его до 3,5 на новый год. Спасибо всем за ваш вклад.

4b9b3361

Ответ 1

Нет, я бы посоветовал нет. Я бы посоветовал начать 3.5 только по новым проектам, если только не существует конкретной причины. У вас не будет никакой пользы от 3.5, просто перекомпилировав, так как ваш код уже написан (или, по крайней мере, 75% от него).

Если вам нужно перейти на 3.5 в будущем, вы можете легко это сделать. Конечно, у вас будет код в стиле 2.0, но сделано.

  • Будьте консервативны, не делайте ничего, если вам это не нужно.
  • Приложение, которое составляет 75% в С# 2.0 и 25% в С# 3.0, не совсем хорошее зверь для поддержки. Приложение 100% С# 2.0, безусловно, более удобно.

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

Ответ 2

Разъяснение
С# 3.5 не существует. Есть С# 1.0, С# 2.0 и С# 3.0.

Тогда есть .NET 1.0,.NET 1.1,.NET 2.0,.NET 3.0 и .NET 3.5.

Мы не должны путать их.

С# 3.0 vs С# 2.0
Теперь стоит С# 3.0? Я бы сказал, что с существованием методов расширения и лямбда-выражений ответ да. Эти две функции позволяют легко читать и быстрее писать код. Добавьте это к автоматически реализованным свойствам, LINQ и частичным методам, а С# 3.0 проявит себя как выгодный ход.

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

Ответ 3

Есть ли какая-либо функция С# 3.5, которую вы хотите плохо на данном этапе?:)

Если это LINQ, вы можете дать LINQBridge попробовать. Благодаря мультитаргетированию Studio и LINQBridge вы сможете записывать локальные запросы (LINQ to Objects), используя всю мощь компилятора С# 3.0, и все же для ваших программ потребуется только Framework 2.0.

Ответ 4

Я думаю, что многое из этого придет к вашему личному стилю. IMHO, лучшие возможности С# 3.5 действительно сводятся к следующему

  1. Лямбда-выражения
  2. LINQ
  3. Методы расширения

Мой код OO по-прежнему имеет тенденцию выглядеть немного функционально ориентированным. Поэтому я рассматриваю 3.5 как огромную выгоду, и это определенно стоит обновления.

Что еще лучше, можно использовать компилятор 3.5 для снижения целевого CLR 2.0. Это позволяет развертывать на основе 2.0-установки (с установкой 3.0/3.5) с использованием новой структуры. Все это можно сделать в этом сценарии, если вы хотите добавить соответствующие типы в свою программу.

Ответ 5

На мой взгляд, нет оснований не переключаться на 3.5.

Реальная функция убийцы состоит в том, что вы можете продолжать нацеливаться на более старые версии среды выполнения (2.0+) при использовании всех новых функций языка. Таким образом, вы можете использовать новые лямбда-выражения, методы расширения, анонимные типы и все другие хорошие вещи. И если ваши клиенты по-прежнему в основном используют фреймворк 2.0, вы можете продолжить таргетинг на более раннюю среду выполнения.

(Просто не используйте ни один из классов из фреймворка 3.5, если вам нужно настроить таргетинг на более ранние версии).

Лично я считаю, что если вы делаете приложение для графического интерфейса для настольных компьютеров, лучше всего использовать фреймворк 3.0 или 3.5, поскольку WPF - лучшая библиотека пользовательского интерфейса, с которой я когда-либо работал (с большим отрывом).

С другой стороны, если вы уже писали большую часть своего графического интерфейса в WinForms, вам может быть интересна структура 3.5, которая позволяет (ограниченное) смешивание элементов WinForms и WPF GUI. Вы можете сохранить работу, которую вы уже сделали, но добавьте несколько приятных штрихов здесь и там, где это имеет смысл, с элементами управления WPF.

Еще одна удобная функция рамки 3.5 - "Инициализаторы коллекции". Проверьте это:

var myDictionary = new Dictionary<String, String> {
   { "key-1", "value-1" },
   { "key-2", "value-2" },
   { "key-3", "value-3" },
};

Аккуратно, да?

Мне понравилось бы немного лучше, если бы это было немного похоже на JSON. Но это очень удобная функциональность.

Любой объект может быть нацелен на этот код для среды выполнения 2.0.

Ответ 6

Если ваш проект почти завершен, вы, вероятно, не сможете воспользоваться новыми функциями 3.5. Для новых проектов это, безусловно, стоит посмотреть.

Ответ 7

Это действительно зависит от проекта, для кого он предназначен и что он делает.

Было бы безопасно догадаться, что .NET Framework 2.0 находится на многих других компьютерах, чем версия 3.5.

Кроме того, есть ли что-нибудь из .NET 3.5, которое недоступно в версии 2.0 (например, LINQ)? Если вы имеете дело с большим количеством запросов и данных, я бы переключился. Но опять же, зависит от клиента и если вы планируете поддерживать это приложение в обозримом будущем.

Ответ 8

С технологической точки зрения, это все каркас версии 2, и это очень мало усилий для достижения. Различия в 2.0, 3.0 и 3.5 - это просто дополнительный код библиотеки и некоторый синтаксический сахар компилятора.

Не похоже, что вам нужно что-то изменить; по таргетингу Framework 3.5 у вас больше возможностей.

С точки зрения вашей команды: Да, это того стоит. Никто не хочет работать на старых кодовых основаниях. Пока вы находитесь в разгаре развития, вы можете использовать самую современную стабильную технологию.

Ответ 9

Это действительно зависит от того, что вам нужно сделать. Если вашему проекту требуются выражения Lambda Expressions, где вы являетесь объектами запроса с четким синтаксисом, вы должны посмотреть на 3.0.

Сейчас я читаю С# In Depth от Jon Skeet, и он берет подход к выкладке решения в С# 1.15, затем развивается решение для описания новых и полезных функций, которые вы получаете в версиях 2.0 и 3.0. Этот тип прогресса был бы идеальным средством ответить на ваши вопросы. Книга читается хорошо, поэтому я нахожу, что быстро ее преодолеваю.

Ответ 10

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

  • стоимость конвертации довольно маленькая. С# 3.0 почти полностью обратно совместим с 2.0 и работает на платформе 2.0
  • пособие также довольно мало, если кодирование почти закончено, но может расти в долгосрочной перспективе. Новая функция, которую вы, возможно, придется реализовать в будущем, может оказаться намного проще реализована с использованием Linq, например.

Ответ 11

Я делал перевод много раз. В основном из-за того, что четкий синтаксис из лямбда-выражений делает код более удобным для меня (для меня в любом случае).

Я использую ReSharper, что позволяет использовать новые функции 3.5, так как многие из них появляются в качестве рефакторинговых предложений ReSharper. Использование такого инструмента делает этот переход намного проще.

Ответ 12

3.5 строит поверх 2.0, поэтому у вас нет проблем с прямым переходом на 3.5.

Ответ 13

Я бы... нет никакого вреда, и вы получаете некоторые преимущества от новых функций

Ответ 14

Я не понимаю всех вас, говорящих, что не делайте этого..NET 2.0 - текущая среда выполнения (CLR)..NET 3.0 и .NET 3.5 работают в среде исполнения 2.0. Переход на .NET 3.5 для получения возможностей С# 3.0 - это буквально вопрос об изменении одного раскрывающегося списка в ваших свойствах проекта. (ОК и развертывание 3.5 runtime для ваших целевых компьютеров, если вы используете некоторые 3.5 функции, такие как LINQ и т.д. Если установка 3.5 является проблемой, тогда это не такой простой ответ.)

Ответ 15

Я ничего не изменил бы, если у вас нет веских оснований для этого; т.е. есть ошибка, с которой вы не можете работать в версии 2.0.

Модернизация структуры в такой поздней точке проекта может вызвать некоторые проблемы, которые вам в действительности не нужны.

Ответ 16

Если у вас есть расширение для проекта, было бы неплохо переключиться на новую версию .NET, иначе я бы не стал.