5.31.2011

Publicando y Monitoreando un Servicio en el Windows App Fabric

En este post vamos a crear un servicio WCF y lo vamos a publicar en el Windows AppFabric. Igualmente vamos a monitorear el servicio utilizando el “dashboard” del AppFabric.

Creando el Servicio WCF

El primer paso a realizar es crear un servicio WCF en Visual Studio el cual vamos a publicar en el AppFabric y el IIS. Este servicio tiene una operación que simplemente recibe el nombre de un producto y regresa el código de este producto. La interface del servicio es la siguiente:

image

La implementación de este servicio solamente comprende la devolución de un GUID generado cada vez que el componentes es invocado; es decir, vamos a tener un código nuevo en cada retorno.

image

En el siguiente paso vamos a crear una aplicación web en nuestro sitio web por defecto – default web site – de nuestro IIS, para lograr esto damos botón derecho sobre el sitio web y seleccionamos “Add Application.

image

Seguidamente nos aparece el cuadro de diálogo para configurar nuestra aplicación Web el cual se puede ver en la siguiente figura.

image

En este cuadro de diálogo se configuran los siguientes ítems:

  1. Alias: Es el nombre que llevará nuestra aplicación Web y a través de la cual la accederemos desde nuestra aplicación.

  2. Application Pool: Es el proceso que va a ejecutar nuestra aplicación Web. Debe de estar configurado para que use el mismo framework de .NET con el que desarrollamos nuestra aplicación - en nuestro caso el 4.0

  3. Physical Path: Es la ruta física en donde se van a guardar los componentes del servicio; es decir, en ese directorio estarán nuestros binarios y nuestros archivos de configuración, pero el directorio virtual siempre estará en el IIS y cuando alguien lo invoca, el IIS ejecuta los componentes guardados en la ruta física.

AplicacionWeb

El siguiente paso es publicar el servicio en IIS. Esto lo vamos a conseguir dándole botón derecho

image

Seguidamente nos aparece el diálogo para configurar la forma en que queremos publicar el servicio. Este diálogo me pide la dirección en donde lo vamos a publicar, igualmente que archivos vamos a poner en la ubicación de publicación seleccionada. Lo primero que hacemos es seleccionar el botón del target location para establecer la ubicación del servicio que vamos a publicar.

ConfigurarPublish 

Después de esto vamos ver el diálogo donde podemos seleccionar que aplicación web vamos a utilizar como contenedor para nuestro servicio, en este caso vamos a utilizar la recién creada ServicioPOS.

IISLocation

Cuando seleccionamos la opción Open regresamos a la pantalla de configuración para publicar el servicio pero ya con la dirección seleccionada en la pantalla anterior configurada. Por ahora los demás campos los dejamos como están en la pantalla y seleccionamos publish.

ConfigurarPublish2

En este momento el proceso de publicación inicia y visual studio nos notifica el estado del mismo. Cuando esta listo el servicio para ser consumido podemos ver el siguiente mensaje en la ventana de output de Visual Studio.

resultadopublicar

Una vez publicado podemos probar el servicio desde el navegador de su preferencia utilizando el URL que nos da la ventana de output del mismo. Sin embargo como podemos ver en este caso, se nos presenta un error porque la aplicación web no permite inspeccionar el contenido del directorio.

ErrorIIS

Para solucionar este error procedemos a habilitar esta característica de la aplicación Web seleccionando la opción de Directory Browsing.

DirectoryBrowsing

Luego le seleccionamos habilitar en la cejilla de la derecha de la opción seleccionada.

directorybrowsing2

Después de esto ya podemos probar el servicio desde el navegador. Primero nos aparece el contenido de la aplicación web.

SErvicioen IIS

Aquí seleccionamos el archivo svc y nos aparece el servicio listo para probarse.

definiciondelservicio

Ahora procedemos a crear un cliente – en este caso una aplicación WPF – que nos permita consumir el servicio. Para esto creamos una nueva aplicación WPF y agregamos una referencia al servicio POS.

