Как заменить VB6 Com + DLL на .NET - PullRequest
0 голосов
/ 07 мая 2009

В нашем классическом приложении asp используется библиотека Com + VB6 DLL. После обновления до IIS 6.0 и Windows Server 2003 это, похоже, вызывает у нас проблему. Как заменить его на функциональность .NET (2.0)?

  • Веб-сервис?
  • Com DLL в .NET?
  • Какой-то другой вариант?

Предположим, о переписывании классических страниц asp не может быть и речи.

РЕДАКТИРОВАТЬ : Если переписать его как сборку, доступную для ком, не изменится ли это с Com +?

Ответы [ 3 ]

1 голос
/ 07 мая 2009

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

Вам не нужен веб-сервис, если com dll работает с сеансом или http-контекстом сайта. Я бы переместил ком-код в сборку библиотеки .NET, зарегистрировал его в interop (tlbimport / tlbexport) и использовал бы сборку взаимодействия в вашем классическом приложении asp для общения с новой библиотекой .NET.

1 голос
/ 06 июня 2009

Я предполагаю, что ваш компонент VB6 использует некоторые сервисы COM +. Если это так, то я переписал бы компонент VB6 в .NET как ServicedComponent и затем зарегистрировал бы его в COM +, используя Regsvcs.exe.

Если ваши компоненты VB6 обращаются к базе данных (или делают другие длительные перерывы в квартирных вызовах), то в качестве дополнительного преимущества переноса ваших компонентов VB6 в .NET вы можете увидеть устранение проблем с производительностью, когда есть много одновременных запросов к вашим компонентам. Подробное описание того, как и почему, см. В разделе «Избегайте длительных вызовов методов из однопотоковой квартиры» (STA) в статье Сохранение производительности приложения при портировании с MTS на COM + .

1 голос
/ 07 мая 2009

Это во многом зависит от того, что именно делает COM-компонент, но самым простым вариантом, вероятно, будет библиотека COM в .NET.

Это, вероятно, потребует наименьшего количества изменений в вызывающем клиенте (приложение asp classic). Если вы настроите API-интерфейс так, чтобы он соответствовал вашему API-интерфейсу VB 6 COM, его замена должна быть довольно большой.

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

...