Лучший способ обновить старое приложение VB6 - PullRequest
5 голосов
/ 12 января 2011

Недавно ко мне пришел маленький магазинчик с папами и папами с просьбой обновить программу vb6, которую один из их бывших сотрудников, занятых неполный рабочий день, сделал для них, когда они учились дома. На компакт-диске студент предоставляет как исходный код, так и установщик программы, что очень помогает. Я хотел бы просто дать им новый компакт-диск с новым установщиком и обновленным исходным кодом. У меня вопрос: как мне создать или, если проще, обновить установщик для языка, который вошел в «Неподдерживаемый этап» еще в 2008 году?

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

Ответы [ 3 ]

6 голосов
/ 12 января 2011

Вам понадобится копия Visual Basic 6 (или Visual Studio 6), которая сложна.Если у вас есть подписка MSDN, я совершенно уверен, что вы можете скачать ее из их архива, но если нет, вам может понадобиться купить копию.Проверьте EBay.Сделайте так, чтобы магазин покупал их за свой счет, и они должны владеть им на случай, если они захотят внести изменения в будущем.Вы можете использовать его от их имени, чтобы работать для них, если вы единственный, кто его использует, и просто удалить его, когда закончите.

Кроме того, если у вас есть копия Visual Studio 2005Технически вы можете "понизить" версию до VS6, но вам нужно позвонить в Microsoft и попросить их выслать вам программу установки, и вам не разрешено использовать VS2005 одновременно с VS6.Да, я знаю ...

Хорошо, так что, если вы зашли так далеко, загрузите источник на свой компьютер и установите его под контроль источника.Я предлагаю Mercurial (в частности, клиент TortoiseHg).Мне повезло с этим в проекте VB6, и это бесплатно.( Не используйте SourceSafe, даже если он поставляется бесплатно с VS6! ) Распределенная природа репозитория Mercurial означает, что вы можете отдать им обратно компакт-диск с полным репозиторием на нем и следующий бедный сок, которыйдолжен внести изменения, по крайней мере, сможет сделать разницу и знать, что вы сделали.

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

А теперь продолжайте вносить изменения, но будьте очень осторожны.Помните, что у вас, вероятно, нет никаких юнит-тестов, поэтому вы, скорее всего, сломаете вещи.Если вы хотите быть профессионалом в этом вопросе, для VB6 существуют платформы модульного тестирования.Например, vbUnit .Опять же, я предлагаю заказчику купить копию (мне кажется, около 99 долларов за одно место разработчика).Если бы изменение было чем-то большим, чем просто изменение логотипа компании на заставке, я бы в это вложил. Напишите тесты, которые охватывают каждый модуль или функцию, которую вы собираетесь изменить.Если вся логика заключается в обработчиках событий в самой форме, аккуратно удалите код, который нужно заменить, в модули, для которых вы можете написать модульные тесты.Напишите тесты, чтобы сначала проверить текущую функциональность.

Затем продолжите и внесите изменения.Если у вас возникли проблемы с настройкой среды тестирования, вы можете также использовать некоторые TDD и сначала написать свои тесты.Напишите тест, убедитесь, что он провалился, напишите достаточно кода, чтобы он прошел, и повторите.

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

Я рекомендую не переписывать его в .NET, если это не очень простая программа с одной формой.Усилие, скорее всего, не стоит.

Предостережение: остерегайтесь сторонних компонентов, которые оригинальный программист мог использовать, но не был включен в компакт-диск.Если они использовали некоторые ActiveX или COM-компоненты, которые они приобрели у третьих лиц, но они не лицензировали их для вашего клиента, вам, возможно, придется в конечном итоге приобрести их снова, просто чтобы их скомпилировать.

РЕДАКТИРОВАТЬ :

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

Я помню, что использовал Мастер пакетов и развертывания, и я согласен, что он отстой.Я действительно использовал сторонний установщик, теперь, когда я думаю об этом.Однако, если изменения невелики и исходное приложение использует PDW, я, вероятно, буду придерживаться этого.

0 голосов
/ 12 января 2011

Если я правильно помню, Visual Studio 6 поставляется с простейшим мастером для создания программы установки для приложения VB6.Итак, при условии, что у вас установлена ​​Visual Studio 6 для VB6, должен быть мастер установки, который вы можете использовать.Однако могут возникнуть проблемы с развертыванием VB6 на компьютерах с Vista или Win 7.Возможно, у другого SO гуру будет ответ на этот вопрос.

Вы также можете использовать бесплатную программу Inno Setup для создания установщика для приложения VB6.Более подробную информацию можно найти здесь .Однако это требует больше ручного труда, чем то, что было в Visual Studio.

0 голосов
/ 12 января 2011

Вы можете конвертировать проекты VB6 в .NET.

Если у вас Visual Studio 2005 или выше ... Или в худшем случае переписать код, используя VB.NET. Перейдите по этой ссылке.

Конвертировать VB6 - .NET

...