2010-11-09 1 views
3

У меня есть то, что кажется довольно распространенным требованием к взаимодействию между процессами - родительский процесс порождает некоторые дочерние процессы, а родительский процесс и дочерние процессы должны иметь возможность выполнять двустороннюю связь друг с другом (необходим детский процесс чтобы поддерживать родительский процесс в соответствии с его состоянием, а родительский процесс должен иметь возможность проверить, что дочерний процесс все еще жив, - обратите внимание, что дочерние процессы не нуждаются в общении друг с другом).Двусторонняя межпроцессная связь (через именованные каналы) - WCF или .Net Remoting?

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

С другой стороны .Net Remoting делает такое общение почти бесшовным, но все, похоже, считают, что Remoting - это старая шляпа, и вместо этого я должен использовать WCF.

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

Какой должен выбрать?

+0

Я бы и по-прежнему использовал удаленный доступ вместо WCF (особенно для IPC). – leppie

+0

Вы должны исправить заголовок вопроса, WCF вместо WPF –

ответ

4

Обе технологии должны быть подходящими для того, что вы хотите сделать. Основное отличие конструкции между двумя API, является:

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

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

Сказав это, WCF позволит вам развивать вашу реализацию позже, например. изменять протоколы, добавлять безопасность и т. д. Только если вы абсолютно уверены, что вам никогда не понадобится это делать, вы должны отказаться от WCF.

Я предпочитаю подход WCF для всего, но это очень субъективное предпочтение.

0

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

Если общение довольно простое, вы можете пойти на .NET Remoting, но если у вас более сложная схема связи, я (лично) поеду с WCF.