ADO.NET Data Services ( III ). Cómo consumir un servicio desde una aplicación WinForm
En los post anteriores ya hemos visto cómo puede crearse un servicio de ADO.NET Data Services y cómo se puede interactuar con él desde el navegador.
Ahora es el turno de ver cómo se puede consumir el servicio desde una aplicación cliente, que como ya hemos comentado, podría ser cualquier tipo de aplicación..En este caso, el ejemplo lo haremos con una aplicación Windows.
- Lo primero que haremos es crear una aplicación WinForm.
- Añadir una referencia a Microsoft.Data.WebClient.
- %ProgramFiles%\Reference Assemblies\Microsoft\Framework\ASP.NET 3.5 Extensions
- Para poder acceder al servicio necesitamos crear una capa de objetos que nos posibiliten llamar de forma sencilla al servicio que exponemos, es decir, el proxy. Hasta la versión Release esta opción no está integrada y es necesario generarlo desde la línea de comandos.
- El proceso que debemos usar se llama WebDataGen.exe y se encuentra en WebDataGen.exe en %Program Files%\Microsoft ASP.NET 3.5 Extensions.
- WebDataGen.exe /mode:ClientClassGeneration /outobjectlayer:Northwind.cs /uri:h http://localhost:3895/NorthwindService.svc
- Este proceso genera un fichero cs que tenemos que incluir en el proyecto WinForm.
- Una vez incluido en el proyecto, ya tenemos todo lo necesario.
- Lo que haremos es llamar al servicio de ADO.NET Data Services para que nos devuelva la información de todos los clientes y mostraremos la información en un grid.
- Arrastraremos un DataGridView al formulario.
- Creamos un clase nueva, que le llamamos NorthwindService.cs.
- En este clase es dónde creamos los métodos que acceden al servicio ( a través del proxy ) y devuelven la información a la interfaz de usuario.
- Añadir dos referencias.a Microsoft.Data.WebClient y a NorthwindModel ( proxy ).
- En el constructor de la clase añadimos el código necesario para crear el proxy, un objeto de tipo NorthwindEntities.
- Para recuperar la información podemos hacerlo de dos maneras; usando la clase WebDataQuery o usando LINQ.
- Carga DataGridView los clientes que devuelve el servicio.
- NorthwindService ns = new NorthwindService();
- CustomerGridView.DataSource = ns.GetCustomers();
- Ya ya está...
- F5 de la aplicación Windows, teniendo previamente en ejecución el servicio de ADO.NET Data Service.
Y para el siguiente post un paso más, cómo consumir el servicio con Ajax....