Почему WCF так важен и в каких случаях он используется? - PullRequest
39 голосов
/ 04 марта 2009

Я понимаю, что это помогает приложениям взаимодействовать независимо от их местоположения. Почему это важно и что является примером реального использования WCF?

Ответы [ 6 ]

59 голосов
/ 04 марта 2009

WCF - это общий механизм связи, который позволяет настроить общий клиент-хост-обмен между двумя сторонами. Отличительной особенностью WCF является то, что она позволяет настраивать такие свойства службы, как транспорт (http / pipe / tcp / Tibco EMS), модели безопасности (любой из стандартов W3C), сжатие, кодирование, тайм-ауты и т. Д., Без изменения ЛЮБОГО кода , Это мощно. Лучше всего, вы можете настроить его так, чтобы у вас была служба на C # и клиент на Java (или на любом другом языке или наоборот), если они оба общаются с использованием одних и тех же механизмов.

Вы можете создать стандартный веб-сервис HTTP SOAP, используя WCF, и однажды решите переключить его, чтобы использовать более быстрые именованные каналы для локальной связи. Вы можете создавать веб-сервисы, которые общаются через TibcoEMS и имеют простое переключение при сбое на уровне очереди. Вы можете создать потоковый веб-сервис, который распространяет все виды изображений / видео в вашем приложении.

11 голосов
/ 03 ноября 2015

Вот некоторые мозговые свалки, которые, я думаю, могут быть полезны для понимания всего сценария.

Причина создания WCF: Фон

Разработка современных приложений [распределенных приложений], мы используем различные архитектуры и технологии для коммуникации

т.е:

  • COM +
  • .NET Enterprise Services
  • MSMQ
  • .NET Remoting
  • Веб-сервисы

Поскольку существуют различные технологии. все они имеют разные архитектуры. поэтому учить их все сложно и утомительно.

нужно сосредоточиться на каждой технологии для разработки, а не на бизнес-логике приложения

Таким образом, Microsoft объединяет возможности в единую, общую, ориентированную на обслуживание модель программирования для Коммуникации. WCF предоставляет общий подход с использованием общего API, который разработчики могут сосредоточить на своем приложении, а не на протоколе связи.

В наши дни мы называем это WCF.

WCF Background

N.B: изображение, полученное из - http://www.codeproject.com/Articles/255114/Windows-Communication-Foundation-Basics


Для чего конкретно нужен сервис WCF?

WCF позволяет асинхронных сообщений преобразовывать одну конечную точку службы в другую.

Сообщение может быть простым как

  • Один символ
  • Слово

отправлено в формате XML

  • сложная структура данных как поток двоичных данных

Windows Communication Foundation (WCF) поддерживает несколько языков и платформ.

WCF Предоставляет среду выполнения для ваших служб, позволяя вам представлять типы CLR в качестве служб и использовать другие службы в качестве типов CLR. <Ч /> Вот несколько примеров сценариев:

  • Безопасный сервис для обработки бизнес-транзакций.
  • Служба, которая предоставляет текущие данные другим пользователям, например отчет о трафике или другая служба мониторинга.
  • Служба чата, которая позволяет двум людям общаться или обмениваться данными в режиме реального времени.
  • Приложение панели мониторинга, которое опрашивает один или несколько сервисов на предмет данных и представляет их в логическом представлении.
  • Предоставление рабочего процесса, реализованного с использованием Windows Workflow Foundation в качестве службы WCF.
  • Приложение Silverlight для опроса службы о последних каналах данных.

С какой стати мы должны использовать WCF?

из статьи проекта кода, благодаря @ Mehta Priya Я нашел следующие сценарии, иллюстрирующие концепцию. Давайте рассмотрим два сценария:

  • Первый клиент использует приложение java для взаимодействия с нашим Сервисом. Таким образом, для совместимости этот клиент хочет, чтобы сообщения в формате XML и протокол были HTTP.
  • Второй клиент использует .NET, так что для повышения производительности ему нужны сообщения в двоичном формате и протокол TCP.

Без услуг WCF

Теперь для заявленных сценариев, если мы не используем WCF , что произойдет, давайте посмотрим на следующие изображения:

  • Сценарий 1:

interoperability without WCF

  • Сценарий 2:

interoperability without WCF

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

, чтобы объединить и объединить все технологии под одной крышей. Microsoft пришла с новой моделью программирования под названием WCF.

Как WCF облегчает жизнь?

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

Для поддержки вышеуказанных 2 требований клиента -мы настроили 2 конечные точки -мы можем указать протоколы и форматы сообщений, которые мы хотим использовать в конечной точке конфигурации

interoperability without WCF

Ссылки:

  1. WCF: что, почему и когда https://vishalnayan.wordpress.com/2010/12/31/wcf-what-why-when/
  2. Почему мы используем сервис WCF? http://www.codeproject.com/Tips/815742/Why-We-Use-WCF-Service-and-Sample-of-WCF-Service
  3. Что такое Windows Communication Foundation https://msdn.microsoft.com/en-us/library/ms731082(v=vs.110).aspx
  4. Основы Windows Communication Foundation http://www.codeproject.com/Articles/255114/Windows-Communication-Foundation-Basics
9 голосов
/ 05 марта 2009

Пока мало что можно добавить к ответам, особенно из "siz".

Одна вещь, которую нужно добавить, это то, что WCF является текущим способом создания веб-сервисов на платформе .NET. Это не «новый» путь, это текущий путь. Веб-сервисы ASMX - это старый и едва поддерживаемый способ. Один из сотрудников Microsoft публично заявил, что на платформе ASMX будут сделаны только критические исправления безопасности, поэтому, если вы планируете, что ваши службы будут полезны более чем через год, не используйте ASMX.

В дополнение к типичным сценариям использования «веб-службы», WCF обрабатывает нетипичные случаи, такие как двоичное взаимодействие по именованным каналам, очереди сообщений и т. Д. В значительной степени служба, которую вы пишете, поддерживает что-то простое, например SOAP поверх SSL может также поддерживать эти другие протоколы, без изменений в коде.

4 голосов
/ 27 мая 2011

Чтобы ответить на вопрос «реального мира», я просто заканчиваю диспетчерскую систему, с помощью которой Visual Basic 6.0 / приемник аварийного сигнала доступа, система WPF / SQL ERP и приложение iPhone все совместно используют. информация для планирования и выполнения работ.

3 голосов
/ 04 марта 2009

По существу, в одном случае использования вы хотите, чтобы два отдельных приложения как-то общались друг с другом, и их местоположение неизвестно (это может быть одна и та же машина (но разные домен приложения ), та же сеть или другая сторона интернет)

Вы можете легко встроить его в приложение Windows Forms . Это было приятно узнать. Это намного проще, чем .NET Remoting тоже.

3 голосов
/ 04 марта 2009

Существует ряд причин, по которым он имеет преимущество перед классическими веб-службами ASP.NET (.asmx).

Вот пара из них на моей голове:

  1. Возможность иметь несколько привязок для одного и того же вызова службы означает, что сообщение не должно сериализоваться в XML и обратно, если вы просто хотите общаться внутри веб-фермы.

  2. Способ определения контрактов гораздо более прост, когда речь идет о нескольких версиях одного и того же контракта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...