Я хочу создать многофункциональное приложение, использующее модель клиент / сервер, с использованием WCF в качестве возможной коммуникационной структуры.
Я буду размещать службы в службе Windows (поэтому с WCF я бы использовал netTcpBinding).
Теперь, я полагаю, я мог бы определить каждую сервисную операцию в одном сервисном контракте, но могло быть довольно много операций, и я бы лучше разделил их на несколько связанных сервисных контрактов.
Будет ли разделение моих операций на набор сервисных контрактов означать, что мне придется размещать каждую службу на отдельном порту? (Это не было бы идеально, так как я бы предпочел запустить его на одном порту.)
Какие-нибудь советы по дизайну относительно этого сценария? Спасибо:)
Обновление
Извините за путаницу - я не собирался размещать каждую каждую сервисную операцию в другом контракте, только для того, чтобы разумно сгруппировать их. Моя проблема связана с тем, что я думал, что невозможно разместить несколько ServiceHosts на одном порту.
<шлепки по лбу>
Джо говорит, что можно просто разместить несколько сервисных хостов на одном порту. Я думаю, что я неправильно понял сообщение об исключении, когда пытался это сделать изначально. Если я смогу заставить это работать, то я думаю, что это будет моим любимым решением.
Я думаю, что подход @Koystya и co, заключающийся в реализации каждого интерфейса на одном конкретном объекте и размещении его в одном ServiceHost, также является хорошим прагматическим решением моего вопроса. Особенно, если вы рассматриваете этот конкретный объект как своего рода Фасад. Единственным недостатком, о котором я могу подумать, является то, что вы не сможете иметь различные варианты поведения в зависимости от контракта.
Кроме того, я согласен с логикой Джо, когда целесообразно реализовать несколько сервисных контрактов для одного конкретного класса.