Я поддерживаю приложение VB6, и мы изучаем, как перейти на .Net. Мы планируем сделать это постепенно, внедряя новые функции в видимые COM-классы .Net и медленно перенося существующие функции. Я нашел несколько поучительных примеров «Hello World» о том, как это сделать, и это прекрасно работает с нашим приложением. Но как реальное поведение этих гибридных приложений? Они стабильны, ремонтопригодны? Особенностью нашей программы является то, что больше пользователей на одном компьютере будут использовать ее, переключая учетные записи пользователей.
РЕДАКТИРОВАТЬ: приложение VB6 считывает данные из USB-подключения и сохраняет их в базе данных Access. Пользователь может вызывать различные представления данных. Данные кэшируются на аппаратном устройстве, поэтому перерывы при их чтении не являются фатальными.
РЕДАКТИРОВАТЬ 4 октября 2015 г .: время для последующих действий. Мы все еще находимся в процессе постепенной замены существующего кода VB6 на .Net. Сначала мы взяли на себя процедуры доступа к данным, затем бизнес-логику и в настоящее время одну форму за другой преобразуем в WPF. Мы действительно переписали каждый кусок кода, который мы преобразовали (в VB.Net), но мы могли делать это медленно и в то же время улучшать функциональность. Гибридное приложение пережило переход на Windows 8, 8.1 и 10.
РЕДАКТИРОВАТЬ 9 марта 2018 года: мы выпустим полностью преобразованный код в следующем месяце. Гибридное приложение будет поддерживаться как минимум год. Он показывает в основном проблемы на экранах с высоким разрешением, но в остальном работает нормально. Честно говоря, у нас больше проблем с поддержкой из-за поврежденных установок .Net Framework и поврежденных установок зависимостей (в том числе SQL Server LocalDb), чем проблем совместимости с базой кода VB6 ...
источник
Ответы:
Я имел удивительный успех, выставляя .NET VB6 через COM-интерфейсы. Сделав это, мы смогли сначала провести рефакторинг огромного количества кода VB6 и настроить путь обновления до .NET. Просто имейте в виду, что идиоматический VB6 не очень хорошо работает на C # или даже на VB.NET, так что вам нужно будет осторожно действовать.
Одна проблема, которая у нас была, довольно раздражающая, - это чрезмерное количество перестроений, которые нам пришлось сделать из-за изменений в публичном интерфейсе COM. Это было облегчено Visual Make .
источник
FWIW, по моему опыту, необходимость обновить приложение VB6 до .Net обеспечивает идеальный повод для переписывания. Если только исходные кодеры не были блестящими провидцами, методы, преобладающие в VB6, редко переносятся на .Net.
Некоторые из прелестей, с которыми вы столкнетесь:
НТН
источник
Option Explicit
он включен, и вся зависимость от неявных магических преобразований снята.Он должен работать нормально для вас, в быстром переключении пользователей / нескольких сеансах нет ничего особенного, что могло бы вызвать у вас какие-либо проблемы.
С точки зрения удобства обслуживания, помните, что гибридный VB6 / VB.NET должен быть только временным решением: ваш план должен состоять в том, чтобы со временем полностью перейти на VB.NET.
источник