Mostrando entradas con la etiqueta WCF. Mostrar todas las entradas
Mostrando entradas con la etiqueta WCF. Mostrar todas las entradas

domingo, 24 de mayo de 2015

Proyecto Kinect: uso de Windows Presentation Foundation (WPF)

Windows Presentation Foundation (WPF) es un marco de trabajo de interfaz de usuario que permite crear aplicaciones cliente enriquecidas e interactivas. Esta plataforma de desarrollo WPF admite un amplio conjunto de características de desarrollo de aplicaciones, que incluye un modelo de aplicaciones, recursos, controles, gráficos, diseño, enlace de datos, documentos y seguridad. Es un subconjunto de .NET Framework, además hace uso del lenguaje XAML.

La ventaja específica que XAML ofrece a WPF es que XAML es un lenguaje completamente declarativo. En un lenguaje de programación declarativa, el desarrollador (o diseñador) describe el comportamiento y la integración de los componentes sin utilizar programación procedural. La utilización de XAML para desarrollar interfaces de usuario permite, también, la separación entre modelo y vista, lo que se considera un buen principio de arquitectura. En XAML, los elementos y atributos mapean las clases y propiedades en el API subyacente.

Entre las características más importantes de WPF:
  • Ofrece un conjunto de servicios de datos para permitir a los desarrolladores de aplicaciones enlazar y manipular los datos dentro de las aplicaciones.
  • Admite consultas LINQ, como se detalló en el post sobre LINQ to Entities.
  • Proporciona plantillas de datos para controlar la presentación de los datos.
  • Proporciona un conjunto de controles integrados, que contiene elementos como botones, menús, listas, etc.
  • Separación lógica entre un control y su apariencia.
  • Proporciona un sistema integrado para la creación de interfaces de usuario con elementos multimedia comunes, como imágenes vectoriales y de mapa de bits, audio y vídeo.
  • Soporta la mayoría de formatos de imagen más comunes: BMP, JPEG, PNG, GIF, iconos, etc.
  • Admite por defecto los formatos de vídeo WMV, MPEG y algunos archivos AVI.
El uso de WPF en el proyecto viene motivado por las ventajas que suponen todas las características que ofrece, además de la gran adecuación y estabilidad que añade con respecto a las demás tecnologías utilizadas. El hecho de ser un subconjunto de .NET Framework nos asegura la compatibilidad, por ejemplo, con WCF, Entity Framework y la SDK de Kinect.

En el siguiente post hablaré del patrón de diseño Model-View-ViewModel (MVVM).

¡Saludos!

Álvaro Alcolea

jueves, 21 de mayo de 2015

Proyecto Kinect: uso de Windows Communication Foundation (WCF)

WCF es un conjunto de librerías que provee Microsoft en el framework .NET para la construcción de aplicaciones orientadas a servicios.

Su objetivo básico es el de unificar las comunicaciones. No importa que nuestra aplicación distribuida se comunique a través de TCP en unos servicios, en otros en SOAP y en otros en REST, WCF da soporte a los anteriores protocolos, permitiendo que el código de la aplicación desarrollada sea independiente del protocolo que se vaya a utilizar.

WCF consigue dicha independencia realizando una separación entre operaciones y datos. Establece un contrato a través de una interfaz, y ésta a su vez será implementada por una clase.

El servicio se compone a grandes rasgos de:
  • Contrato de servicio (ServiceContract): expone una operación que nuestro servicio web es capaz de ejecutar. Se corresponde con una interfaz.
  • Contrato de operación (OperationContract): expone el método que va a ser incluido en el ServiceContract y que será ofrecido al exterior para su uso por parte de los clientes.
  • Contrato de datos (DataContract): implementa un tipo de dato que el servicio web será capaz de manejar. Generalmente, será el tipo de dato que manejará el contrato de servicio.
  • Datos de miembro (DataMember): es el atributo que será enviado al cliente como parte del DataContract. No se enviarán los atributos que no tengan esta anotación.
  • Implementación del servicio: implementará la interfaz correspondiente al contrato de servicio, haciendo uso del contrato de datos para intercambiar la información.
Un ejemplo de las partes en que se compone WCF viene expuesto en el siguiente esquema:

Esquema de relaciones entre los componentes de WCF
En el esquema anterior se puede ver el contrato de servicio (ServiceContract) que contiene la interfaz (IServiceContract) con todos los contratos de operación (OperationContract). Dicha interfaz es implementada, y a su vez, hace uso del contrato de datos (DataContract). En el ejemplo, el tipo de dato es Paciente que es enviado para uso de las OperationContract.

El uso de WCF en este proyecto y no de otra tecnología de servicios se debe a la facilidad e independencia con la que trabaja a la hora de realizar el despliegue de servicios web. Dicho lo cual en el esquema anterior es posible ver con un simple golpe de vista las relaciones existentes entre los componentes de WCF.

En el siguiente post hablaré de Windows Presentation Foundation (WPF).

¡Saludos!

Álvaro Alcolea