Разбейте проект VB6 на куски, чтобы использовать бесплатную версию Artinsoft - PullRequest
0 голосов
/ 20 ноября 2011

Я пытаюсь преобразовать большой (200К строк) проект VB6 в C #. Я только хочу преобразовать дизайн формы, потому что я хочу переписать весь реальный код на C #.

Я хочу использовать бесплатный конвертер Artinsoft, но он допускает проекты только по 10 тыс. Строк. Я думаю, что мог бы разбить проект VB6 на 20 отдельных проектов, а затем сгенерировать формы C # .NET с помощью Artinsoft, а затем вернуть преобразованные формы обратно в один проект C #.

Это возможно?

РЕДАКТИРОВАТЬ: это будет работать? Каковы потенциальные проблемы?

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

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

VB6 плохо переносится; пользовательский интерфейс, ни код. Если вы продолжите идти по этому пути, есть вещи, которые могут вам помочь.

  1. Удалить все неиспользуемые формы и код
  2. Убедитесь, что нет управляющих массивов, и, если они есть, исправьте соответствующий код
  3. Получить всю логику в классах
  4. Убедитесь, что вы не вызываете / загружаете / ссылаетесь на формы напрямую и используете экземпляр объекта
  5. Убедитесь, что используются хорошие методы инкапсуляции и хорошие объектно-ориентированные шаблоны проектирования

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

Сделайте себе огромную пользу ... Начните новый проект, создайте пользовательскую библиотеку элементов управления, которая наследует от используемых вами стандартных элементов управления, и используйте их повсюду. Не нравится, как Cliptext работает в замаскированном текстовом поле в C # по сравнению с VB6? Расширьте это или переопределите это. Хотите, чтобы все ваши списки просмотров были сортируемыми? Простая, одноточечная реализация. Узнайте через год, что бизнес хочет проверить орфографию на 90% текстовых полей? Легко.

1 голос
/ 20 ноября 2011

попробую в следующем порядке

1) Напишите автоматизированные тестовые примеры хотя бы для крупных бизнес-операций

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

2) Рефакторинг вашего VB (попробуйте вынести свою бизнес-логику в отдельные классы / библиотеки DLL).

3) вы можете проверить свой рефакторинг, используя автоматизированные тестовые примеры, написанные в шаге 1.

4) Теперь у вас есть небольшие куски, это также поможет вам создавать куски, тогда вы можете использовать Artinsoft.

5) Ваше новое приложение на C # будет красиво наслоено.

6) Запустите тесты, созданные на шаге 1, в вашем новом приложении и в старом приложении, сравните результаты и продолжайте улучшаться, если они не совпадают:)

...