español and rest web-services wcf asp.net-web-api wcf-web-api

and - wcf vs rest



¿Diferencia entre WCF, API web, WCF REST y servicio web? (2)

¿Cuál es la diferencia entre WCF y la API web y WCF REST y el servicio web? ¿Es WCF realmente tan complicado que se debe usar webapi? ¿Si WebApi puede hacer todo el trabajo y no se aprovecha de los demás?


El .Net framework tiene una serie de tecnologías que le permiten crear servicios HTTP como el servicio web, WCF y ahora la API web. Hay muchos artículos en Internet que pueden describir a quién debe usar. Hoy en día, tiene muchas opciones para construir servicios HTTP en el marco .NET. Aquí puedes leer más:

WCF vs ASP.NET Web API

Servicio WCF vs ASP.NET Web Api


El .Net framework tiene una serie de tecnologías que le permiten crear servicios HTTP como el servicio web, WCF y ahora la API web. Hay muchos artículos en Internet que pueden describir a quién debe usar.

Servicio web

  • Se basa en SOAP y devuelve datos en forma XML.
  • Sólo es compatible con el protocolo HTTP.
  • No es de código abierto, pero puede ser consumido por cualquier cliente que entienda xml.
  • Solo se puede alojar en IIS.

WCF

  • También se basa en SOAP y devuelve datos en formato XML.
  • Es la evolución del servicio web (ASMX) y soporta varios protocolos como TCP, HTTP, HTTPS, Named Pipes, MSMQ.
  • El principal problema con WCF es su configuración tediosa y extensa.
  • No es de código abierto, pero puede ser consumido por cualquier cliente que entienda xml.
  • Se puede alojar en la aplicación o en IIS o mediante el servicio de ventana.

WCF resto

  • Para usar WCF como servicio de resto WCF, debe habilitar webHttpBindings.
  • Es compatible con los verbos HTTP GET y POST de los atributos [WebGet] y [WebInvoke] respectivamente.
  • Para habilitar otros verbos HTTP, tiene que hacer alguna configuración en IIS para aceptar la solicitud de ese verbo en particular en los archivos .svc
  • Pasar datos a través de parámetros usando un WebGet necesita configuración. El UriTemplate debe estar especificado.
  • Es compatible con los formatos de datos XML, JSON y ATOM.

API web

  • Este es el nuevo marco para la construcción de servicios HTTP de forma fácil y sencilla.
  • La API web es de código abierto, una plataforma ideal para crear servicios REST-ful a través de .NET Framework.
  • A diferencia del servicio WCF Rest, usa la función completa de HTTP (como URI, encabezados de solicitud / respuesta, almacenamiento en caché, control de versiones, varios formatos de contenido)
  • También es compatible con las funciones de MVC, como enrutamiento, controladores, resultados de acciones, filtros, carpetas de modelos, contenedores IOC o inyección de dependencias, pruebas de unidades que lo hacen más simple y robusto.
  • Se puede alojar en la aplicación o en IIS.
  • Es una arquitectura liviana y buena para dispositivos que tienen un ancho de banda limitado como los teléfonos inteligentes.
  • Las respuestas son formateadas por MediaTypeFormatter de la API web en JSON, XML o cualquier formato que desee agregar como un MediaTypeFormatter.

A quien elegir entre WCF o WEB API.

  • Elija WCF cuando desee crear un servicio que debería admitir escenarios especiales como mensajería de una vía, colas de mensajes, comunicación dúplex, etc.
  • Elija WCF cuando desee crear un servicio que pueda usar canales de transporte rápido cuando estén disponibles, como TCP, Canalizaciones con nombre o quizás incluso UDP (en WCF 4.5), y también desea admitir HTTP cuando todos los demás canales de transporte no estén disponibles.
  • Elija la API web cuando desee crear servicios orientados a recursos a través de HTTP que puedan usar todas las funciones de HTTP (como URI, encabezados de solicitud / respuesta, almacenamiento en caché, control de versiones, varios formatos de contenido).
  • Elija Web API cuando desee exponer su servicio a una amplia gama de clientes, incluidos navegadores, teléfonos móviles, iPhone y tabletas.

Referencia: http://www.dotnettricks.com
Autor: Shailendra Chauhan