советы и подсказки при переносе кода с vb6 на .net с помощью Visual Studio 2010

Я хочу перенести одно из приложений с vb6 на .net с помощью Visual Studio 2010. В настоящее время это приложение на базе Windows. Я хочу сделать веб-приложение. Думаю, мне придется переписать код в .net. не могли бы вы посоветовать мне, пока я переписываю код в .net.


person user333062    schedule 05.05.2010    source источник
comment
К вашему сведению, теги предназначены для категоризации вопроса. Используя миграцию vb6 в .net, вам не нужно было, так как это не помогает категоризировать вопрос.   -  person John Saunders    schedule 05.05.2010
comment
@John, @pradeepmada Я думаю, что тег vb6-migration полезен для этих вопросов. Отказ от ответственности: это я изобрел, но я думаю, что сообществу это нравится   -  person MarkJ    schedule 05.05.2010


Ответы (3)


Если ваше приложение VB6 состоит из нескольких COM-объектов с чистыми интерфейсами, вы сможете повторно использовать те компоненты, которые не касаются пользовательского интерфейса. Возможно, вы захотите воспользоваться опытом VB6 в своей компании, чтобы отделить любой код пользовательского интерфейса от бизнес-логики. Затем бизнес-логику можно повторно использовать в веб-приложении.

person John Saunders    schedule 05.05.2010

Есть много советов по стратегиям конверсии. Одна стратегия, которая может сработать (например, сказал Джон) заключается в использовании Interop для смешивания серверной части VB6 с веб-интерфейсом .Net.

Некоторые другие ресурсы:

person MarkJ    schedule 05.05.2010

Это очень сильно зависит от того, насколько хорошо структурировано исходное приложение. Хорошо структурированное приложение может быть переведено с настольного компьютера в Интернет с довольно большим количеством повторного использования. К сожалению, подавляющая часть кода эпохи VB6 не хорошо структурирована, что значительно усложняет вам жизнь.

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

Конечно, это сильно зависит от множества факторов. Возможно, вам повезет, и вы работаете с одной из этих редких жемчужин: хорошо структурированным проектом VB6 с четким разделением представлений и кода.

person Dean Harding    schedule 05.05.2010
comment
Отказ от первоначального проекта и запуск нового на первый взгляд привлекателен, но может привести к провалу. Многие компании, с которыми я работал на заре существования .NET, в первую очередь обращали внимание на переписывание, отчасти вызванное сильным желанием улучшить базовую архитектуру и структуры кода одновременно с переходом на .NET. К сожалению, многие из этих проектов столкнулись с трудностями, а некоторые так и не были завершены. Проблема, которую они пытались решить, была слишком большой. Автор инсайдера Microsoft blogs.msdn.com/goto100/archive/2008/11/03/ - person MarkJ; 05.05.2010
comment
@MarkJ: Иногда у вас нет выбора, кроме как начать все сначала. Преобразование настольного приложения в веб-приложение - яркий тому пример. Лучший способ, который я видел для перехода, - это свернуть разработку на старом и начать все заново. Ожидайте, что это займет некоторое время. Прежде чем начать, внимательно рассмотрите возможности настольного приложения. Нужно ли все это повторить? Более того, какие из них должны быть реплицированы с версией 1.0 веб-приложения. - person NotMe; 20.10.2010
comment
Тем не менее, не каждое настольное приложение нужно преобразовывать, и вам следует идти по этому пути только в том случае, если есть веская бизнес-причина. Мы прошли через это пару лет назад, перейдя от классического asp к C # и asp.net. Это была полная переделка и очень успешная. Мы не взяли все старые функции, которые должны были быть, и запустили их. С тех пор мы уже догнали и превзошли предыдущий уровень функций. Одна вещь в нашу пользу заключается в том, что команда, написавшая исходную версию, была той же командой, что и переписывала. - person NotMe; 20.10.2010