Передача данных из одного приложения .NET в другое - PullRequest
2 голосов
/ 28 июня 2010

Каков наилучший способ передачи данных из одного приложения .NET в другое во время выполнения?

В основном мне нужно передать 10-100 килобайт данных за несколько минут из одного приложения в другое(локально) и получите ответ для этого действия.

В идеале - возможность подписывать события в другом приложении и возможность вызывать методы классов в другом приложении.

Спасибо!

Ответы [ 4 ]

9 голосов
/ 28 июня 2010

Поскольку вы делаете это в .NET, я настоятельно рекомендую изучить Windows Communication Foundation .

Он позаботится об инфраструктуре (и даст вам возможность легко перенастроить, чтобы не требовать, чтобы два приложения были локальными, если ваши требования изменятся).

«Передача данных» станет очень очевидной, как только вы начнете читать на WCF. Вот статья, описывающая, как обрабатывать обратные вызовы и события в WCF , а также.

4 голосов
/ 28 июня 2010

В прошлом я бы сказал вам .NET Remoting, но теперь с WCF это проще:

http://msdn.microsoft.com/en-us/library/aa730857.aspx#netremotewcf_topic7

3 голосов
/ 28 июня 2010

Я согласен с использованием WCF для вашего сценария, так как данных для передачи не так много.

Поскольку вы говорите об IPC, вы также можете рассмотреть использование сигнализации и общей памяти.У меня есть сообщение в блоге , сравнивающее WCF с использованием общей памяти (с точки зрения скорости).Используя EventWaitHandle, можно легко инициировать события между процессами на одной и той же машине, а код довольно тривиален.

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

0 голосов
/ 28 июня 2010

WCF был представлен в .NET 3.0, поэтому, если вы используете его или позже, я настоятельно рекомендую его. Его очень легко настроить, и у них есть несколько быстрых видео, которые помогут вам перейти на MSDN: http://msdn.microsoft.com/en-us/netframework/first-steps-with-wcf.aspx

Это также дает вам возможность настроить «Конечные точки», чтобы позволить вам автоматически (после настройки) разрешить связь через TCP, HTTP, именованные каналы и т. Д.

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