23 de diciembre de 2014

CRUD consumiendo un servicio WCF

Toca realizar operaciones a la base de datos en SQL Server desde un servicio WCF, para esto hay dos maneras, ya sea a la antigua con ADO.NET utilizando procedimientos almacenados y los famosos SqlCommand o bien por el lado del ORM Entity Framework.

En esta entrada se utilizaran procedimientos almacenados sobre la siguiente tabla llamada Employee sobre una base de datos a la que llame ejemplo


el web.config del proyecto queda con el Integrated Security = SSPI asi:


Se trabajara sobre el servicio WCF que se creo en entradas anteriores, en este se agregara una carpeta con nombre Clases y dentro de esta agregaremos una clase con el nombre Employee, esta clase sera la entidad de negocio que representara a la tabla Employee, mira el desarrollo del WCF aquí


El código de la clase Employee.cs se muestra a continuación, tener en cuenta los espacios de nombre System.Runtime.Serialization y System.ComponentModel


El procedimiento almacenado que se utilizara se llama IngresarDatos y se agrega sobre la base de datos ejemplo sobre la que también se creo la tabla Employee, el código T-SQL se muestra


Sobre la interfaz o contrato IServicio_WCF del servicio WCF se debe agregar la operación IngresarDatosEmployee, la cual retornara un string y recibe una entidad Employee


El código de la clase Servicio_WCF que implementara la interfaz, desarrollara la operación que se acaba de agregar, el código se muestra


Ahora toca ejecutar el servicio WCF, ya esta debidamente hospedado en el servidor IIS es por eso que se obtiene la dirección web que se resalta en la imagen y la cual debemos copiar pues la necesitaremos a continuación para agregar la referencia de nuestro servicio WCF desde un cliente, para referencia sobre como hospedar un servicio WCF en IIS dejo este enlace


Creamos un nuevo cliente que sera una aplicacion de Windows Forms llamada WindowsFormsApplication1 y agregamos la referencia al servidor WCF, para esto se debe escoger Add Service Reference... desde la aplicación de escritorio


y en la parte de Address pegamos la dirección web que anteriormente habíamos copiado y que hace referencia al servicio WCF creado y presionamos el botón Go


de la imagen anterior, en el Namespace cambie el ServiceReference1 por Servicio, así la manera de invocar al servicio WCF sera Servicio.Servicio_WCFClient test = new Servicio.Servicio_WCFClient();

la pantalla que se mostrara al usuario tendrá el siguiente diseño, para esta entrada solo se codificara el evento del boton Ingresar

El código del evento click del botón Ingresar se muestra a continuación, se hace la referencia al servicio WCF y a la entidad de negocios Employee:


Al completar los datos como se muestra en pantalla y presionar el boton Ingresar aparecerá un MessageBox con un mensaje de confirmación, en caso se de algun error este igualmente se mostrara en el MessageBox, se han hecho las validaciones básicas, ustedes pueden agregar validaciones funcionales para su proyecto.


Para finalizar ejecuto una simple ejecución select sobre la tabla Employee para que muestre el registro que se acaba de ingresar...eso es todo, en la siguiente entrada se mostrara como trabajar WCF con Entity Framework.