Использование COM в ASP.NET, или вместо этого использовать стандартную DLL? - PullRequest
0 голосов
/ 19 июля 2011

Мы переносим классическое приложение ASP с COM-объектами VB6 в мир .NET, и мы озадачены тем, как перенести наши COM-объекты настолько простым, насколько это возможно. Я нашел много статей с практическими рекомендациями, но не так, как статьи «почему». Нам лучше перестраивать COM-объекты как стандартные библиотеки DLL, которые запрашивают базу данных (это приложение с большим количеством БД), или мы должны перестраивать их как новые COM-объекты в C #? Каковы преимущества и недостатки каждого подхода? Есть ли другой подход, который мы должны рассмотреть? Мы еще не очень сильный магазин в .NET, поэтому любые предложения приветствуются.

спасибо заранее, Майк

Ответы [ 2 ]

3 голосов
/ 19 июля 2011

Это сложный вопрос, так как есть много переменных.Предположим, для этого потока, что у вас есть приличное количество разделения проблем и набор COM-DLL с достойной производительностью.

Предполагая вышеизложенное и принимая во внимание ваш пост (тонны кода в компонентах COM)), путь, на который я обычно смотрю, - это сначала переписать пользовательский интерфейс в .NET и использовать оболочки .NET для вызова компонентов COM.Это легко сделать, ссылаясь на компонент COM.Переход к какому-либо собственному методу DLL может помочь, если у вас есть проблема с производительностью после переноса, но это более сложное направление для настройки кода для вызова собственных методов, поэтому я бы не стал сначала идти по этому маршруту.

Вытогда есть два направления, чтобы, возможно, возглавить.Сосредоточьтесь на пользовательских историях (удобстве использования) или на миграции отдельных библиотек (COM DLL >> сборки по одной).Я предпочитаю направление истории, хотя вы потенциально можете получить мертвый код.Вместо того, чтобы думать о миграции, я бы переписывал одну историю за раз, поэтому вы сосредоточены на том, чтобы делать это прямо в .NET.Миграция заканчивается большим количеством COM-кода, написанного на .NET, что очень неприятно.

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

НЕ Пробуйте программы миграции.Они не работают.Вы не только меняете платформу разработки, но и полностью меняете парадигму.Если вы попытаетесь использовать какой-либо автоматизированный инструмент для переноса кода, у вас получится приложение более низкого уровня.

Еще одна вещь.Если вы магазин VB, подумайте о переходе на C #.Это звучит контрпродуктивно, поскольку есть кривая обучения, но придерживаться VB означает, что вы попытаетесь написать VB6 на VB.NET.Конечным результатом является плохая база кода, которую трудно реорганизовать.

0 голосов
/ 21 июля 2011

Мой опыт подсказывает, что вы должны переписать COM-объекты в DLL, потому что существует низкий риск, что что-то сломается во время преобразования, и время, которое это займет, НАМНОГО короче, чем перезапись в C #.1002 * Миграция в .NET действительно может быть выполнена только вручную, но однажды в COM DLL вы можете сделать это по частям.

...