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:
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