Saltar al contenido
Menú
El blog de Kañaz
  • Inicio
  • Acerca de
  • Github
  • Youtube
  • LinkedIn
  • Twitter
El blog de Kañaz

Crear un servicio WCF (Parte 4)

Publicada el 17 enero, 201116 julio, 2012
Twittear

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” img23 y te aparecerá un cuadro de diálogo de la siguiente manera.

img24

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.

img25

Ya que tienes tu conexión establecida vamos a añadir un nuevo item en tu proyecto (ya lo vimos, pero solo para recordar).

img26

Y el nuevo item que vas a añadir será el de “Linq to SQL classes”.

img27

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.

img28

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);
}
}

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();
}
}
}

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.

img29

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.

img30

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)»

  1. Pingback: Publicar mi aplicación web (Parte 3) « Mi sitio, tu sitio
  2. Pingback: La Liga Silverlight » Cuarta entrada un pequeño SIG (Crear un servicio WCF)
  3. Pingback: Ver mi mapa y datos usando Windows Phone 7 (Parte 5) « Mi sitio, tu sitio

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Busca en este sitio

MI perfil de Github

Github profile

Sígueme en Twitter

Seguir a @aminespinoza
©2023 El blog de Kañaz | Funciona con SuperbThemes y WordPress