Bien, continuemos con la parte 4 del camino a hacer un pequeño SIG usando tanto Silverlight por el lado web, como para orientarlo a Windows Phone 7, en este caso harás el servicio que le mandará los datos a la aplicación del teléfono (me cuesta llamarlo así, pero bueno), así que empezamos en Visual Studio creando una nueva solución, y escogiendo un “WCF Service” (estas herramientas se instalan junto con las de Silverlight 4).
Ok debido a que tienes tu base de datos, lo primero que debes hacer será vincularla para eso en la pestaña del server Explorer (si no la ves puedes abrirla desde el menú “Ver”), ahí presiona el botón de “Añadir una conexión a base de datos” y te aparecerá un cuadro de diálogo de la siguiente manera.
Como puedes ver, debes establecer tu Servidor de Bases de datos así como la base de datos a consultar, no es nada difícil, si todo salió bien la base de datos aparecerá en una lista de conexiones en tu Ventana de “Explorador de Servidores” de la siguiente manera.
Ya que tienes tu conexión establecida vamos a añadir un nuevo item en tu proyecto (ya lo vimos, pero solo para recordar).
Y el nuevo item que vas a añadir será el de “Linq to SQL classes”.
Llámalo como gustes, yo usaré “LugarEstablecido”, da clic en siguiente y selecciona la opción de generarlo desde una base de datos, en la tercer ventana deja por esta ocasión los valores preestablecidos, solo da clic en siguiente, en la última ventana escoge únicamente el checkbox que de Tablas, para salir da clic en finalizar.
Como puedes ver, tienes un archivo .dbml ya añadido dentro de tu proyecto y solo debiste arrastrar la tabla de tu explorador de servidores hacia el área en blanco para ya tenerla ingresada, bien ahora ve al archivo que se llama “IService1.cs” y ahí coloca el siguiente código.
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; namespace ServicioTelefono { // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together. [ServiceContract] public interface IService1 { [OperationContract] List MostrarLugares(double Norte, double Sur, double Este, double Oeste); } } |
Aclaro que Lugare es el nombre con el que arrastré a mi tabla como lo puedes ver en la imagen anterior, así que deberás reemplazar esa parte por el nombre de tu tabla, además puedes notar que estoy pasando cuatro parámetros de tipo doble en el contrato, estos los aclararé en el siguiente paso, y para llegar a él pasa al archivo “Service1.svc.cs”, e inserta el siguiente código.
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; namespace ServicioTelefono { public class Service1 : IService1 { public ListMostrarLugares(double Norte, double Sur, double Este, double Oeste) { LugarDataContext contexto = new LugarDataContext(); var res = from r in contexto.Lugares where r.Latitud = Sur && r.Longitud = Oeste select r; return res.ToList(); } } } |
Lo que acabas de hacer es generar la método que te devolverá los resultados de una selección en forma de lista, la selección fue hecha en base a Linq, y si miras la imagen siguiente, será mas fácil de explicar.
Si ya viste la imagen en grande puedes ver entonces que los valores que queremos serán los límites, aún así en la siguiente parte lo veremos un poco mas detallado.
Por ahora ejecuta tu servicio y tu resultado debe ser parecido al de esta imagen.
Como puedes ver, al igual que la parte 2 de esta serie tu dirección tiene un número de puerto, así que sigue los mismos pasos de la parte 3 y publica tu servicio en tu IIS, para poder usarlo en la siguiente parte.
Parte 3 Publicar mi aplicación web Parte 5 Consumir mi servicio desde Windows Phone 7
3 comentarios en «Crear un servicio WCF (Parte 4)»