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

В чем преимущества обновления от .NET 2.0 до .NET 3.5?

Мне нужна помощь. Мой руководитель, который не программист, попросил меня подготовить документ, описывающий, как наша компания выиграет от перехода на .NET 3.5 из .NET 2.0. Мы небольшая компания, и наш ИТ-отдел состоит всего из 6 программистов. Мы пишем в основном Windows Forms, иногда приложения ASP.NET и Compact Framework. Я хотел бы услышать о плюсах и минусах этого решения.

Edit:

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

Edit2:

Обратите внимание, что мой супервайзер НЕ программист (это действительно глупая ситуация, но это еще одна история), поэтому просто сказал ему, что .NET 3.5 имеет LINQ, а другие вещи ничего ему не говорят.

4b9b3361

Ответ 1

Я знаю, что это сложно определить в коммерческих терминах, но... LINQ/лямбда-выражения!

Кроме того: вы можете использовать преимущества более высокоуровневых API, таких как Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (я думаю, вы получаете идею об аббревиатурах). VS2008 гораздо приятнее использовать для материала ASP.Net, а также (продайте это как более высокую производительность. Я не сделал достаточно оконных форм для работы в vs2008, чтобы давать какие-либо рекомендации там).

Ответ 2

Это стоит сломать.

"переход от 2.0 до 3.5" - это на самом деле несколько вещей (некоторые необязательные некоторые)

  • Версия библиотек BCL идет от 2.0 до 3.5
    • На самом деле это в значительной степени добавление некоторых библиотек, подобных тем, которые отвечают за LINQ. В библиотеках из 2.0, с которыми вы знакомы, были исправлены ошибки (незначительные).
  • Изменения компилятора
    • Переход с С# 2.0 на С# 3.0
      • Выражения Lamda
      • вывод типа var
      • значительно улучшена поддержка дизайнеров через частичные классы
      • LINQ (к объектам, к xml, к sql
      • анонимные типы
      • автоматические свойства
      • Методы расширения
      • и многое другое...
    • Переход от VB.Net 8.0 к VB.Net 9.0
      • то же самое, что и С# в отношении lamdas/LINQ/var
      • XML-литералы
  • VS 2008 вместо 2005
    • Улучшение intellisense (быстрее, более терпимо к отказам в нем, не сводя на нет все приложение)
    • интеграция модулей тестирования в VS 2008 Professional, а не в командной системе.
    • гораздо больше изменений, чем я могу перечислить здесь.

Вам реально нужно перейти на VS 2008, чтобы добиться обновления компилятора С#.
Вы можете обновить компилятор, но НЕ переходите к библиотеке 3.5, это означает, что вы теряете определенные аспекты Linq, если не используете подключаемый модуль для замены, например LinqBridge.

Каждое из этих обновлений приносит свои плюсы (и несколько минусов).

Для ваших нужд я бы предположил, что доступ к новому MVC ASP.Net может оказаться полезным. У меня нет личного опыта, но он, как представляется, широко рассматривается в качестве хорошей основы для такого рода использования.

Интегрированная функциональность тестирования означает, что вы можете использовать это бесплатно (я считаю, что возможность отладки в мои модульные тесты легко стоила стоимости таких инструментов, как TestDriven.Net, поэтому полезно использовать некоторые из них бесплатно.

Улучшенная стабильность (и время запуска) на VS 2008 была очень полезна для меня. Я также нахожу "Go To Definition" невероятно полезной командой, которая ускоряет мой рабочий процесс удивительно.

Я второй, кто говорит, что новые улучшения языка LINQ полезны. Я нахожу, что методы расширения на IEnumerable<T> выполняют определенные задачи, которые требовали много строк плиты котла, и ненужные переменные принимают только одну (очень описательную) линию. Это уменьшает необходимость разделения функциональности на большее количество методов и повышает удобочитаемость.

Ответ 3

Был ли у вас взгляд на Microsoft "Какой новый" документ? IMHO, преимущества огромны, потому что .NET 3.5 предлагает инфраструктуру Linq. Я не могу говорить за ASP.NET, но в целом, Linq to Object чрезвычайно эффективен и повышает производительность.

Затраты, с другой стороны, относительно малы (опять же IMHO), так как Microsoft предлагает бесплатную установку новой платформы .NET с помощью функции автоматического обновления Windows.

Ответ 4

Если вы пишете CF, я знаю из первых рук, что CF 3.5 значительно улучшен с CF 2.0; некоторые из ограничений knotier исправлены, и вы просто имеете гораздо больше возможностей для выбора. Простые вещи, такие как Delegate.CreateDelegate, могут использоваться для того, чтобы значительно оптимизировать вещи.

В winform из WPF предлагается альтернатива. Для ASP.NET MVC становится опцией.

Oh и LINQ для всех ваших запросов: -p (хотя это также доступно с компилятором С# 3.0 с .NET 2.0 + LINQBridge).

Ответ 5

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

  • Экономия времени, экономя деньги!
  • Улучшение качества
  • Улучшение взаимодействия (совместимость с браузерами i.e.com)
  • Улучшение управляемости

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

Дайте ему оценку усилий, связанных с модернизацией, а затем покажите, как долго дополнительные преимущества 3.5 будут выше ожидаемых усилий по модернизации! это ROI (возврат инвестиций)

Опять же, если все это растягивается, попробуйте честность: все разработчики хотят играть с новыми игрушками .net 3.5 и умудряются вникать в самые последние и самые большие, чтобы мы могли поместить это в наши резюме. Это будет большой опыт и поможет нам получить работу в другом месте;-)

Ответ 6

Многие из этих функций вошли в .Net 3.0. Не все, но многие из них.

Ответ 7

Чтобы подчеркнуть точку Джоэля, LINQ/Lambda значительно уменьшают количество ошибок в слое пользовательского интерфейса. LINQ лучше всего подходит для кода, где вам нужно выжимать каждый цикл, но для чего-то, где .02 дополнительных секунд не имеет значения, это здорово. Microsoft сделала это так, что вы можете писать циклы в естественном языке, как работает один ум. Это избавляет вас от беспокойства по поводу индексов цикла, массивов держателей мест, краев и т.д. У меня не было ни одной ошибки в моем (правда, малом) интерфейсе, так как я сделал переключатель.

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

Если вы выполняете многопоточность, ReaderWriterLockSlim обеспечивает огромное улучшение скорости по сравнению с ReaderWriterLock в версии 2.0 и еще большее улучшение по сравнению с блокировкой().

Ответ 8

Другое дело, что вы можете использовать новый Microsoft Chart Controls, которые в основном являются клонами Dundas Chart, но они бесплатны. Если вам нужны графические функции, это сэкономит вам сотни долларов за каждый сервер (при условии, что вы работаете с ASP.NET).

Ответ 9

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

Ваш вопрос уместен, потому что во многих случаях возникает этот вопрос, и во многих случаях наши начальники не имеют какого-либо технического фона или больше смотрят на стоимость разработки и, в конечном счете, на обновление серверных или пользовательских машин, и если у них есть их знаменитые ROI (возврат инвестиций).

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

Ответ 10

LINQ to SQL, никогда не записывайте 4 процедуры хранения для 1 объекта снова.

Вы напишете несколько, но только для повышения скорости и эффективности.

Ответ 11

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

Я просто хотел добавить, что, поскольку 3.5 действительно просто дополнительные DLL поверх 2.0, похоже, вопрос в том, почему бы не переключиться. Вся ваша база кода должна немедленно запускаться в версии 3.5 после преобразования файлов проекта в VS2008. Пока обновление до нового VS не является проблемой, на самом деле не должно быть никакого недостатка в обновлении. Затем вы можете использовать новые функции и применять затем, когда сочтете нужным.

Ответ 12

Я сказал это в других разговорах, но, несмотря на то, что классный LINQ я бы добавил осторожность, чтобы сосредоточиться на этом. Нам, программистам, нравится измерять и давать неоспоримые результаты, но мы все, похоже, утверждаем, что использование LINQ "повышает производительность" без каких-либо вопросов. Где результаты исследований, подтверждающие эти претензии? Как вы можете продвигать это в бизнесе, не прибегая к нечетким, неизмеримым данным?

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

Сосредоточьтесь на усовершенствованиях и улучшениях CF 3.5 для ASP.NET. Черт, они даже исправили ошибку в String.IsNullOrEmpty(). Есть много веских причин для обновления. Если вы не на VS2008, то это стоит того, чтобы обновлять, ускорять время сборки, рамки таргетинга и т.д. Это достойное обновление.

Еще один момент заключается в том, что вы можете начать поиск проблем, решаемых в 3.5 или 2008 году, или использовать код или компоненты, которые доступны только в последней версии. Представьте, что вы застряли от дерьмовой проблемы в поиске решения в Интернете, но затем не можете использовать это исправление, потому что вы находитесь в старой версии. Разочарование.

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