08 серпня 2013

Різниця між WCF, Web API, WCF REST і Web Service

.Net framework має ряд технологій, що дозволяють створювати HTTP сервіси такі як Web Service, WCF і Web API. В інтернеті є багато статтей що описують як викоритовувати ці технології. На сьогоднішній день ми маємо великий вибір для створення HTTP сервісів на .NET framework. В цій статті я хочу поділитись з вами своєю думкою стосовно Web Service, WCF і Web API. Для детальнішої інформації про Web API перейдіть за посиланням Що таке Web API і як його використовувати?

Web Service
  • Реалізований на базі SOAP технології і повертає дані в форматі XML.
  • Підтримує лише протокол HTTP.
  • Це не “open source” рішення але можна використовувати на будь якому клієнті, який вміє працювати з xml.
  • Може працювати лише на IIS сервері.
  • Також реалізований на базі SOAP і повертає дані в XML форматі.
  • Це вдосконалений web service(ASMX) що підтримує різні протоколи, такі як TCP, HTTP, HTTPS, Named Pipes, MSMQ.
  • Основна проблема WCF, це тяжкі і складні налаштування.
  • Це не “open source” рішення але можна використовувати на будь якому клієнті який вміє працювати з xml.
  • Може працювати лише на IIS сервері.
WCF Rest
  • Для використання WCF як WCF Rest сервіс, вам потрібно увімкнути webHttpBindings.
  • Він підтримує HTTP GET і POST запити, як [WebGet] і [WebInvoke] атрибути (відповідно).
  • Для того щоб увімкнути інші HTTP методи, ви маєте виконати потрібні конфігурації на IIS щоб приймати запити що вокористовують .svc файли.
  • Для передачі даних через параметри WebGet, його потрібно налаштувати. UriTemplate повинен бути визначеним
  • Він підтримує XML, JSON і ATOM формати даних.
Web API
  • Це нова платформа для створення HTTP сервісів, легким і швидким способом.
  • Web API є “open source” (з відкритим кодом) і являється ідеальною платформою для створення REST-ful сервісів на .NET Framework.
  • На відміну від WCF Rest сервісів, вона повністю використовує можливості HTTP (такі як URIs, request/response заголовки, кешування, підтримка версій, різні типи форматів)
  • Також підтримує MVC особливості, такі як “routing”, “controllers”, “action results”, “filter”, “model binders”, “IOC container” або “dependency injection”, “unit testing” що робить його більш простішим і надійнішим.
  • Може працювати лише на IIS сервері.
  • Це легка архітектура, що сприятливо впливає на пристрої з обмеженою пропускною здатністю, такі як smart phone і т.д.
  • Відповідь форматується у Web API за допомогою MediaTypeFormatter і підтримує JSON, XML або будь який інший формат який ви можете додати як MediaTypeFormatter.
Як обрати між WCF або WEB API
  • Обирайте WCF коли ви хочете створити сервіс який підтримує спеціальні сценарії, такі один із способів обміну повідомленнями, черги повідомлень, дуплексний зв’язок і т.д.
  • Обирайте WCF коли ви хочете створити сервіс що може використовувати швидкі протоколи, такі як TCP, Named Pipes або навіть UDP (in WCF 4.5), і також якщо ви хочете підтримку HTTP, коли всі інші протоколи недоступні.
  • Обирайте Web API коли ви хочете створити, ресурсно-орієнтовані сервіс на HTTP тоді ви зможете використовувати всі можливості протоколу HTTP (такі як URI, request/response заголовки, кешування, підтримка версій, різні типи форматів).
  • Обирайте Web API коли ви хочете щоб ваш сервіс підтримував на широкому колі клієнтів включаючи бараузери, мобільні телефони, iphone і таблеток.
Сподіваюсь вам у вас є досвід роботи з даними сервісами. Хто не має досвіду, в того є час познайомитись з ними на практиці. Буду вдячний за ваші коментарі з приводу цієї статті і розглянутих технологій.

http://www.dotnet-tricks.com/Tutorial/webapi/JI2X050413-Difference-between-WCF-and-Web-API-and-WCF-REST-and-Web-Service.html

0 коментарів:

Дописати коментар