Микаэль уже затронул большинство важных моментов в своем посте - выберите netTcpBinding
, который достаточно быстр, отлично работает в локальной сети и обладает всеми необходимыми функциями.
Основным отличием будет изменение мышления: при удаленном взаимодействии вы в основном работаете с «удаленными объектами» - вы более или менее дистанционно управляете существующими объектами .NET на другом компьютере.
WCF сильно отличаетсяв основном: у вас есть сервер и клиент, и они не разделяют больше, чем контракт на обслуживание (описание методов) и контракты на данные (описание передаваемых данных).Во время выполнения вы делаете вызов прокси на клиенте, среда выполнения WCF перехватывает этот вызов, сериализует его (включая все параметры), а затем отправляет по кабелю сериализованное сообщение (двоично-сериализованное в случае netTcpBinding
).
Сервер на другом конце имеет компонент времени выполнения, который прослушивает эти сообщения и извлекает их из сети, разворачивает их и затем вызывает экземпляр службы, чтобы запустить нужный метод.
Важная часть: это система, основанная на сообщениях - помимо контрактов (интерфейс службы и структуры данных, выраженные в XML-схеме), у вас нет соединения во время выполнения между двумясторон.
Это также означает, что невозможно для сервера "связаться" с клиентом и найти что-то или попросить дополнительную информацию.Все, с чем сервис должен работать - это сообщение и любые потенциальные заголовки сообщений, которые вы (или среда выполнения WCF) могли бы отправить вместе.Вот и все.
Кроме того: поскольку обмен данными проходит через сериализованные сообщения и должен соответствовать стандартам XML-схемы, вы не можете использовать такие вещи, как интерфейсы или универсальные шаблоны - вы можете только передавать конкретные экземпляры классов.
В общем, WCF каким-то образом заменяет удаленное взаимодействие .NET, но в некоторых отношениях это совершенно другой зверь.В этом есть свои плюсы и минусы, но вам просто нужно знать об этих различиях и не пытаться бороться с ними - либо вы можете договориться с ними и даже извлечь из них выгоду, либо не использовать WCF для своей работы врука.