разница между службами WCF, веб-службами и службами REST - PullRequest
26 голосов
/ 29 февраля 2012

В чем разница между службами WCF и веб-службами в .netКогда я должен использовать WCF и когда использовать веб-службы. Службы REST и WCF одинаковы?Спасибо

Ответы [ 7 ]

26 голосов
/ 29 февраля 2012

Веб-сервис - это абстрактный термин, охватывающий широкий спектр поставщиков данных для распределенных систем.Возможно, вы имеете в виду веб-сервисы ASMX, которые все еще можно найти в дикой природе, но в настоящее время они не очень широко используются в новых разработках.

Служба WCF - это реализация SOAP от Microsoft.Существуют и другие реализации, или вы можете свернуть свою собственную (не рекомендуется).

SOAP - это своего рода веб-служба на основе сообщений, основанная на сеансах и сообщениях.Хорошо, если ваш сервис спроектирован как набор сложных действий.

REST - это веб-служба, работающая без ресурсов, без сеансов и на основе ресурсов.Хорошо, если ваш сервис предназначен для доступа к данным и выполнения простых операций CRUD над ними.SOAP и REST являются взаимоисключающими.Сервис не может быть и тем и другим.Есть способы манипулировать ванильным WCF, чтобы сделать это RESTful, но эти методы становятся устаревшими.Если вы хотите реализовать веб-службу RESTful, в мире Microsoft есть два основных варианта: службы данных WCF и веб-API ASP.NET.

9 голосов
/ 29 февраля 2012

REST - это архитектура

WCF - это API в .NET Framework для создания подключенного сервис-ориентированного приложения.

В прежние времена функциональность, разработанная как веб-служба, была доступна через Интернет, а та же функция, доступная в локальной сети, была доступна через удаленное взаимодействие.

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

4 голосов
/ 29 февраля 2012

Это очень широкий вопрос ... Я собираюсь просто дать краткий высокоуровневый ответ и предложить вам провести дополнительный поиск, так как по каждому предмету уже написано много.Но, надеюсь, это должно дать вам толчок в правильном направлении.

Во-первых, обычно, когда люди обращаются к службам WCF и веб-службам, они ссылаются на более новые соглашения WCF, которые делают вызовы служб довольно общими (быть SOAP, REST и т. д.) и старый .asmx SOAP метод веб-служб.Таким образом, я бы предложил больше изучить WCF и SOAP / .ASMX для различия WCF и более старых веб-сервисов.

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

Я посмотрю, смогу ли я найти несколько хороших статей о REST и WCF чуть позже.Лично я не вижу смысла даже углубляться в старый способ вызова веб-сервисов (страницы .ASMX), поскольку WCF в значительной степени устарел.Тем не менее, изучение различных способов кожи для кошки может быть полезным, чтобы найти то, что подходит вам лучше всего.

Опять же, это ОЧЕНЬ высокий уровень, но это очень общие темы, каждая из которых окружает, так что, надеюсь, обзор высокого уровня поможет вам глубже изучить каждый предмет.

3 голосов
/ 29 февраля 2012

Некоторые люди имеют в виду «ASMX», когда говорят «веб-сервисы».

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

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

Как уже говорили, «REST» - это стиль архитектуры, а не технология.

1 голос
/ 21 июня 2014

Wcf : wcf - это технология, являющаяся частью .net framework, которая обеспечивает среду для работы с различными распределенными технологиями, следуя единой модели программирования. wcf создает прокси. wcf поддерживает сериализатор данных контракта. записи показаны в формате xml.

** Отдых: ** Отдых - это архитектурный стиль, который говорит о более эффективном, эффективном и простом использовании существующих функций Интернета. Такие глаголы, как вставка, обновление и удаление. Отдых не может создать прокси. остальные записи показаны в формате jason.

Веб-служба : служба, размещенная на веб-сайте, называется веб-службой. поддержка веб-сервиса xmlserializer

1 голос
/ 29 февраля 2012

WCF многогранен, поэтому я буду говорить об этом в отношении его наиболее распространенного использования. Основное различие между службами WCF и REST заключается в содержании. Вызов REST обычно больше сосредоточен на сообщении / документе / объекте (С объектами клиента найдите те, которые начинаются с M; с объектами заказа, получите заказ 12 и привязан к протоколу HTTP. WCF, как правило, больше сосредоточен на операции (вызовите операцию поиска params, Invoke получает операцию с параметрами). WCF также не привязан к HTTP.

К вашему сведению, существуют расширения для создания служб на основе REST с использованием WCF (атрибуты WebInvoke, WebGet).

0 голосов
/ 27 февраля 2017

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

Все ответы имеют схожую значимость, но, по моему мнению, Рэй был ближе всего к тому, что на самом деле спрашивали. При разработке или рефакторинге веб-решения у вас всегда возникает вопрос, следует ли нам использовать SOAP или REST. Ответ заключается в сложности бизнес-логики, необходимой для обслуживания. REST хорош для упрощенных вызовов API, которые обычно содержат небольшие наборы запрашиваемых данных или для ночной обработки с большими наборами, но в основном для запросов данных. SOAP - это скорее интерактивный сервис с бизнес-логикой. Например, много методов с большим количеством параметров.

Что мы делаем как часть нашего веб-решения, так это пытаемся использовать оба. Для внутренних методов и основных функций мы используем SOAP, но для открытых API мы предпочитаем REST. Связанный со структурой, определенно WCF как предпочтительный выбор, независимо от того, SOAP или REST.

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