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

Убедите меня перейти на .net 3.5 (из 2.0)

Я занимаюсь разработкой новых настольных приложений. Я чувствую себя как дома с .NET 2.0 и С#. Наверное, мне не нужен linq, и не заботясь о WPF и других привлекательных ключевых словах Vista-oid. Мне также нравится довольно жесткий и тонкий 2.0 распространяемый, даже больше по причине его Vista и 7 включены.

Зачем переключаться на 3.5?

4b9b3361

Ответ 1

Одно слово:

Linq

Как только вы выполнили один запрос на своих объектах с помощью Linq, вы никогда не вернетесь. Linq - это не просто базы данных, вы можете иметь любую коллекцию, и если вы можете выразить себя функционально, вы можете изменить

foreach (obj in myCollection)
{
   if (obj.property == match)
   {
      foundObj = obj;
      break;
   }
}

к

myCollection.Single(obj => obj.property == match);

ИЗМЕНИТЬ: ИЛИ

var foundobj = 
(from obj in myCollection
where obj.property == match)
.Single()

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

Извините за написание, но мне действительно нравится Linq.

Ответ 2

Предположение: вы работаете с Visual Studio 2005 и .NET 2.0.

Причина №1: Vista включает в себя .NET 3.0 в составе установки ОС; Windows 7 включает .NET 3.5

Причина № 2: Есть способы настроить .NET 2.0 с помощью Visual Studio 2008 (и VS 2010), чтобы вы могли получить выгоду от производительности этих инструментов без отказа от .NET 2.0, а затем перейти на .NET 2+ когда будешь готов. (Visual Studio может помочь вам избежать сборки не .NET 2.0 во время кода.)

Причина № 3: методы расширения, особенно статический класс Enumerable. Технически, часть Linq, но хороший способ писать код чистым, понятным и более удобным образом.

Причина № 4: Исправлены ошибки в платформе .NET 2.0. Помните, что .NET 3.0 и .NET 3.5 по-прежнему используют ту же среду выполнения .NET 2.0 под капотом - они просто добавляют новые фреймворки/библиотеки и некоторые трюки компилятора. На время выполнения, в котором вы отсутствуете, была исправлена ​​ошибка тонна.

Ответ 3

Одной из причин не использовать 3.5 является Mono.

Mono API сегодня находится где-то в между .NET 2.0 и .NET 3.5 см. наш Дорожная карта для получения подробной информации о том, что реализованы.

Взято из здесь.

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

Мое понимание заключается в том, что некоторые вещи, такие как LINQ, могут быть отлично использованы с .Net 2.0, поскольку это просто библиотека.

Ответ 4

Перемещение с .NET 2.0 на .NET 3.5 даже не должно рассматриваться. Вот несколько причин.

  • .NET 3.5 полностью обратно совместим с .NET 2.0, поскольку он построен на одном ядре. 3.0 и 3.5 являются просто расширениями до 2.0.
  • LINQ. Вы можете использовать Linq даже без использования баз данных. Это меняет все. Эта функция сама по себе стоит того, чтобы двигаться.
  • Lambda Expressions - мощные возможности поиска в коллекции. Связано с LINQ.
  • Анонимные методы. Созданы mthods без полного их определения.
  • Анонимные типы
  • Windows Workflow Foundation - создание рабочих процессов.
  • Windows Presentation Foundation - заменяет устаревшие Windows Forms - все еще можно использовать с существующими WinForms.
  • Silverlight - масштабированная версия WPF для приложений Web-Facing. Аналоговый для Flash.
  • Windows Communication Foundation - заменяет традиционные компоненты Remoting и Web Services более надежной инфраструктурой.
  • Для веб-разработки - ASP.NET MVC Framework - BEST!!!!

Без .NET 3.5 вы упускаете много. Шутки в сторону. Сделайте прыжок. Вы будете рады, что сделали.

Ответ 5

Если вам не нужен LINQ, не нужно WPF (или WCF) и не нравится расширенное использование дженериков, простой ответ: не делайте этого!

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

Итак, если вы полностью довольны 2.0 и никогда не говорили "Мне жаль, что я не могу просто... xyz", я предлагаю вам оставаться там, где вы есть.

Ответ 6

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

.NET 3.5 также включен в Windows 7.

Вопрос: почему бы и нет?

Ответ 7

Я бы обновил только для лямбда!

SaveButton.Click += new EventHandler((sender, e) => this.Save());

Ответ 8

Если вам не нужно использовать какие-либо из 3.5 функций, тогда не беспокойтесь, это просто добавление новых библиотек Framework, CLR и CLI не изменились, поэтому все, что вы пишете, будет использовать фреймворки из версий 2.0, 3.0 или 3.5 все заканчиваются как один и тот же IL-код. Зная это, если в какой-то момент в будущем вы решите, что хотите добавить к вашему приложению некоторые функциональные возможности 3.5, вы можете сделать это, зная, что не будет никаких миграционных болей (как обновление от 1,1 до 2,0), так как все вы "Действительно, это говорит Visual Studio, чтобы" позволить вам добавить 3.0/3.5 dll "в ваш проект. Конечно, вы должны убедиться, что у вас установлены .net 3.0/3.5.

Ответ 9

