Vamos a crear una solucion desarrollada sobre Windows Mobile 6.0. esta aplicación va a consumir datos de un servicio web que a la vez consume una biblioteca de datos, [creada por Diego (Líder de ASPBerries) en las reuniones 2008 de nuestra célula].
Vamos a trabajar primero sobre el servicio web: una vez creada la capa de datos vamos a crear en el visual studio un nuevo web site y agregamos la referencia a la biblioteca de datos para tener acceso a los datos, para esto hacemos clic con el boton derecho sobre el proyecto en la ventana solution explorer y seleccionamos add reference y aparecera:
Seleccionamos Datos y hacemos clic en Ok, luego en el archivo Services.asmx en la parte donde dice class cambiar por:
" Class="ForoService"
y en appcode en Service.cs escribir el siguiente código dentro de la clase que la renombraremos por Foro Service:
1: public class ForoService : System.Web.Services.WebService
2: {
3: public ForoService () {
4:
5: //Uncomment the following line if using designed components
6: //InitializeComponent();
7: }
8:
9: [WebMethod]
10: public string HelloWorld() {
11: return "Hello World";
12: }
13:
14: [WebMethod(Description = "Datos de Foro")]
15: public List<clsUsuario> GetList()
16: {
17: dalUsuario dUsuario = new dalUsuario();
18: List<clsUsuario> lista = null;
19: lista = dUsuario.GetList();
20: return lista;
21: }
22:
23: }
Ahora vamos al aplicativo Mobile, para esto creamos una nueva solución, en new -->proyect --> smart device --> Device Application, le ponemos un nombre y luego seleccionaremos el tipo de dispositivo en target platform, en este caso Windows Mobile 6 Profesional SDK y luego Ok.
Una vez creado el proyecto en el solution explorer con el boton derecho sobre el, seleccionar add web references, y en URL ponemos la direccion de nuestro servidor web y un nombre (en este ejemplo se llama TraerDatos) como se muestra en la figura:
Luego clic en AddReference y ya tenemos la referencia creada. Tener en cuenta que si tenemos un servicio web local, en la referencia debemos colocar la dirección URL con la IP que tiene el equipo y no poner localhost, ya que el dispositivo móvil lo tomará como propia. Para conocer el IP que tiene asignada nuestra máquina hacer correr el comando IPconfig en la consola.
A continuación vamos a utilizar un DataGrid y como fuente de datos el servicio web. Para esto primero arrastramos el DataGrid desde la herramientas, y luego en las propiedades, en datasource seleccionamos la fuente de datos, es decir nuestro servicio web como se muestra en la figura:
Y nos queda como resultado:
Luego hacemos doble clic sobre el formulario y escribimos el siguiente código dentro del método Principal_Load:
1: private void Principal_Load(object sender, EventArgs e)
2: {
3: TraerDatos.ForoService svc = new Interfaz.TraerDatos.ForoService();
4: clsUsuarioBindingSource.DataSource = svc.GetList();
5: }
Y con esto ya podemos ejecutar, para esto vamos al menú Tools del Visual Studio, y seleccionamos Device Emulator Manager, y nos aparecerá un cuadro en el cúal debemos seleccionar Windows Mobile 6 Professional Emulator, y hacer clic con el botón derecho del mouse y presionar sobre connect para conectarse con el emulador, en el Device Emulator Manager seleccionamos nuevamente el emulador y presionamos en Cradle, finalmente ejecutamos y el resultado es el siguiente: