Зараз я керую командою, що складається з 15 розробників, і ми зупинилися на виборі технології, коли команда розбита на дві абсолютно протилежні команди, обговорюючи питання використання WCF проти Web API.
Команда A, яка підтримує використання Web API, висуває такі причини:
- Web API - це лише сучасний спосіб написання сервісів ( Wikipedia )
- WCF - накладні витрати для HTTP. Це рішення для TCP та Net Pipes та інших протоколів
- Моделі WCF не є POCO через [DataContract] та [DataMember] та ці атрибути
- SOAP не такий читабельний і зручний як JSON
- SOAP - накладні витрати на мережу порівняно з JSON (транспорт по HTTP)
- Немає методу перевантаження
Команда B, яка підтримує використання WCF, говорить:
- WCF підтримує декілька протоколів (через конфігурацію)
- WCF підтримує розподілені транзакції
- Існує багато хороших прикладів та історій успіху для WCF (поки Web API ще молодий)
- Дуплекс відмінно підходить для двостороннього спілкування
Ця дискусія триває, і я не знаю, що зараз робити. Особисто я вважаю, що ми повинні використовувати інструмент лише для правильного місця його використання . Іншими словами, нам краще використовувати Web API, якщо ми хочемо виставити послугу через HTTP, але використовувати WCF, якщо мова йде про TCP та Duplex.
Шукаючи в Інтернеті, ми не можемо досягти міцного результату. Існує багато постів для підтримки WCF, але навпаки, ми також знаходимо скарги людей на це. Я знаю, що характер цього питання може здатися суперечливим, але для вирішення потрібні кілька хороших підказок. Ми застрягли в точці, коли вибір технології випадково може змусити нас шкодувати про це пізніше. Ми хочемо вибирати з відкритими очима.
Наше використання буде здебільшого для Інтернету, і ми можемо відкрити наші послуги через HTTP. У деяких випадках (скажімо, від 5 до 10 відсотків) нам можуть знадобитися розподілені транзакції.
Що мені робити зараз? Як мені керувати цією дискусією конструктивно?