Я знаю разных людей, которые чувствуют себя как дома с сборкой C, 8086, APL, перфокартами и передними тумблерами (не шучу). Они дают те же причины, что и вы.

Не могли бы вы посоветовать программисту по сборке попробовать С# 2.0? Если это так, возможно, вам следует попробовать С# 3.5 по тем же причинам. Если нет, продолжайте пользоваться С# 2.0, и знайте, что люди скоро увидят вас так же, как сегодня мы видим программистов на сборке.: -)

С# 3.5 намного лучше позволяет вам создавать абстракции более высокого уровня, чем С# 2.0, так же, как С# 2.0 лучше, чем C и C, чем сборка. В конце концов, не потому, что мы программируем в HLL в первую очередь?

Ответ 10

Кажется, что каждое приложение должно общаться с другими приложениями сейчас. Итак,

  • WCF

Написав в прошлом коммуникационную библиотеку TCP, я был бы в восторге, в восторге, в восторге и в противном случае вполне счастлив, если бы смог сохранить эти месяцы, проведя 1 день с WCF.

Ответ 11

Функции, которые я использую больше всего:

  • LINQ
  • Методы расширения
  • Автоматические свойства

Если вы не использовали LINQ, и попробуйте, я думаю, вы обнаружите, что это может быть очень мощный инструмент.

Ответ 12

Насколько далеко ты хочешь быть?.NET 4 скоро появится. Облако (через Azure или даже Live Mesh) вычисляет следующую волну, поэтому вы, вероятно, захотите быть готовым к сетевому подключению, зная WCF.

Если вы не хотите изучать новый материал, вы все равно сможете создать хорошие настольные приложения с 2.0. Но часть того, чтобы быть разработчиком, понимает, что будет дальше. Даже если вы не настроите таргетинг на более позднюю версию фреймворка, вы должны хотя бы потратить некоторое время, чтобы изучить немного LINQ, WPF и WCF, чтобы вы знали свою силу. Затем, когда вам нужно что-то, что доступно только в более поздней версии фреймворка, вы узнаете, почему вы его используете, а также должны быть в состоянии оправдать загрузку фреймов вашим клиентам.

Ответ 13

Я не убежу вас переходить на 3.5, если вы создаете настольные приложения для аудитории, которая будет обременительной для обновления (например, пользователи до Vista для медленных соединений с пропускной способностью). В конце концов клиент приходит первым.

Как упоминалось несколькими другими, вы можете использовать много новых функций компилятора С#, даже если вы нацеливаете 2.0 (например, инициализаторы объектов, автоматические свойства), проверьте это для деталей. Кроме того, вы можете использовать LINQ on 2.0, используя библиотеку LinqBridge, которая очень мала и может быть распространена вместе с вашим приложением ( это Linq для объектов, а не Linq для SQL)

Ответ 14

Если вы создаете или потребляете веб-службы, вам следует знать, что Microsoft теперь рассматривает веб-службы ASMX как "устаревшую технологию". Все новые разработки веб-сервисов должны быть выполнены с использованием WCF - который недоступен до .NET 3.0 и становится довольно зрелым и стабильным на .NET 3.5.

Ответ 15

Не следует ли на самом деле запросить "Убедить моих пользователей/клиентов переходить с .NET 2.0 на 3.5"

Вы не сказали, пишете ли вы код для клиента/пользователя или как хобби. Если это последнее, то да, все это насчет убеждения.

В противном случае я не вижу, чтобы ваш клиент был очень взволнован тем, что вы в состоянии использовать Linq в своем коде, если только он не позволит вам сделать что-то значительно быстрее и надежнее, чем раньше.

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

Теперь, если ваш клиент приходит к вам и говорит, я хочу, чтобы у моего нового настольного приложения был графический интерфейс, похожий на одну из этих веб-страниц с фантастическими анимациями и т.д., тогда это очевидно. Вы должны серьезно посмотреть на .NET 3.0/3.5 для Windows Presentation Foundation и т.д.

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

Ответ 16

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

Ответ 17

Если вы часто используете ретранслятор в Asp.Net, такой как элементы управления, элемент управления ListView намного чище и проще в работе с альтернативой, доступной для asp.net 3.5.

Я также время от времени использую модуль маршрутизации из MVC и нахожу его намного лучше для небольших сайтов, чем что-то вроде перезаписи URL.

Ответ 18

Прочтите этот блог http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx

Отсюда вы получите лучшее представление о .Net 3.5 и VS 2008.

Почему более высокая версия - это то, что более высокая версия имеет легкую для разработки и также высокую производительность:)

Ответ 19

Я использую 3.5 для моего основного проекта на данный момент, и есть так много преимуществ. LINQ, Entity Framework, WPF (особенно для привязки данных), LINQ, методы расширения, автоматические свойства, LINQ, oh и Lambda Expressions (это потрясающе)! И я упомянул LINQ?

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

Я всегда использую самую низкую версию фреймворка, которую я могу, до тех пор, пока она заполняет все мои требования. Так что если это всего лишь небольшой инструмент, я могу пойти с 2.0, если я хочу хороший пользовательский интерфейс, я использую 3.0, и если у меня много материала базы данных, я использую 3.5 SP1 с Entity Framework.

Ответ 20

Из-за профиля клиента .NET 3.51 со временем выполнения, сравнимым с .net 2.0!