Разница между 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?
Вот плюсы/преимущества использования WCF:
- WCF — идеальный вариант, если вы планируете использовать .NET Framework 3.5.
- WCF поддерживает несколько протоколов, таких как HTTP, TCP, именованный канал.
- Служба WCF полезна, если вы хотите создать службу с такими стандартами, как безопасность обмена сообщениями транзакций и надежная безопасность сообщений.
- С WCF можно использовать шаблоны обмена сообщениями «запрос-ответ», «односторонний» и «дуплекс».
Зачем использовать веб-API?
Вот плюсы/преимущества использования веб-API:
- Веб-API обеспечивает поддержку действий CRUD на основе соглашений, поскольку он работает с глаголами HTTP (GET, PUT, POST и DELETE).
- Его легко определить, представить и использовать с помощью REST.
- Веб-API ASP.Net позволяет демонстрировать ваши данные и услуги на различных устройствах.
- Веб-API имеет открытый исходный код, поэтому является идеальным вариантом для создания служб RESTful на платформе .NET.
- Позволяет масштабируемую, несвязанную разработку веб-службы, которая может использоваться другими разработчиками для доступа к веб-службам.
- Также полезно создавать простые HTTP-сервисы, не основанные на SOAP.
Характеристики WCF
- Широкие возможности настройки транспорта
- Лучшие варианты сериализации
- Хорошая интеграция с IIS
- Легко для самостоятельного хостинга
- Очень богатые метаданные
- Комплексная модель для публикации
- Контракты с расширенными данными
Характеристики веб-API
- Тесно связан с HTTP
- Легко проверить
- Предлагает поддержку для согласования контента
- Позволяет открытое форматирование
- Никакой зависимости от платформы
- Твердая ресурсоориентированность
- Опыт 2 уровня с зарождающейся поддержкой гипермедиа
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. | НЕ выбирать | Выберите |