Сейчас я управляю командой из примерно 15 разработчиков, и мы застряли на этапе выбора технологии, когда команда разбита на две совершенно противоположные команды, обсуждающие вопрос об использовании WCF и веб-API.
Команда A, которая поддерживает использование Web API, выдвигает следующие причины:
- Web API - это просто современный способ написания сервисов ( Википедия )
- 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 процентов) нам могут понадобиться распределенные транзакции.
Что мне теперь делать? Как мне вести эту дискуссию конструктивно?