2012-03-13 3 views
-1

У меня есть элемент управления COM, который обертывает множество функций на стороне клиента, то есть использует устройства ввода для сбора информации, интеграции с различными устройствами, формирования отчетов и т. Д. Я бы хотел оберните это внутри элемента управления .NET и добавьте его в приложение ASP.NET. Обертка будет отвечать за разговор с нашей базой данных, расположенной на сервере, а также небольшую бизнес-логику. У кого-то есть хорошее общее или даже лучшее конкретное направление, в которое я должен идти? Я использую C# в .NET и COM-объект находится на C++.Хостинг .NET Control В ASP.NET App

BTW, я попытался создать библиотеку форм Windows и разместить ее в веб-приложении ASP, но у меня не было успеха.

+3

Это не сработает. Вам нужно переписать его с нуля в HTML и Javascript. – SLaks

+0

BTW, я использую .NET 4.0 – user1266976

+0

Переписывание элемента управления не является вариантом. – user1266976

ответ

0

Возможно, вы сталкиваетесь с проблемой разницы между System.Windows.Forms (WinForms), которые запускаются на рабочем столе в ОС Windows, и System.Web.UI (WebForms), которые запускаются в IIS в совершенно другой среде безопасности в ASP.NET. Просто потому, что многие из свойств формы и т. Д. Были сделаны похожими, это не значит, что они что-то делают как внутренне, а на самом деле они, безусловно, этого не делают. Вам нужно более внимательно изучить, как WebForms работают в ASP.NET, чтобы понять, почему, как уже указывал SLaks, что то, что вы пытаетесь сделать, не может работать так, как вы предлагаете.

2

У вас может быть ActiveX внутри веб-страницы. ActiveX - COM, но есть ограничения, которые Active Control может выполнять при размещении внутри браузера. Браузеры обычно разрабатываются с использованием песочницы, поэтому вы можете столкнуться с серьезными проблемами в отношении настроек безопасности. Еще один аспект - возможности кросс-браузера. WinForms определенно другой мир, поэтому, даже если вы найдете способ показать какую-то простую форму, вы наверняка оказались где-то между беспорядком и бумом.

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

Тем не менее, если вы собираетесь взять на себя бремя беспорядка и стрелы, вы можете захотеть взглянуть на эту информацию:

http://codebetter.com/petervanooijen/2007/06/18/including-a-winforms-user-control-in-an-asp-net-web-page/

http://www.codeproject.com/Articles/4953/Simple-way-to-expose-a-NET-WinForm-control-as-an-A

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