Как реализовать обратные вызовы WCF с использованием библиотеки прокси-классов и клиента VB6 - PullRequest
0 голосов
/ 09 марта 2011

У нас есть приложение, которое работает как сенсорный экран.Он предоставляет настраиваемые клавиатуры с сенсорным экраном и цифровые панели, расположенные поверх других приложений, требующих ввода с клавиатуры.

Он написан как автономный VB6 ActiveX EXE и предоставляет интерфейс COM для приложений, запрашивающих клавиатуры и т. Д., Которые отображаются при отображениинеобходимо.Нажатие кнопок передается обратно в приложения с сенсорного сервера с помощью API SendInput.

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

Новое наложение будет написано на C # с использованием WPF, все приложения, которые будут его использовать, будут написаны.в VB6.Я ищу предложения о том, как лучше реализовать двустороннюю связь между ними.

Моей первой мыслью было разместить службу WCF в оверлее и использовать контракты обратного вызова.Приложения будут регистрироваться с наложением и получать уведомления, связанные с кнопкой наложения, проталкивающей контракт обратного вызова.

Все клиенты являются приложениями VB6, и поэтому для обертывания интерфейса службы потребуется использование прокси-библиотеки dll.Я могу позволить клиентам регистрироваться / отменять регистрацию через этот интерфейс, но я не уверен, как реализовать обратные вызовы с использованием прокси.

Также клиентское приложение и оверлей могут работать в течение некоторого времени, как я могу гарантировать, что связьявляется постоянным и стабильным?

Буду признателен за любые ваши комментарии относительно любых потенциальных проблем / решений, связанных с этим подходом.В качестве альтернативы, если вы считаете, что WCF - неправильный выбор, я был бы рад рассмотреть другие варианты?

1 Ответ

0 голосов
/ 13 апреля 2011

Планируете ли вы создать COM DLL в качестве оболочки для WCF, а затем использовать этот объект в VB6?

Если это так, то вы можете позволить DLL обрабатывать обратные вызовы, а затем вызвать событие дляОбычный интерфейс COM, который вы обрабатываете внутри приложений VB6 с помощью объекта WithEvents.

Использование WCF для меня звучит как разумный подход, особенно когда вы переходите между несколькими версиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...