Почему WCF так важен и в каких случаях он используется?

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

Ответ 1

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

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

Ответ 2

Там мало что добавить к ответам до сих пор, особенно от "siz".

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

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

Ответ 3

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

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

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

то есть:

  • COM +
  • .NET Enterprise Services
  • MSMQ
  • .NET Remoting
  • Веб-службы

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

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

поэтому microsoft объединяет возможности в единую общую, общепринятую сервис-ориентированную модель программирования для Communication. 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 конечных пункта - мы можем указать протоколы и форматы сообщений, которые мы хотим использовать в конечной точке конфигурации

interoperability without WCF

Литература:

Ответ 4

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

Ответ 5

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

Несколько из них с моей головы:

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

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

Ответ 6

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

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