Как вызвать.NET 3.0 dll из приложения.NET 1.1?
У нас есть устаревшее приложение.NET 1.1, которое связывает несколько систем вместе с системами SAP. В настоящее время мы используем разъем DCOM для связи SAP. Мы решили заменить коннектор DCOM на коннектор SAP.NET 3.0, поскольку последние версии SAP не поддерживают коннектор DCOM. Но проблема в том, что мы не можем вызвать.NET 3.0 dll из.NET 1.1 dll.
Мы рассмотрим следующие варианты.
(1) Перенос текущего приложения 1.1 до 3.5 или более поздней. Однако мы не получили одобрения для этого, так как это требует огромных усилий, поскольку приложение является критическим и сложным
(2) Создать промежуточный компонент VB, который может выступать в качестве коммуникатора для 1.1 и 3.5. Это добавляет еще один слой и приводит к архитектурным изменениям. Мы не получили одобрения для этого также из-за проблем с производительностью и архитектурного анализа.
(3) Создайте веб-сервис, который вызывает SAP через.NET SAP коннектор и хост на том же сервере и использует его из приложения.NET 1.1. Это также не получило одобрения из-за проблем с производительностью и архитектурного анализа.
(4) Проверка любого другого механизма в WCF, который помогает взаимодействовать между приложениями.NET 1.1 и.NET 3.0. Это также не получило одобрения из-за проблем с производительностью и архитектурного анализа.
(5) Сделайте классы.NET 3.5 открытыми как объекты COM (вне процесса) и используйте эти объекты COM из вашего приложения.NET 1.1. Мы опробовали эту опцию, и она дает исключение "Невозможно добавить ссылку на 'NETDLL'. Не удалось преобразовать библиотеку типов в сборку.NET. Библиотека типов NETDLL была экспортирована из сборки CLR и не может быть повторно импортирована как сборка CLR "
Можете ли вы помочь мне с другими подходами, которые не стоят архитектурных изменений и не снижают производительность? Пожалуйста помоги
2 ответа
Наконец, мы решили проблему следующим подходом. Мы решили использовать.NET 2.0 SAP-коннектор для приложений 1.1. Мы можем интегрировать или сконфигурировать коннектор.NET 2.0 с IDE.NET 1.1 в Visual Studio 2003. Как только мы интегрируем его в IDE Visual Studio 1.1, мы сможем создать проект коннектора 1.1 SAP 2.0, в котором вы сможете использовать коннектор.NET 2.0 SAP в своем проекте 1.1. который генерирует.NET 1.1 DLL.
У меня была похожая задача давным-давно.
Вероятно, самый простой способ - сделать ваши классы.NET 3.5 открытыми как объекты COM (вне процесса) и использовать эти объекты COM из вашего приложения.NET 1.1.