Стоит ли переход с C# 2.0 на C# 3.0 для этого проекта?[закрыто]

StackOverflow https://stackoverflow.com/questions/170584

Вопрос

Я читал на Stack Overflow, что некоторые люди переходят с C#2.0 на C#3, но стоит ли оно того?

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

Обновлять:

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

Что в итоге сделано

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

Еще есть .NET 1.0, .NET 1.1, .NET 2.0, .NET 3.0 и .NET 3.5.

Мы не должны путать эти два понятия.

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

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

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

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

Я думаю, что многое зависит от вашего личного стиля. ИМХО, лучшие возможности C # 3.5 действительно сводятся к следующему

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

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

Что еще лучше, можно использовать компилятор 3.5 для снижения целевой CLR 2.0. Это позволяет выполнять развертывание на основе установки 2.0 (вместо установки 3.0 / 3.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!

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

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

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

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

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

Вам не нужно ничего менять; нацеливаясь на Framework 3.5, вы получаете больше возможностей.

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top