Разница между WCF и веб-API

Что такое WCF?

WCF означает Windows Коммуникация Foundation. Он используется для создания распределенных и совместимых приложений. WCF — эффективная платформа для разработки сервис-ориентированных приложений. Это позволяет разработчикам создавать безопасные, надежные и качественные решения для разработки, которые можно интегрировать между платформами и взаимодействовать с существующими инвестициями.

Что такое веб-API?

ASP.NET Web API — это платформа, которая позволяет создавать HTTP-сервисы для браузеров и мобильных устройств. Это идеальная платформа для разработки REST-приложения на ASP .NET Framework.

Веб-API ASP.NET — это расширяемая платформа для создания служб на основе HTTP, к которым можно получить доступ в различных приложениях на разных платформах, таких как Интернет, Windows, мобильные устройства и т. д.

КЛЮЧЕВАЯ РАЗНИЦА

  • WCF предлагает запрос-ответ, односторонний или дуплексный режим, тогда как веб-API по умолчанию поддерживает только запрос-ответ.
  • WCF используется для разработки служб на основе SOAP, тогда как веб-API используется как для служб на основе SOAP, так и для служб RESTful.
  • WCF не предлагает никакой поддержки функций MVC, тогда как веб-API поддерживает функции MVC.
  • WCF поддерживает HTTP, UDP и пользовательский транспортный протокол, тогда как веб-API поддерживает только протокол HTTP.
  • WCF предлагает поддержку текстового, MTOM и двоичного кодирования, тогда как веб-API поддерживает формат кодировки UTF-8.
  • WCF поддерживает очереди сообщений, безопасность сообщений, дуплексную связь и транзакции, тогда как веб-API не поддерживает.
  • WCF означает Windows Коммуникация Foundation тогда как API означает интерфейс прикладной программы.

Зачем использовать WCF?

Вопросы о переполнении стека Веб-API ASP.net и WCF
Вопросы о переполнении стека Веб-API ASP.net и WCF

Вот плюсы/преимущества использования WCF:

  • WCF — идеальный вариант, если вы планируете использовать .NET Framework 3.5.
  • WCF поддерживает несколько протоколов, таких как HTTP, TCP, именованный канал.
  • Служба WCF полезна, если вы хотите создать службу с такими стандартами, как безопасность обмена сообщениями транзакций и надежная безопасность сообщений.
  • С WCF можно использовать шаблоны обмена сообщениями «запрос-ответ», «односторонний» и «дуплекс».

Зачем использовать веб-API?

Google Trends WCF и веб-API ASP.Net

Google Trends WCF и веб-API ASP.Net

Вот плюсы/преимущества использования веб-API:

  • Веб-API обеспечивает поддержку действий CRUD на основе соглашений, поскольку он работает с глаголами HTTP (GET, PUT, POST и DELETE).
  • Его легко определить, представить и использовать с помощью REST.
  • Веб-API ASP.Net позволяет демонстрировать ваши данные и услуги на различных устройствах.
  • Веб-API имеет открытый исходный код, поэтому является идеальным вариантом для создания служб RESTful на платформе .NET.
  • Позволяет масштабируемую, несвязанную разработку веб-службы, которая может использоваться другими разработчиками для доступа к веб-службам.
  • Также полезно создавать простые HTTP-сервисы, не основанные на SOAP.

Характеристики WCF

  • Широкие возможности настройки транспорта
  • Лучшие варианты сериализации
  • Хорошая интеграция с IIS
  • Легко для самостоятельного хостинга
  • Очень богатые метаданные
  • Комплексная модель для публикации
  • Контракты с расширенными данными

Характеристики веб-API

  • Тесно связан с HTTP
  • Легко проверить
  • Предлагает поддержку для согласования контента
  • Позволяет открытое форматирование
  • Никакой зависимости от платформы
  • Твердая ресурсоориентированность
  • Опыт 2 уровня с зарождающейся поддержкой гипермедиа

WCF против веб-службы

WCF против веб-службы

Параметр WCF Веб-API
Шаблон обмена сообщениями Запрос ответа, односторонний или дуплексный. По умолчанию только запрос-ответ. Однако дополнительный шаблон сообщений может поддерживаться за счет интеграции веб-сокетов.
хостинг Хостинг IIS, самостоятельный хостинг и услуги активации. Самостоятельный хостинг и хостинг IIS.
Open Source Это не программное обеспечение с открытым исходным кодом. Он поставляется вместе с .Net framework. Его также можно загрузить отдельно.
Поддержка функций MVC. WCF не обеспечивает никакой поддержки функций MVC, таких как контроллеры, маршрутизация, фильтры, результаты аукционов и т. д. Веб-API ASP.NET поддерживает функции MVC, такие как маршрутизация, контроллеры, результаты, фильтры, действия и т. д.
Поддержка кодирования Текст, MTOM и двоичный файл. Поддержка по умолчанию формата кодировки UTF-8.
Поддержка Поддержка HTTP, UDP и специального транспортного протокола. Поддерживает только протокол HTTP
Использование модели Модель программирования на основе атрибутов пользователя. Сопоставляет HTTP-глаголы с методами
Конфигурация Использует web.config и атрибуты для настройки класса HttpConfiguration, но не в службе web.config. Веб-API можно настроить с помощью службы web.config.
RESTful сервисы Он предлагает поддержку службы RESTFUL, но с ограничениями. Идеально подходит для создания ОТДЫХАЮЩИХ сервисов.

Решающий фактор для WCF и веб-API

Ниже приведен краткий контрольный список, который поможет определить, следует ли использовать WCF или веб-API.

Сценарий ВКФ 4.5 Веб-API ASP.NET
Требуется поддержка таких сценариев, как очереди сообщений, сквозная безопасность сообщений, дуплексная связь, распределенные транзакции и т. д. Выберите НЕ выбирать
Если у вас уже есть работающие службы WCF и вы хотите дополнительно добавить поддержку HTTP. Выберите НЕ выбирать
Одна база кода для поддержки конечных точек SOAP и RESTful. Выберите НЕ выбирать
Хочет создать ресурсо-ориентированный сервис через HTTP. НЕ выбирать Выберите
Ваш проект представляет собой приложение MVC и требует некоторой функциональности через HTTP. НЕ выбирать Выберите
Вы хотите создавать только службы HTTP/RESTful. НЕ выбирать Выберите