AddserviceReference

El siguiente paso es crear la interface para consumir el servicio. Esta se presenta en la siguiente figura:

image

Luego procedemos a agregar el código para consumir el servicio desde la ventana.

image

El siguiente paso es habilitar el monitoreo en el AppFabric para ver que tan utilizado es el servicio que acabamos de crear – esto será un tema que es digno de otro post completo. Sin embargo si vamos a al a sección servicios del AppFabric y seleccionamos el servicio que recién creamos vamos a poder ver si el monitoreo está habilitado o no para el servicio específico.

image

Luego de esto procedemos a ejecutar nuestro cliente una cuantas veces para ver si el AppFabric loguea los requests hechos a WCF desde el cliente WPF.

image

Por último vamos al “dashboard” del AppFabric y podemos verificar que el servidor ha logueado las solicitudes a WCF – en este caso solo han habido solicitudes exitosas, es decir terminadas.

image

Etiquetas de Technorati: ,,

5.26.2011

Model First Entity Framework: Pensando Primero en Objetos

Si alguno tiene la ventaja de iniciar un proyecto desde cero, en donde la base de datos no ha sido definida, sin duda tiene una gran oportunidad de aprovecharse de una característica muy interesante del Entity Framework: Model First.

¿Qué es Model First?

El model first es una capacidad de diseño que tiene como idea principal el modelar las clases que voy a utilizar en mi lógica de negocios y a partir de estas, generar mi diagrama de base de datos. En otras palabras, no vamos a crear tablas ni relaciones en la base de datos, si no más bien vamos a crear clases y el Entity Framework nos genera la base de datos – o al menos su contenido. Para ilustrarlo, como siempre vamos a trabajar con un ejemplo.

Crear una Aplicación Utilizando Model First

En primera instancia hacemos una aplicación WPF – puede ser de cualquier tipo – y luego procedemos a agregar un nuevo ítem y seleccionamos ADO.NET Entity Model.

image

Cuando aparece el wizard para proceder con la configuración del modelo de Entity Framework que queremos trabajar seleccionamos “Empty Model”.

image

Una vez seleccionado procedemos a seleccionar “Finish”. En este momento aparecerá el lienzo del modelo del entity framework vacío.

image

El siguiente paso es crear la base de datos en SQL Server. En este caso vamos a crear una base de datos para mi sitio web www.formsevolution.net. A esta base de datos no le vamos a agregar ningún artefacto, solamente vamos a crearla.

image

Seguidamente procedemos a trabajar con el diagrama de entidades – clases al fin y al cabo. Vamos a crear un par de entidades para manejar los cursos que puedo impartir y los temarios respectivos de cada curso. Para esto primero procedemos a agregar una entidad en el modelo del Entity Framework.

image

A la hora de crear la entidad, procedemos a definir el nombre de la misma y además como se llamará el conjunto o colección de entidades de este tipo. Además, creamos la entidad con una llave auto numérica.

image

El siguiente paso es agregarle las propiedades o el estado a las entidades.

image

En este caso agregamos nombre del curso, duración del curso y descripción del curso

image

Ahora procedemos a crear una relación entre el tema y entre el curso. Para lograr esto, simplemente creamos una relación entre ambas entidades. En el toolbox del EF aparece la figura para hacer relaciones.

image

La relación se crea desde la entidad cursos hacia la entidad temas. Como podemos ver en la siguiente figura se crean automáticamente dos propiedades de navegación; además, tal y como debe ser en la conversión de la orientación a objetos a lo relacional, no aparecen llaves foráneas en los objetos, ya que esto es parte del mapeo que debe hacer el ORM.

image

El siguiente paso es generar la base de datos. Para esto vamos a darle botón derecho sobre la superficie del modelo – no sobre las entidades – y vamos a seleccionar “Generate Database from Model”.

image

Seguidamente nos aparece una pantalla para seleccionar el string de conexión que vamos a utilizar

image

Esta acción nos va a generar un script con la información necesaria para generar nuestros objetos en la base de datos.

