Миграция с .NET 1.1 на .NET 3.5 - PullRequest
       21

Миграция с .NET 1.1 на .NET 3.5

8 голосов
/ 22 декабря 2008

Какие могут быть веские причины для обновления веб-приложения с .NET 1.1 до .NET 3.5?

Ответы [ 9 ]

19 голосов
/ 22 декабря 2008

Вопрос не в том «стоит ли вам», - с точки зрения возможностей и добавленных проверок во время компиляции; почти дано выбраться из фреймворка 1.1 и в фреймворк 2.0. Вопрос в том, как быстро вы должны портировать? Что нужно было бы изменить?

Первым шагом будет перенос вашего приложения на .NET 2.0. Причина в том, что в .NET 2.0 имеется множество функций, которых раньше не было, а предыдущие функции устарели. (В ASP.NET было множество функций, которые устарели в 2.0).

.NET 2.0 обеспечивает более строгую безопасность типов, допускающие обнуление типы и изменения в структуре. 2.0 представляет (что я бы сказал) первый «настоящий» выпуск платформы .NET. Это серьезный претендент, и вы обнаружите, что некоторые вещи фреймворка, которые вы используете в 1.1, были изменены в 2.0.

Это не простой сценарий «перенеси код вперед и получи преимущества». Если вы хотите получить преимущества, вам придется переписать некоторый код (особенно, что касается Generics); но даже в более крупной платформе .NET существует так много «закулисных изменений», что вам придется портировать ее постепенно: Не делайте скачок напрямую с 1.1 - 3.5.

1,1 - 2,0

Существует множество изменений между .NET 2.0 и .NET 3.0. Был полный сдвиг парадигмы. (Хотя по общему признанию это - добровольный сдвиг). Википедия имеет целый раздел, посвященный этому, но я (некоторые!) Из изменений здесь:

.NET Framework изменения

  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Windows Workflow Foundation
  • Windows CardSpace

C # Изменения :

  • * LINQ 1062 *
  • Инициализаторы объектов
  • Коллекция Инициализаторы
  • Анонимные типы
  • Лямбда-выражения
  • Автоматические свойства
  • Методы расширения (Источник: Википедия )

Впереди, очевидно. Просто переход с 1.1 на 2.0 стоит всего цикла выпуска.

8 голосов
/ 22 декабря 2008

.net 1.1 устарела, больше не разрабатывается. Я не уверен в вопросах безопасности. но в целом он заброшен, и начиная с версии 2.0 Microsoft обеспечивает обратную совместимость в новых версиях, что не относится к версии 1.1.

так что, если у вас есть возможность двигаться - двигайтесь. Вы получаете новые языковые возможности, вы получаете структуру, постоянно создаваемую все дальше и дальше. вы получаете linq, если вам это нужно, поддержку Silverlight, конечно, дженерики и т. д.

4 голосов
/ 22 декабря 2008

Я на самом деле недавно закончил преобразование всей кодовой базы из .NET 1.1 в .NET 2.0. Примите во внимание, что .NET 3.5 - это на самом деле просто наборы расширений для .NET 2.0, это не совсем новая база.

Разница действительно довольно существенная во многих частях. Для меня .NET 1.1 никоим образом не был «приручен» и требовал огромного количества кода. Кроме того, VS 7 пришлось использовать против .NET 1.1, поэтому требовались более старые инструменты.

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

С другой стороны, я бы рекомендовал перейти с .NET 1.1 на .NET 2.0 по крайней мере.

3 голосов
/ 22 декабря 2008

Существует ряд веских причин для обновления до .NET 3.5. Однако, как отмечали другие, 3.5 в значительной степени (если не полностью) является не чем иным, как расширением до 2.0; Тем не менее, 2.0 предоставляет большое количество функций, которые стоят того, чтобы его перенести. При этом, на мой взгляд, если вы собираетесь сделать ход, кажется глупым переходить на 2.0, а не просто переходить на 3.5.

Только методы расширения чрезвычайно полезны . Я использую их гораздо чаще, чем я думал. Кроме того, многие из новых функций в 3.5 основаны на них. Дженерики значительно упрощают нашу разработку; и, если вы пишете код на C #, автоматические установщики и получатели являются благом. Лямбда-выражения все еще относительно новы для меня, поэтому я не могу с ними разговаривать, но я понимаю, что другие находят их особенно полезными.

WPF представляет совершенно новый способ написания приложений, и я им воспользовался. Это показывает большое обещание; к сожалению, это, кажется, не получает широкого принятия, которое я (лично) думаю, что оно еще заслуживает. Надеюсь, со временем это изменится, но это будет зависеть от того, начнет ли сама Microsoft настаивать на этом более агрессивно.

Что касается самой платформы, я считаю, что улучшена или предоставлена ​​большая функциональность, которая ранее отсутствовала в 1.1; По мере развития Framewok, похоже, движется в направлении, которое требует от нас писать меньше кода для тех задач, которые мы обычно выполняем (таких как службы каталогов, доступ по FTP, именованные каналы и т. д.). Шероховатые края становятся более гладкими.

Итак, вкратце: переход на 3.5 будет означать, что ваши новые приложения могут быть написаны с меньшим количеством кода, а существующие приложения могут быть реорганизованы для использования меньшего количества кода (не то чтобы я рекомендовал делать это исключительно для этой цели). 3.5 предоставляет широкий спектр инструментов для повышения производительности; Мое личное мнение состоит в том, что одни только эти инструменты стоят того, чтобы сделать скачок вперед.

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

3 голосов
/ 22 декабря 2008

Дженерики, лямбды, LINQ, многие другие, о которых я забыл, я уверен.

2 голосов
/ 23 декабря 2008

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

2 голосов
/ 22 декабря 2008

Самое большое отличие состоит в том, что вы переходите на .NET 2.0 CLR (это тот же CLr, на котором работает текущий .NET).

Это означает, что у вас есть множество исправлений и поддержка Generics уровня CLR. Остальные изменения - это просто изменения в библиотеках базовых классов и новые возможности языков в компиляторах.

1 голос
/ 23 декабря 2008

Редактировать и продолжить? Кроме того, дженерики и обнуляемые типы делают жизнь немного проще!

1 голос
/ 22 декабря 2008

Не забывайте о WCF, WF, WPF, CardSpace и т. Д.

...