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.

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

5 comentarios en “Pues sí que va a ser WCF…”

  1. 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 ??

  2. 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,

Responder a ilanda Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *