Este post nace a raíz de una conversación que escuché hace unos días entre dos personas acerca de la diferencia entre un web service y WCF.
Un web service es una capa de lógica de negocio accesible a través de protocolos web, uno de ellos SOAP, que usa XML como estándar de datos para enviar y recibir datos.
WCF es un conjunto de librerías que provee Microsoft en el Framework .NET para la construcción de aplicaciones orientadas a servicios.
Y bien, cuáles son las diferencias entonces?... Abordar el tema y conocer profundamente la tecnología es tarea de otros post y seguro da bastante tema para abordar, pero como diferencias básicas entre WCF y Web Services podemos destactar:
- WCF es la evolución de las tecnologías web service de Microsoft de años anteriores.
- WCF provee un amplio rango de funcionalidad por encima de web services, con mejores características en aspectos de calidad como flexibilidad, portabilidad y mantenibilidad.
- Los web services sólo pueden ser accedidos a través de HTTP, mientras que WCF se puede hospedar en un servidor web, WAS, puede ser un servicio de windows, y usa una variedad de protocolos más amplia.
- En la plataforma .NET, la serialización de los datos de los web services se hace a través de la lase XmlSerializer, mientras que para WCF se usa la clase DataContractSerializer. Cabe anotar que esta última es más optimizada para WCF, por lo que provee una mejora en rendimiento a comparacion del XmlSerializer.
- Al DataContractSerializer se le puede indicar cuáles propiedades de las entidades de datos serán serializadas. Esto permite optimizar el tamaño de las peticiones de datos que se generan.
- Hay clases que no se pueden serializar a través de un web service en .NET que si tienen soporte en WCF (HashTable por ejemplo).
Espero que esta información sea más util para todos a la hora de tener un poco más de criterio para saber diferenciar entre estas dos tecnologías!