Вопрос заключается в прямом запросе информации о «Лучших инструментах разработки для обновления с VB6.0» для большого, сложного обновления VB6/COM и второго о C# или VB.NET.
Совершенный «преобразования» инструмент поможет вам удовлетворить два важнейших целей каждой модернизации
- Сохраняя функциональность
- Воспользовавшись .NET таким образом , который следует нужную кодировку и стандарты зависимостей платформы
роль инструмента в Сохраняя функциональность
Большие, зрелые устаревшие системы могут содержать тысячи файлов кода и миллионы строк кода. Усилия, необходимые для полного описания и проверки функциональности, воплощенной в этом большом количестве кода, являются массовыми. На самом деле, может быть так много функциональной работы, что некоторые технически настроенные команды не видят ее сначала. Они тратят большую часть своего времени на беспокойство о том, как использовать последние возможности .NET, язык и инфраструктуру, прежде чем полностью оценить, насколько сложно будет сохранить и проверить устаревшие функции. Это похоже на то, что они ловят рыбу из огромного функционального кита, беспокоясь о том, чтобы поймать небольшую техническую рыбу.
Команды, которые пытаются воспроизвести гору кода, прочитав, интерпретируя и перекодируя его вручную, могут выглядеть слепыми в процессе ... Поэтому критическая особенность любого инструмента преобразования - помочь команде читать, интерпретировать и переписывать их кода, переписывая его в форме, которая сохраняет свою семантику. Ученые-компьютерщики изучили проблему чтения интерпретаций и перезаписи исходного кода на протяжении более 60 лет, и решение, которое они придумали, называется компилятором. Эффективный код «конвертер» работает как компилятор.
VB6 - это язык высокого уровня: компилятор Microsoft VB6 и его среда выполнения неявно выполняются: управление типом вывода, неявные преобразования, неявные по ref, поздние вызовы, обработка нулей, обработка ошибок в стиле goto, проектирование формы и т. д.Конвертер VB6 должен также иметь возможность распознавать и хранить множество подробностей, явно не указанных в коде, и он должен иметь возможность правильно выражать эти детали в .NET. Инструмент преобразования промышленной силы будет иметь мощную расширяемую систему метаязыков VB6, которая позволяет пользователю контролировать, как код VB6 распознается и интерпретируется.
VB6 также легко расширяется через COM. Существует много сотен различных API-интерфейсов COM, и это не учитывает все внутренние компоненты, которые обычно входят в состав корпоративных систем. Конвертер должен иметь возможность распознавать любой COM-класс или элемент управления, используемый VB6, как в дизайне пользовательского интерфейса, так и в коде, и выражать его, используя какой-либо другой соответствующий .NET API или interop. Один из инструментов, о котором я знаю, может даже генерировать структуру кода .NET из информации об использовании COM в VB6. Инструмент преобразования промышленной силы будет иметь мощную систему COM-типа, которая расширяема и позволяет пользователю контролировать замену COM в сгенерированном коде.
Роль инструмента в Воспользовавшись .NET
VB6 и .NET отличаются во многих отношениях, и поэтому являются различные интерфейсы, которые поддерживают две платформы. Таким образом, с инструментами или без, почти всегда потребуется какой-то перепроектированный дизайн. Кроме того, каждая команда привносит в свой проект различные предпочтения, ограничения и требования: спросите 10 программ, как закодировать что-то, и вы получите как минимум 10 различных ответов. Конвертер должен помочь команде выразить свои уникальные предпочтения, ограничения и требования. Это включает в себя предоставление повторяющихся, самодокументирующих средств модификации кода VB6 перед его обработкой, модификацию кода .NET после его создания, интеграцию рукописного кода, описание пользовательских замен API, направление пользовательской реструктуризации кода и выполнение многих других динамических и проектных -специфические преобразования по мере необходимости.
Собираем все вместе
Большое обновление редко полностью прогнозируемую и запланированную заранее. Даже имея обширные знания как исходного кода, так и желаемых стандартов кодирования .NET, во время работы будет возникать множество проблем и возможностей. Исходный код и требования должны быть изменены во время проекта обновления. Необходима гибкая методология, которая позволяет команде адаптироваться к изменениям исходного кода, экспериментировать с различными методами кодирования .NET, реагировать на более глубокое понимание требований и постепенно улучшать их автоматизированный процесс обновления с течением времени. Инструмент преобразования промышленной силы будет иметь точность, точность, гибкость и скорость, чтобы использовать этот тип методологии.
Еще один комментарий о инструментах преобразования. Самый важный «инструмент», который вы будете использовать в обновлении .NET, - ваш мозг. Вы должны изучать языки .NET, шаблоны проектирования и фреймворки и применять то, что вы знаете при обновлении. Лучший автоматизированный инструмент не решает для вас, как переписать код: он помогает вам повторно реализовать устаревшую функциональность в соответствии с дизайном, который вы решаете, имеет смысл.
Microsoft предлагает несколько инструментов в этой статье. VB6 Upgrade Partner Tools
VB.NET или C#
Когда я задаю .NET сообщества (т.е. поиск в Интернете) для получения информации, инструменты, идеи, код, и помочь с проблемами программирования, я гораздо более вероятно, найти ответы, выраженные в C#, чем в VB.NET. Я также считаю, что компилятор C# лучше подходит для перепрограммирования с помощью инструмента, поскольку он требует, чтобы сгенерированный код был более внутренне согласованным и явно описанным. Получение и хранение сборки - это несколько грубый, но абсолютно критический тест качества кода и ключевая веха в любых усилиях по обновлению. Помните, что VB.NET - это не VB6.Это звучит очевидно, но его трудно помнить, потому что оба языка выглядят одинаково. Это сходство может обманывать; поэтому ИМО лучше пойти на C#, где вам напоминают, что правила разные. Наконец, C# всегда был и продолжает разрабатываться для .NET; VB.NET не может этого сказать.
Отказ от ответственности: Я работаю для Великих Миграций. Гораздо больше обсуждать. Посетите Great Migrations Documentation Portal для получения дополнительных статей и получите пробную версию gmStudio и попробуйте инструмент для повышения прочности в промышленности.
Перед тем, как приступить к переписыванию: сначала оцените его, возможно, используйте количество строк кода VB6 в качестве руководства. И убедитесь, что ваше руководство полностью находится на борту. И возьмите обучение по разрешению конфликтов на всякий случай :) Я начал спускать дороги, как это, и попал в некоторые неудобные места. – MarkJ