Миграция от.NET 1.1 к.NET 3.5

Я открыл эту идею для обмена идеями: Создайте «необязательную» оболочку для входного типа в стиле std :: option в C ++ 17.

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

8
задан Developer 19 October 2009 в 16:28
поделиться

9 ответов

Вопрос не, 'должны ли Вы', - с точки зрения функций и добавил проверки времени компиляции; это - почти данный для выхода из 1,1 платформ и в 2,0 платформы. Вопрос, как быстро действительно ли необходимо портировать? Что должно было бы быть изменено?

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

.NET 2.0 допускает более сильную безопасность типов, nullable типы, и изменяется в платформе. 2.0 представляет (что я рассмотрел бы), первый 'реальный' выпуск платформы.NET. Это - серьезный соперник, и Вы найдете, что часть платформы наполняет Вас, использование в 1,1 было изменено в 2,0.

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

1.1 - 2.0

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

Изменения Платформы.NET

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

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

  • LINQ
  • Объектный Initalizers
  • Набор Initalizers
  • Анонимные типы
  • Лямбда-выражения
  • Автоматические свойства
  • Дополнительные методы (источник: Википедия)

Больше прибыть, очевидно. Просто переход от 1,1 до 2,0 стоит всего цикла выпуска.

19
ответ дан 5 December 2019 в 04:43
поделиться

.net 1.1 удерживается от использования, не будучи далее разработанным. я не уверен в проблемах безопасности. но в целом, от этого отказываются, и с 2,0 Microsoft гарантирует заднюю совместимость в более новых версиях, которая не имеет место к 1,1.

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

8
ответ дан 5 December 2019 в 04:43
поделиться

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

3
ответ дан 5 December 2019 в 04:43
поделиться

Я на самом деле недавно закончил преобразовывать всю кодовую базу из.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, по крайней мере.

4
ответ дан 5 December 2019 в 04:43
поделиться

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

2
ответ дан 5 December 2019 в 04:43
поделиться

Самое большое различие - то, что Вы перемещаете в.NET 2,0 CLR (Это - тот же СБРОС, на котором текущая.NET работает).

Это означает, что у Вас есть распространенность bugfixes и поддержка Дженериков уровня CLR. Они покоятся изменений, просто изменения в библиотеках фундаментальных классов и новые функции языков в компиляторах.

2
ответ дан 5 December 2019 в 04:43
поделиться

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

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

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

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

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

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

3
ответ дан 5 December 2019 в 04:43
поделиться

Отредактировать и продолжить? Также дженерики и nullable типы делают жизнь немного легче!

1
ответ дан 5 December 2019 в 04:43
поделиться

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

1
ответ дан 5 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: