Что такое WCF? и что это может сделать? - PullRequest
3 голосов
/ 21 июля 2010

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

Я все еще в замешательстве.Может кто-нибудь объяснить, для чего он используется?

Похоже, если я запустил два приложения, которые могут размещать один и тот же сервис, только первое запустится, остальные получат ошибки?Я могу вызывать функции, но есть ли ограничения памяти?Могу ли я передать байта [] в качестве параметров при размещении в стеке или кучи?Я не могу передать файловые дескрипторы правильно?(Я не могу придумать причину, по которой это так).

Могу ли я иметь 3 приложения в качестве клиентов и достаточно легко?например, если я открою app1 и открою изображение.Могу ли я открыть приложения 2 и 3, чтобы они делали разные вещи с загруженным в данный момент изображением?(приложение 1) редактировать, 2) экспортировать в память изображения в виде различных типов (анимированный GIF, AVI, PNG и т. д.) 3) другой инструмент редактирования или приложение, чтобы посмотреть, как оно будет выглядеть во время выполнения

Ответы [ 3 ]

5 голосов
/ 22 июля 2010

@ acidzombie24, чтобы противопоставить ваш комментарий ответу Райана:

WCF - это НЕ вызов удаленной функции - совсем нет.Наоборот!

WCF - это система связи , основанная на *1007* сообщениях - у ваших клиентов будет прокси, который имеет тот же метод, что и сервер.Когда вы вызываете такую ​​функцию на клиентском прокси, среда выполнения WCF объединяет эти параметры метода, имя метода и некоторые заголовки в сообщение serialized и отправляет его на сервер.

Не существует постоянного соединения, такого как протокол удаленного взаимодействия или соединение с базой данных, открытого между клиентом и сервером.Клиент упаковывает сообщение и отправляет его.Средой передачи между клиентом и сервером может быть даже SMTP (электронная почта)!

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

WCF - это система связи общего назначения, основанная на сообщениях, позволяющая создавать распределенные системы - у вас есть кучаслужб где-то на ваших серверах, которые предлагают выполнять определенные функции от имени клиента, когда они звонят.WCF - это что-то вроде веб-сервисов - только намного больше.Это также организация очередей сообщений (с использованием продукта Microsoft MSMQ), связь по сети / TCP и многое другое.И это намного более расширяемо, чем любой интерфейс связи ранее.

3 голосов
/ 21 июля 2010

WCF - это просто сетевая / коммуникационная платформа.То, что вы делаете с ним, зависит от ваших требований и навыков.Обычно он используется в ситуациях, когда у вас есть клиент -> сервер или n-уровневое приложение.Чаще всего он размещается на сервере IIS или Process Hosting.Затем подключен к какому-то клиенту.

WCF имеет возможность передавать данные, включая изображения в виде потока байтов и т. Д., Что может звучать так же, как и то, что вы избегалиВы также правы, что было бы неправильно передавать дескрипторы, так как вы обычно подключаете приложения через множество границ (контекст, домен приложения, компьютер, даже домен / сеть).об этом, но, надеюсь, это поможет.

1 голос
/ 22 июля 2010
  • WCF является заменой веб-служб ASMX и .NET Remoting
  • WCF - это основанная на сообщениях платформа для связи
  • WCF - рекомендуемая платформа Microsoft для построения и использования.веб-сервисы всех видов
  • WCF не ограничиваются HTTP / HTTPS или хостингом в IIS.Службу WCF можно разместить в любом процессе
  • . Центр разработчиков WCF - хорошее место для начала, или, может быть, в руководстве для начинающих
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...