Веб-служба и служба WCF

В чем разница между ними?

Когда я буду выбирать один за другим?

Этот ответ основан на статье, которая больше не существует:

Резюме статьи:

«В принципе, WCF – это уровень обслуживания, который позволяет создавать приложения, которые могут взаимодействовать с использованием различных механизмов связи. С его помощью вы можете общаться с использованием Peer to Peer, Named Pipes, Web Services и т. Д.

Вы не можете сравнивать их, потому что WCF является основой для создания совместимых приложений. Если вам нравится, вы можете думать об этом как о SOA. Что это значит?

Ну, WCF соответствует чему-то известному как ABC, где A – адрес службы, с которой вы хотите общаться, B обозначает привязку, а C означает контракт. Это важно, потому что можно изменить привязку без необходимости изменения кода. Контракт гораздо более мощный, поскольку он заставляет отделить контракт от реализации. Это означает, что контракт определен в интерфейсе, и существует конкретная реализация, которая связана с потребителем с использованием той же идеи контракта. Датамодель абстрагируется ».

… позже …

«должен использовать WCF, когда нам нужно общаться с другими коммуникационными технологиями (e, .g. Peer to Peer, Named Pipes), а не с веб-сервисом»

В чем разница между WCF и веб-сервисами?

WCF заменяет все предыдущие технологии веб-сервисов от Microsoft. Это также делает намного больше, чем традиционно считается «веб-сервисами».

WCF «веб-сервисы» являются частью гораздо более широкого спектра удаленной связи, предоставляемой через WCF. Вы получите гораздо более высокую степень гибкости и переносимости, делая что-то в WCF, чем через традиционный ASMX, потому что WCF разработан с нуля, чтобы обобщить все различные распределенные программные инфраструктуры, предлагаемые Microsoft. Конечная точка в WCF может быть передана так же легко через SOAP / XML, как и через TCP / binary, и изменить этот носитель – это просто файл конфигурационного файла. Теоретически это уменьшает количество нового кода, необходимого при переносе или изменении потребностей бизнеса, целей и т. Д.

ASMX старше, чем WCF, и все, что может сделать ASMX, может быть WCF (и более). В основном вы можете видеть WCF как попытку логически объединить все разные способы подключения двух приложений в мир Microsoft; ASMX был всего лишь одним из этих способов, и теперь он сгруппирован под зонтиком WCF.

Доступ к веб-службам возможен только через HTTP и работает в среде без состояния, где WCF является гибким, поскольку его службы могут размещаться в различных типах приложений. Обычными сценариями для размещения служб WCF являются IIS, WAS, Self-hosting, управляемая служба Windows.

Основное различие заключается в том, что веб-службы используют XmlSerializer . Но WCF использует DataContractSerializer который лучше по производительности по сравнению с XmlSerializer .

Веб-служба основана на SOAP и возвращает данные в форме XML. Он поддерживает только протокол HTTP. Он не является открытым исходным кодом, но может быть использован любым клиентом, который понимает xml. Он может размещаться только на IIS.

WCF также основан на SOAP и возвращает данные в форме XML. Это эволюция веб-службы (ASMX) и поддержка различных протоколов, таких как TCP, HTTP, HTTPS, именованные каналы, MSMQ. Основная проблема с WCF заключается в ее утомительной и обширной конфигурации. Он не является открытым исходным кодом, но может быть использован любым клиентом, который понимает xml. Его можно размещать в приложении или в IIS или с помощью службы windows.

Основное и основное различие заключается в том, что веб-служба ASP.NET предназначена для обмена сообщениями SOAP через HTTP только в то время, когда служба WCF может обмениваться сообщениями с использованием любого формата (по умолчанию SOAP) по любому транспортному протоколу, т.е. HTTP, TCP, MSMQ или NamedPipes и т. Д.

Основное различие – тайм-аут, служба WCF имеет тайм-аут, когда ответа нет, но веб-сервис не обладает этим свойством.

В чем разница между веб-сервисом и WCF?

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

    Но WCF поддерживает больше протоколов для protractorовки сообщений, чем веб-службы ASP.NET. WCF поддерживает отправку сообщений с использованием HTTP, а также Протокол управления передачей (TCP), именованные каналы и Microsoft Message Queuing (MSMQ).

  2. Чтобы создать службу в веб-службе, мы напишем следующий код

    [WebService] public class Service : System.Web.Services.WebService { [WebMethod] public string Test(string strMsg) { return strMsg; } }

    Чтобы создать службу в WCF, мы напишем следующий код

    [ServiceContract] public interface ITest { [OperationContract] string ShowMessage(string strMsg); } public class Service : ITest { public string ShowMessage(string strMsg) { return strMsg; } }

  3. Веб-сервис не является архитектурно более надежным. Но WCF является архитектурно более надежным и способствует лучшим практикам.

  4. Веб-службы используют XmlSerializer, но WCF использует DataContractSerializer. Что лучше в производительности по сравнению с XmlSerializer?

  5. Для внутренних (за брандмауэром) вызовов службы-обслуживания мы используем привязку net: tcp, которая намного быстрее, чем SOAP.

    WCF на 25-50% быстрее, чем веб-службы ASP.NET, и примерно на 25% быстрее, чем .NET Remoting.

Когда я буду выбирать один за другим?

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

    Например, если мне нужно перенести данные с платформы .net на другое приложение, которое работает на другой ОС (например, Unix или Linux), и они используют другой протокол передачи (например, WAS или TCP). Тогда можно передавать данные используя WCF.

  • Здесь нет ограничений на платформу, протокол передачи приложения при передаче данных между одним приложением в другое приложение.

  • Безопасность очень высока по сравнению с веб-сервисом

  • Как установить тайм-аут для клиента веб-службы JAX-WS?
  • Почему разработчик должен использовать веб-службы вместо прямых подключений к db?
  • Первый запрос ASMX Web Service
  • Веб-сервис Java без сервера веб-приложений
  • максимальная длина HTTP GET-запроса?
  • Сертификат клиента SSL в Maven
  • Как я могу подключить iPhone и веб-службу и получить данные XML?
  • Использовать веб-службу WCF с помощью Objective-C на iPhone
  • Захват запросов SOAP для веб-службы ASP.NET ASMX
  • Анализ ответа ksoap2
  • Spring, Jackson и Customization (например, CustomDeserializer)
  • Давайте будем гением компьютера.