Лучшая Стратегия перемещения от VB6 до [закрытой].NET

Если вы поместите вычисление bigArray в модуль bigArray.py, вы сможете использовать его в любом другом модуле, импортировав его специально:

from bigArray import bigArray

Если вы хотите, чтобы массив вычислялся только тогда, когда на него сначала ссылаются, ваш модуль bigArray.py может раскрыть его с помощью функции.

# bigArray.py
#
bigArray = None
def getBigArray():
    if bigArray is None:
       ... build the bigArray ...
    return bigArray

# otherModule.py
#
from bigArray import getBigArray

   ...
   arr = getBigArray()  # to use the array
   ...
8
задан MarkJ 26 March 2009 в 12:30
поделиться

6 ответов

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

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

После того как это было согласовано держателями доли, разработайте опытную систему для тестирования предположений с, где можно испытать C# vrs VB.net или MVC vrs Веб-формы. Я присвоил бы Вашим лучшим разработчикам для этого.

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

Также вся новая работа должна быть сделана на Вашем языке .NET не в VB6.

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

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

Например:
Я работал в компании, которая имела примерно приблизительно 40 приложений VB.
Со временем мы перемещали все их к C# и теперь (5 лет спустя), у нас есть примерно 150 c# приложений (все в .net 2.).

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

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

Попытайтесь заменить базовую функциональность включенными библиотеками.NET COM. "Опустошите" свои существующие приложения VB6 движущейся функциональностью к.NET поразрядно.

Остерегайтесь полных, переписывает. Хотя они соблазняют, "потому что это - определенное" - обычно, безумие кладет вперед! Считайте "Работу Эффективно с Унаследованным кодом" Michael Feathers как подготовка. Хотя книга конкретно не входит "в перемещение от одного языка до другого", это действительно показывает много ловушек реального мира, с которыми Вы встретитесь.

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

7
ответ дан 5 December 2019 в 07:37
поделиться

Посмотрите это:
https://stackoverflow.com/questions/507291/should-we-select-vb-net-or-c-when-upgrading-our-legacy-apps

Конечно, C# по сравнению с VB.Net является всего одной частью его.

Например, другая вещь рассмотреть состоит в том, если Вы хотите использовать эту возможность переместить эти приложения в интранет, если Вы уже не имеете. Или как глубоко делают Вы хотите копаться в стеке Microsoft. Winforms достаточно, или сделайте Вы хотите использовать WPF, например.

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

Вот адаптация моего ответа на подобный вопрос.

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

... и вот сообщение в блоге Микрорастяпой, которая соглашается со мной:

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

Эта превосходная страница Microsoft рекомендует два сторонних инструмента миграции как лучше, чем недостаточно мощный встроенный мастер обновления VB.NET - Artinsoft и CodeArchitects VBMigration. Artinsoft записал созданный в мастере обновления VB.NET, это - их улучшенная версия. И CodeArchitects был основан Francesco Balena, который записал некоторые классические книги по VB6 и VB.NET.

Та же страница Microsoft также говорит:

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


Править: Sung говорит в комментариях: "Я не большой поклонник автоматического поколения кода, потому что это более трудно отладить первоначально и могло бы взять, пока это берет для перезаписи целой вещи". Я должен не согласиться сильно. В целом я также не поклонник генерации кода, но в этом случае получающийся код будет структурирован тождественно к Вашему оригиналу VB6 и должен быть почти полностью функциональным. Я еще на самом деле не попробовал эти инструменты сам, но от их клиент свидетельства выполняется это обещание.

И я повторяю, что совет Microsoft чуть выше, на основе их опыта помощи многим миграциям - "полное переписывает, является намного более дорогостоящим и трудным, чем преобразование [мой акцент]" - плоское противоречие гипотезы, что могло бы потребоваться то же время. Если Вы захотите улучшить структуру VB6, миграция затем, то постепенный рефакторинг, вероятно, будет намного более экономически эффективным, чем переписывание.

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

Я запустил бы с инструментов Microsoft:

http://msdn.microsoft.com/en-us/library/aa480541.aspx

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

Вы могли бы найти следующую статью полезной: http://www.vsj.co.uk/articles/display.asp?id=756

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

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