Pues sí que va a ser WCF…

En un post anterior comentaba cómo una de las novedades de la última versión de RIA Services es que se integra dentro de la familia WCF. Ahora toca comprobar cómo ha quedado.

Para poder comprobarlo, lo que he hecho es hacer un ejemplo sencillo del mismo modo que lo hacía con las versiones anteriores. En este post podéis ver los principales pasos a seguir.

Sin hacer ningún paso más de los que hacíamos en las versiones anteriores, ya tenemos la comunicación WCF funcionando. La comunicación es HTTP, usando protocolo binario.

Por lo tanto, al menos de momento, la integración de RIA Services en la familia WCF no ha supuesto una mayor complejidad en este tipo de aplicaciones.

Al crear la aplicación, el DomainService crea un servicio WCF implícito, que el cliente es capaz de instanciar y usar para realizar las peticiones. La estructura del servicio es:

http://[hostname]/[namespacename]-[classname].svc 

Si podemos en el navegador la URL de nuestro servicio, veremos que éste está disponible…

proxywsdl

En la relación entre la aplicación Silverlight y el DomainService no es necesario hacer nada más.

En el servidor se van creando los servicios que consideremos y en el cliente Silverlight los podemos ir usando sin ningún trabajo extra, ya que los proxys se crean de manera automática y transparente, tal y como se hacía en la versiones anteriores. (si os fijáis en los ficheros web.config no veréis “nada” parecido a lo que veis en los servicios WCF tradicionales)

Por lo tanto, al ser un servicio WCF también lo podemos instanciar desde cualquier otra aplicación como si de un servicio “normal” se tratara. Por ejemplo, desde una aplicación WinForm podéis hacer:

AddReference

Si os fijáis cómo queda el fichero de configuración de la aplicación WinForm, veréis que queda exactamente igual como quedaría si el servicio WCF fuese un servicio creado directamente.

Por ejemplo, en la sección cliente podéis ver los dos endpoints que se crean por defecto:

<client>
<endpoint address="http://localhost:30335/Services/BusinessApp-Web-EmpService.svc/soap"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_EmpServiceDomainService"
contract="ServiceReference1.EmpServiceDomainService" name="BasicHttpBinding_EmpServiceDomainService" />
<endpoint address="http://localhost:30335/ServicesBusinessApp-Web-EmpService.svc/binary"
binding="customBinding" bindingConfiguration="BinaryHttpBinding_EmpServiceDomainService"
contract="ServiceReference1.EmpServiceDomainService" name="BinaryHttpBinding_EmpServiceDomainService" />
</client>


Como veis, la integración de RIA Services en la familia WCF no ha supuesto una mayor complejidad en este tipo de aplicaciones….pero si será un beneficio, ya que nos permitirá beneficiarnos de algunas de las características de WCF.
 
En próximos post espero poder mostrar alguna característica interesante: Cómo hacer uso de los Service Behavior, Operation Behavior o cómo poder crear los servicios svc de forma explícita, por ejemplo, para exponer un servicio usando JSON o REST.
Published 24/11/2009 23:39 por Ibon Landa
Comparte este post:
http://geeks.ms/blogs/ilanda/archive/2009/11/24/pues-s-237-que-va-a-ser-wcf.aspx

Comentarios

# re: Pues sí que va a ser WCF…

gracias, siga así con estos post !!!

Wednesday, November 25, 2009 8:19 AM por preguntoncojonero

# Muy bueno

Muy bueno el post!!! quedo a la espera del proximo, que recomendas JSON o XML?

Wednesday, November 25, 2009 2:18 PM por Vanesa Barbosa

# re: Pues sí que va a ser WCF…

Como regla general yo prefiero JSON. Me parece más fácil de manejar y más ligero.

Wednesday, November 25, 2009 2:59 PM por Ibon Landa

# re: Pues sí que va a ser WCF…

he estado usando RIA services en mi aplicacion y he notado que el tiempo de respuesta es mucho mayor que usar simplemente WCF sin mas ni menos, esto que mencionas hacer mejor el performance ?? o seguira igual ??

Wednesday, November 25, 2009 5:02 PM por Norwill Gutiérrez

# re: Pues sí que va a ser WCF…

Hola,

RIA Services es WCF, por lo que el rendimiento debería ser igual.

Eso sí, con RIA Services el formato que se usa por defecto es binario, que es el más rápido.

Un saludo,

Wednesday, November 25, 2009 5:15 PM por Ibon Landa