Разлика между WCF и Web API
Какво е WCF?
WCF означава Windows общуване Foundation. Използва се за създаване на разпределени и оперативно съвместими приложения. WCF е ефективна платформа за разработване на ориентирани към услуги приложения. Той позволява на разработчиците да създават сигурни, надеждни и високопрофилни решения за разработка, които могат да бъдат интегрирани в различни платформи и да взаимодействат със съществуващи инвестиции.
Какво е Web API?
ASP.NET Web API е рамка, която ви позволява да създавате HTTP услуги за браузъри и мобилни устройства. Това е идеална платформа за развитие RESTful приложения на ASP .NET Framework.
ASP.NET Web API е разширяема рамка за изграждане на HTTP базирани услуги, които могат да бъдат достъпни в различни приложения на различни платформи като уеб, Windows, мобилни устройства и др.
КЛЮЧОВА РАЗЛИКА
- WCF предлага заявка-отговор, еднопосочен или дуплекс, докато Web API по подразбиране е само заявка-отговор.
- WCF се използва за разработване на SOAP-базирани услуги, докато Web API се използва както за SOAP-базирани, така и за RESTful услуги.
- WCF не предлага никаква поддръжка за MVC функции, докато Web API поддържа MVC функции.
- WCF поддържа HTTP, UDP и персонализиран транспортен протокол, докато Web API поддържа само HTTP протокол.
- WCF предлага поддръжка на текст, MTOM и двоично кодиране, докато Web API поддържа UTF-8 кодиращ формат.
- WCF поддържа опашки за съобщения, сигурност на съобщенията, дуплексна комуникация, транзакция, докато Web API не поддържа.
- WCF означава Windows общуване Foundation докато API означава интерфейс на приложна програма.
Защо да използвате WCF?

Ето плюсовете/ползите от използването на WCF:
- WCF е идеален вариант, ако планирате да използвате .NET Framework 3.5.
- WCF поддържа множество протоколи като HTTP, TCP, Named pipe.
- Услугата WCF е полезна, ако искате да изградите услуга със стандарти като сигурност на транзакциите за съобщения и надеждна сигурност на съобщенията.
- Можете да използвате модели за обмен на съобщения Request-Reply, One Way и Duplex с 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 framework. Предлага се и като отделно изтегляне. |
| Поддръжка на MVC функции | WCF не предоставя никаква поддръжка за MVC функции като контролери, маршрутизиране, филтър, резултати от търгове и др. | ASP.NET Web API поддържа MVC функции като маршрутизиране, контролери, резултати, филтър, действие и др. |
| Поддръжка на кодиране | Текст, MTOM и двоичен. | Поддръжка по подразбиране за формат на кодиране UTF-8. |
| Подкрепа за | Поддръжка за HTTP, UDP и персонализиран транспортен протокол. | Поддържа само HTTP протокол |
| Използване на модел | Модел на програмиране, базиран на потребителски атрибути. | Картографира HTTP глаголите към методите |
| Конфигурация | Използва web.config и атрибути за конфигуриране на клас HttpConfiguration, но не и в услугата web.config. | Уеб API може да се конфигурира с помощта на услугата web.config. |
| ОТДЪЛЖИТЕЛНИ услуги | Предлага поддръжка за услуга RESTFUL, но с ограничения. | Идеален за изграждане на СПОКОЙНИ услуги. |
Решаващият фактор за WCF срещу Web API
Следва бърз списък за проверка, който да ви помогне да определите дали да използвате WCF или Web API
| Сценарий | WCF 4.5 | ASP.NET Web API |
|---|---|---|
| Изисква поддръжка за сценарии като опашки от съобщения, сигурност на съобщения от край до край, дуплексна комуникация, разпределени транзакции и др. | Изберете | НЕ избирайте |
| Когато вече имате съществуващи работещи WCF услуги и искате допълнително да добавите HTTP поддръжка. | Изберете | НЕ избирайте |
| Една кодова база за осигуряване на поддръжка както на SOAP, така и на RESTful крайни точки. | Изберете | НЕ избирайте |
| Иска да създаде услуга, ориентирана към ресурси през HTTP. | НЕ избирайте | Изберете |
| Вашият проект е MVC приложение и иска някаква функционалност през HTTP. | НЕ избирайте | Изберете |
| Искате да изградите само HTTP / RESTful услуги | НЕ избирайте | Изберете |