image

Este script se salvará luego como un archivo con extensión edmx.sql el cual vemos a continuación.

image

Este archivo tiene muchas ventajas ya que puedo meterlo en el control de código para mantener un versiona miento e historial del mismo – TFS, Subversion, SourceSafe, etc.

Luego ejecutamos el código generado en SQL Server creando un nuevo script en la base de datos que se creó para tal fin. Esto va a crear las tablas en la base de datos. Si vemos el diagrama de base de datos podemos ver que las llaves foráneas se crearon automáticamente aunque no hayamos creado los campos en las entidades para tal fin. Esto se da porque en la traducción de lo relacional a lo orientado a objetos estas dos relaciones se representan de forma distinta y por lo tanto se conoce la equivalencia de ambos.

image

Y ahora estamos listos para interactuar con nuestra recién creada base de datos y nuestro modelo de entidades.

Etiquetas de Technorati:

5.21.2011

Instalando el Windows AppFabric

En este post voy proceder a realizar una instalación desde cero de un servidor Windows, habilitando luego el Windows AppFabbric para tener un servidor de aplicaciones y exponer así mis componentes de negocio.

Instalar Windows Server 2008 R2

Para este ejemplo, procedí a instalar Windows Server 2008 R2 en una máquina virtual utilizando Virtual Box. Esto sobre todo porque la laptop que tengo con Windows Server no la tengo disponible y no puedo usar Hyper-V desde Windows 7.

image

Instalar Sql Server 2008 R2 Express

El siguiente paso es instalar Sql Server 2008 R2. En este caso voy a utilizar la versión Express para que el AppFabric la utilice como repositorio para tracing, logging y para mantener el estado de los workflows.

image

Instalar Visual Studio 2010

Luego procedemos a realizar una instalación de Visual Studio 2010 profesional para tener el ambiente para desarrollar aplicaciones y servicios utilizando WCF y WF.

image

El siguiente paso es instalar los roles necesarios para poder publicar aplicaciones utilizando IIS y WAS.

image

Al intentar instalar el rol de Application Server me aparece la siguiente ventana indicándome que necesito tener más software para poder agregar este rol.

image

Seleccionamos agregar las características requeridas y proseguimos con la instalación. Al iniciar la instalación del Application Rol nos aparece la siguiente pantalla solicitando los servicios del rol que deseamos instalar, y aunque podemos ser muy granulares al respecto en esta ocasión vamos a seleccionar todos los servicios. En algunos casos aparecen requisitos faltantes que serán creados por el web server rol, sin embargo vamos a seleccionar agregar características requeridas cada vez que aparezca el diálogo.

image

El siguiente paso es seleccionar un certificado para autenticación.

image

Luego dejamos la configuración de los servicios del Web Role tal y como están y procedemos a instalar.

image

Seguidamente procedemos con la instalación del AppFabric y todos sus complementos.

image

Al finalizar la instalación de ambos roles aparecerá el siguiente mensaje

image

Instalar el Windows AppFabric

A continuación procedemos a instalar el AppFabric utilizando el Web Platform Installer. Este nos presenta la opción de instalar el AppFabric cuando seleccionamos la opción productos y en el menú vertical de la izquierda escojemos Server. Una vez seleccionado nos aparece la opción para aceptar la instalación del AppFabric y todas sus dependencias como se ve en la siguiente figura.

image

Al seleccionar aceptar el instalador inicia con las preguntas necesarias para configurar el AppFabric, además verifica y en caso de ser necesario muestra las dependencias que se necesitan instalar para que el servidor se pueda instalar.

Seguidamente aparece el avance de la instalación y la configuración del Windows AppFabric.

image

Cuando finaliza la instalación nos muestra el siguiente mensaje.

image

Ahora el AppFabric nos aparece para desinstalar en el Web Platform Installer.

image

Para verificar la instalación,  vamos al IIS y verificamos que la sección de AppFabric este presente tal y como podemos ver en la siguiente figura.

image

Etiquetas de Technorati: ,