Как общаться двум компонентам .NET по локальной сети? - PullRequest
1 голос
/ 09 марта 2011

Я пишу свое первое клиент-серверное приложение для .NET, и я могу использовать множество возможных протоколов и библиотек: UDP, TCP, HTTP, Сериализация, .NET Remoting, WCF ... как выбрать " «Правильно» (а какие-нибудь важные технологии отсутствуют в моем списке)?

Мой сценарий довольно прост: клиент отображает текущее состояние сотен объектов на карте. Существует два типа объектов, каждый из которых имеет множество полей информации о состоянии. При подключении сервер отправляет состояние всех объектов в пакете, после чего отправляются инкрементные обновления. Клиент также может запросить исторические данные.

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

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

Например, в некоторых средах WCF может быть недостаточно быстрым (сомнительно).Только в этом случае я бы выбрал что-нибудь еще.

Удаленное использование устарело в пользу WCF.Сериализация будет выполняться для вас WCF, который может общаться либо по HTTP, либо по необработанному TCP / IP.Для перехода с одного протокола на другой потребуется незначительное изменение, если оно вообще произойдет,

0 голосов
/ 09 марта 2011

Есть много способов сделать это: вы на самом деле разрабатываете свой собственный протокол приложения, так что выбор остается за вами;не существует «стандартного» способа взаимодействия клиента и сервера.

Хотите ли вы иметь полный низкоуровневый контроль над тем, что обмениваются клиент и сервер?Затем перейдите к использованию необработанного TCP (UDP здесь бесполезен, так как он не требует соединения и не гарантирует доставку);но вам придется самостоятельно кодировать и передавать объектные данные или сериализовывать их и передавать по необработанному потоку TCP.

WCF значительно упрощает задачу, инкапсулируя все это для вас;если и клиент, и сервер являются приложениями .NET, работающими на последних платформах, это должен быть ваш первый выбор.

...