Різниця між WCF і Web API
Що таке WCF?
WCF означає Windows Комунікація Foundation. Він використовується для створення розподілених і сумісних додатків. WCF є ефективною платформою для розробки сервіс-орієнтованих додатків. Це дозволяє розробникам створювати безпечні, надійні та високопрофільні рішення для розробки, які можна інтегрувати між платформами та взаємодіяти з існуючими інвестиціями.
Що таке Web API?
ASP.NET Web API — це структура, яка дозволяє створювати служби HTTP для браузерів і мобільних пристроїв. Це ідеальна платформа для розвитку Програми RESTful на ASP .NET Framework.
Веб-інтерфейс ASP.NET — це розширювана структура для створення служб на основі HTTP, до яких можна отримати доступ у різних програмах на різних платформах, таких як Інтернет, Windows, мобільні пристрої тощо.
КЛЮЧОВА РІЗНИЦЯ
- WCF пропонує запит-відповідь, односторонній або дуплексний режим, тоді як Web API за замовчуванням лише запит-відповідь.
- WCF використовується для розробки служб на основі SOAP, тоді як Web API використовується як для служб на основі SOAP, так і для служб RESTful.
- WCF не пропонує жодної підтримки функцій MVC, тоді як Web API підтримує функції MVC.
- WCF підтримує HTTP, UDP і спеціальний транспортний протокол, тоді як Web API підтримує лише протокол HTTP.
- WCF пропонує підтримку кодування Text, MTOM і Binary, тоді як Web API підтримує формат кодування UTF-8.
- WCF підтримує черги повідомлень, безпеку повідомлень, дуплексний зв’язок, транзакції, тоді як Web API не підтримує.
- WCF означає Windows Комунікація Foundation тоді як API означає інтерфейс прикладної програми.
Навіщо використовувати WCF?
Ось плюси/переваги використання WCF:
- WCF є ідеальним варіантом, якщо ви плануєте використовувати .NET Framework 3.5.
- WCF підтримує кілька протоколів, таких як HTTP, TCP, іменований канал.
- Сервіс WCF корисний, якщо ви хочете створити сервіс із такими стандартами, як безпека обміну повідомленнями транзакцій і надійна безпека повідомлень.
- З WCF можна використовувати шаблони обміну повідомленнями «Запит-відповідь», «Односторонній» і «Двусторонній».
Чому використовувався Web API?
Ось плюси/переваги використання веб-API:
- Веб-інтерфейс API забезпечує підтримку дій CRUD на основі умов, оскільки він працює з дієсловами HTTP (GET, PUT, POST і DELETE)
- Його легко визначити, викрити та споживати REST-ful способом.
- ASP.Net Web API дозволяє демонструвати ваші дані та послуги на різних пристроях.
- Веб-API є відкритим вихідним кодом, тому це ідеальний варіант для створення служб RESTful на платформі .NET.
- Дозволяє розробляти веб-сервіси, які можна масштабувати, відокремити, якими можуть спільно користуватися та використовувати інші розробники для доступу до веб-сервісів.
- Також корисно створювати прості служби HTTP, не засновані на SOAP.
Характеристика WCF
- Висококонфігуровані транспорти
- Кращі варіанти серіалізації
- Добре інтегрований з IIS
- Легко для самостійного розміщення
- Дуже багаті метадані
- Складна модель для публікації
- Контракти з багатими даними
Характеристики Web API
- Тісний зв’язок з HTTP
- Легко перевірити
- Пропонує підтримку для узгодження вмісту
- Дозволяє відкрите форматування
- Жодної залежності від платформи
- Тверда орієнтація на ресурси
- Досвід рівня 2 із зароджуваною підтримкою гіпермедіа
WCF проти веб-сервісу
Параметр | WCF | Веб-API |
---|---|---|
Шаблон обміну повідомленнями | Запит відповіді, односторонній або дуплексний. | За замовчуванням лише запит-відповідь. Однак додатковий шаблон повідомлення може підтримуватися за допомогою інтеграції веб-сокетів. |
хостинг | Хостинг IIS, самостійне розміщення та послуги активації. | Самостійне розміщення та хостинг IIS. |
Open Source | Це не програмне забезпечення з відкритим кодом. | Він постачається з платформою .Net. Він також доступний як окреме завантаження. |
Підтримка функцій MVC | WCF не підтримує такі функції MVC, як контролери, маршрутизація, фільтр, результати аукціону тощо. | ASP.NET Web API підтримує такі функції MVC, як маршрутизація, контролери, результати, фільтр, дії тощо. |
Підтримка кодування | Текст, MTOM і двійковий код. | Стандартна підтримка формату кодування UTF-8. |
Підтримка | Підтримка HTTP, UDP і спеціального транспортного протоколу. | Підтримує тільки протокол HTTP |
Використання моделі | Модель програмування на основі атрибутів користувача. | Зіставляє дієслова HTTP на методи |
конфігурація | Використовує web.config і атрибути для налаштування класу HttpConfiguration, але не в службі web.config. | Web API можна налаштувати за допомогою служби web.config. |
Сервіси RESTful | Він пропонує підтримку для служби RESTFUL, але з обмеженнями. | Ідеально підходить для створення СПІХНИХ послуг. |
Вирішальний фактор для WCF проти Web API
Нижче наведено короткий контрольний список, який допоможе визначити, чи використовувати WCF чи Web API
сценарій | WCF 4.5 | Веб-інтерфейс ASP.NET |
---|---|---|
Потрібна підтримка таких сценаріїв, як черги повідомлень, наскрізна безпека повідомлень, дуплексний зв’язок, розподілені транзакції тощо. | Select | НЕ вибирайте |
Якщо у вас уже є робочі служби WCF і ви бажаєте додатково додати підтримку HTTP. | Select | НЕ вибирайте |
Одна база коду для підтримки кінцевих точок SOAP і RESTful. | Select | НЕ вибирайте |
Хоче створити ресурсно-орієнтовану службу через HTTP. | НЕ вибирайте | Select |
Ваш проект є програмою MVC і потребує деяких функціональних можливостей через HTTP. | НЕ вибирайте | Select |
Ви хочете створювати лише служби HTTP / RESTful | НЕ вибирайте | Select |