Crear y Consumir Servicios Web en Silverlight

download Crear y Consumir Servicios Web en Silverlight

of 23

Transcript of Crear y Consumir Servicios Web en Silverlight

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    1/23

    1.Crear y consumir servicios web en Silverlight (Parte 1)

    Cuando desarrollas una aplicación en la mayoría de los casos es necesario que para su

    correcto funcionamiento deba obtener su información desde una fuente en específico,

    puedes hacerlo desde una fuente RSS con un archivo XML o un archivo JSON, pero si tunecesidad va mas allá y debes consumir tu información desde una base de datos, tus

    opciones se limitan a una sola posibilidad, consumir unservicio web.

    Los servicios web no son nada mas que intermediarios entre la aplicación Silverlight y la

    base de datos, dado que Silverlight se ejecuta en el “lado cliente” no le es posible estar en

    contacto con la base de datos, la cual se encuentra en el “lado servidor”, dado que el

    servicio web se encuentra alojado en el servidor, puede acceder a la base de datos,

    solicitar la información y enviarla a nuestra aplicación, si lo vemos en un diagrama, el

    resultado si lo quieres ver de la forma mas básica es algo como esto.

    Bien, ya habiendo explicado de esta forma el funcionamiento, puedo comenzar a entrar en

    materia, hay dos tecnologías principales para poder crear un servicio web bajo el entorno

    Microsoft, y lo encierro en ese campo para descartar otras plataformas, como Java y PHP

    que son muy recurridas para esta funcionalidad también (y que Silverlight puede consumir

    sin problema).

    Las dos tecnologías que te menciono son los servicios web ASP y WCF, ambos tienen

    características particulares que los hacen únicos, vamos viendo cuales pueden ser.

    Servicios ASP.NET

    Son los primeros que aparecieron, en la actualidad no fueron incluidos como parte del

    Framework 4.0 de .NET para dar paso a sus sucesores (WCF), pero aún puedes incluirlos

    dentro de una solución como parte de esta (a mí no me late hacerlo, siempre he optado por

    http://es.wikipedia.org/wiki/Servicio_webhttp://es.wikipedia.org/wiki/Servicio_web

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    2/23

    tener el servicio web en una solución y la aplicación en otra, al menos en entornos

    productivos). La razón por la que debas utilizarlos obedece sencillamente a que el servidor

    donde vas a publicar tu servicio web aún no cuenta con el Framework 4.0 pues de lo

    contrario la mejor recomendación será usar un servicio WCF.

    Servicios WCF

    Son la nueva herramienta para intercambio de información, abismalmente mas equipados

    con herramientas y funcionalidades, tantas que son considerados como aplicaciones, es

    decir, aplicaciones orientadas a servicios, fueron creados efectivamente para reemplazar a

    los servicios ASP.NET y dotarlos de mejor funcionalidad, enseguida veremos cuales son.

    Para comenzar a hacer pruebas lo primero que debes hacer es crear una base de datos,

    nada del otro mundo, simplemente crea una tabla que contenga los siguientes datos.

    Recuerda que el campo ID debe tener la propiedad de Identidad. Ya que tengas la tabla

    completa, ahora llénala con unos cuantos registros.

    Esta tabla será la misma que utilizaremos en ambos servicios, así que ya podemos dejar

    de lado a SQL, y comenzar con la creación de los servicios. Así que tu escoges hacia

    donde ir ahora.

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    3/23

    2.Crear y publicar un servicio web ASP.NET (Parte 2)

    En laprimer entrada de esta mini serie de artículos relacionados vimos la introducción de la

    manera de como podemos vincular bases de datos con Silverlight, vamos a continuar con

    los servicios web ASP.NET.Crea un nuevo proyecto en Visual Studio, de tipo Web Service Application ¡Aguas! Debes

    haber seleccionado el Framework 3.5.

     Al aparecer el proyecto generado obtendrás una pantalla como la siguiente.

    http://aminespinoza.com/crear-y-consumir-servicios-web-en-silverlight-parte-1/http://aminespinoza.com/crear-y-consumir-servicios-web-en-silverlight-parte-1/

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    4/23

     Como puedes ver el método lleva antes el prefijo [WebMethod] y es público, debes

    considerar estos dos elementos para poder hacer tu método accesible desde la web, y es

    aquí en donde nos encargaremos de crear tres métodos, uno de consulta, uno de edición y

    uno de actualización (el de borrar quedará de tarea ¿Te late?).

    Antes de continuar, debo aclarar algo muy importante, seré un tanto injusto al crear

    estos servicios comparados con los WCF pero quiero hacerlo de la forma mas básica

    para que de paso puedas cubrir una gama mas amplia de tecnologías, pero para

    calmar mi conciencia debo decirte que puedes mezclar tecnologías sin problemas.

    Lo primero que insertaremos aquí será un método privado que nos permitirá el acceso a

    nuestra cadena de conexión.

     private string cadenaConexion(){string cadena = "Data Source=SERVIDORAMIN;InitialCatalog=Directorio;Integrated Securit=!rue;";return cadena;

    Consultar información

    Este método nos dará toda la información de nuestros contactos.

     #$e%Met&od' public it*string+ Motrar!odooContacto(){it*string+ litaCliente = ne, it*string+();S-lConnection conexion = ne, S-lConnection(cadenaConexion());S-lDataAda.ter ada.tador;string Conulta = "SEEC! / 0ROM Contacto";Data!a%le dato = ne, Data!a%le();

    ada.tador = ne, S-lDataAda.ter(Conulta1 conexion);ada.tador20ill(dato); foreach (DataRo, regitro in dato2Ro,){litaCliente2 Add (regitro#"ID"'2!oString() 3 "4" 3regitro#"No5%re"'2!oString() 3 "4" 3regitro#"A6EIDOS"'2!oString() 3"4" 3 regitro#"!EE0ONO"'2!oString() 3 "4" 3regitro#"EMAI"'2!oString());

     return litaCliente;

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    5/23

    Creamos una lista de tipo string y por medio de los datos que obtenemos de la consulta

    vamos llenando la lista, así de simple.

      Insertar registros

    Este método nos dará la posibilidad de insertar nuevos registros en nuestra tabla.#$e%Met&od' public int InertarNue7a0ec&a(string No5%re1 string A.ellido1string !ele8ono1 string E5ail){string cadenaActuali9ar = "INSER! IN!O Contacto (No5%re1A6EIDOS1 !EE0ONO1 EMAI) 7alue (:no5%re1 :a.ellido1:tele8ono1 :e5ail)";int t = ;using (S-lConnection conexion = ne,S-lConnection(cadenaConexion())){S-lCo55and co5ando = ne, S-lCo55and(cadenaActuali9ar1 conexion);conexion2O.en();co5ando26ara5eter2Add$it&Value(":no5%re"1 No5%re);co5ando26ara5eter2Add$it&Value(":a.ellido"1 A.ellido);co5ando26ara5eter2Add$it&Value(":tele8ono"1 !ele8ono);co5ando26ara5eter2Add$it&Value(":e5ail"1 E5ail);t = co5ando2ExecuteNon

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    6/23

    {S-lCo55and co5ando = ne, S-lCo55and(cadenaActuali9ar1 conexion);conexion2O.en();co5ando26ara5eter2Add$it&Value(":no5%re"1 No5%re);co5ando26ara5eter2Add$it&Value(":a.ellido"1 A.ellido);co5ando26ara5eter2Add$it&Value(":tele8ono"1 !ele8ono);

    co5ando26ara5eter2Add$it&Value(":e5ail"1 E5ail);t = co5ando2ExecuteNon

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    7/23

    Así es, nada mas que un XML que nos estará regresando la información que le solicitamos.

    Hasta aquí ya tenemos nuestro servicio web realizado, pero para que Silverlight pueda

    consumirlo, deberemos publicarlo en nuestro IIS, así que vamos para eso.

    Publicar mi servicio en IIS

    En la ruta C:\inetpub\wwwroot (debes tenerinstalado IIS para esto), crea una nueva

    carpeta.

    Ya con la carpeta creada, vete al administrador de tu equipo. (Presiona la tecla de Windows

    + R y escribe el comando compmgmt.msc), selecciona al administrador de IIS, expande los

    nodos de la derecha hasta llegar a la posición de la siguiente imagen.

    http://darkchicles.wordpress.com/2009/12/01/activar-iis-en-windows-7/http://darkchicles.wordpress.com/2009/12/01/activar-iis-en-windows-7/

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    8/23

     Al seleccionar la opción marcada te aparecerá una ventana como la de abajo, solo da clic

    en aceptar.

    Y ahora verás que tu antigua carpeta se verá de la siguiente forma.

    Ahora podremos regresar a Visual Studio y seleccionar en el menú de “Build” la opción de

    “Publish Service”.

    En el cuadro de diálogo escoge la opción de File System en la opción de Publish method y

    en la de Target Location presiona el botón de “Examinar” (el de los tres puntitos pues).

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    9/23

    Al presionar el botón de examinar, tendrás en pantalla ahora la siguiente ventana (si no te

    apareció es porque no estás corriendo tu Visual Studio en modo administrador), ahí

    simplemente selecciona la carpeta que acabas de crear.

    Tu cuadro de diálogo inicial quedará de la siguiente forma.

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    10/23

    Solo basta que presiones “Publish” y veas en la esquina inferior izquierda y en tu ventana

    de Output los siguientes mensajes.

    Ya que tienes ese letrero, puedes escribir la url de tu sitio con la siguiente secuencia

    http://NombreDeTuServidor/NombreDeTuCarpeta/NombreDeTuServicio, en mi caso quedóasí “http://localhost/ServicioASP/Service1.asmx”.

    3.Crear y publicar una aplicación WCF (Parte 3)

    En laprimer entrada de esta mini serie de artículos comenzamos a ver las bases para crearuna base de datos que utilizaríamos, en lasegunda entrada vimos como crear y publicar un

    servicio web ASP.NET, ahora la idea es hacer exactamente lo mismo pero con una

    aplicación WCF para abarcar diferentes escenarios.

    Así que vamos a comenzar por crear la aplicación WCF

    Escoge la opción de WCF Service Application, recuerda en esta ocasión escoger el

    Framework 4.

    http://aminespinoza.com/crear-y-consumir-servicios-web-en-silverlight-parte-1/http://aminespinoza.com/crear-y-publicar-un-servicio-web-asp-net-parte-2/http://aminespinoza.com/crear-y-consumir-servicios-web-en-silverlight-parte-1/http://aminespinoza.com/crear-y-publicar-un-servicio-web-asp-net-parte-2/

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    11/23

    La estructura de tu proyecto quedará de la siguiente manera.

    La clase IService.cs nos servirá como interfaz de nuestro proyecto, es decir, aquí será en

    donde coloquemos las funciones públicas que permitiremos que puedan ser accedidas vía

    web. La clase Service1.svc.cs será la encargada de colocar toda la funcionalidad requerida

    de nuestro servicio, por ahora esas dos clases son las que nos interesan. Para continuar da

    clic derecho en tu proyecto y selecciona la opción Add>New Item, ahí en la sección Data

    elige Linq to SQL Classes.

    La pantalla en blanco te servirá para comenzar a crear tu modelo de datos simplemente

    arrastrando tus tablas (para esto debiste haber creado ya una conexión a tu base de datos

    desde tu pestaña de Server Explorer).

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    12/23

    Ya con tu modelo creado y tu tabla agregada, entonces podremos comenzar a crear los

    mismos tres métodos que vimos en el artículo anterior, comenzaremos en la clase

    Service1.svc.cs creando las operaciones.

    Para empezar podrás notar que la clase hereda las propiedades de la clase IService1, es

    por ello que trabajan de una forma muy vinculada.

    Como mencioné en el artículo anterior, en el servicio web ASP.NET mostré una forma

    de hacerlo completamente diferente, pero aclaro que de esta manera también podría

    ser hecho, mi intención es demostrar la forma mas antigua y básica que hay así

    como la que a mi gusto no solo es la mas nueva, sino que la mas sencilla.

    Lo primero que debemos hacer es declarar un objeto de tipo ModeloDatosDataContext,

    esta clase puede variar de acuerdo a como nombraste a tu modelo anterior y será

     justamente eso, un contexto, un comunicador entre tus tablas inlcuidas dentro de tu modelo

    y tus operaciones. La sintaxis es la siguiente.

    ModeloDatoDataContext contexto;

    Consultar información

    Este método nos dará toda la información de nuestros contactos.

     public it*Contacto+ Motrar!odooContacto(){contexto = ne, ModeloDatoDataContext();it*Contacto+ litaReultado = (from  l in contexto2Contactoselect l)2!oit();return litaReultado;

    Creamos un método que nos regresará una lista del mismo tipo de la clase que

    necesitamos obtener, de esta forma y utilizando una sentencia LINQ muy sencilla obtendrás

    todos los registros.

      Insertar registros

    Este método nos dará la posibilidad de insertar nuevos registros en nuestra tabla.

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    13/23

     public  bool InertarContacto(Contacto nue7oContacto){contexto = ne, ModeloDatoDataContext();contexto2Contacto2InertOnSu%5it(nue7oContacto);contexto2Su%5itC&ange();return true;

    Esto es sumamente sencillo, utilizando el argumento recibido, el método InsertOnSubmit de

    la clase Contactos de nuestro modelo se encargará de agregar la nueva entidad y

    mantenerla en espera de poder ser ingresada y le método SubmitChanges termina la

    operación insertando los datos en la tabla correspondiente.

    Actualizar registros

    Este método nos dará la posibilidad de modificar a los registros que ya tenemos, ya sea en

    uno solo o en todos sus atributos.

     public  bool Actuali9arContacto(Contacto contactoActuali9ado){contexto = ne, ModeloDatoDataContext();ModeloDatoDataContext contextoOriginal = ne,ModeloDatoDataContext(); Contacto contacto = (from  c in contextoOriginal2Contacto where c2ID == contactoActuali9ado2IDselect c)2Single();

     contexto2Contacto2Attac&(contactoActuali9ado1 contacto);contexto2Su%5itC&ange();return true;

    Aquí debido a utilizaremos un contexto para consultar nuestra información, simplemente

    debemos crear un objeto del mismo tipo para que uno pueda consultar y el otro se pueda

    encargar de ingresar la información, la mecánica es la misma que en el método de

    inserción, pero utilizarás el método Attach junto a sus dos parámetros requeridos.

    Ya que tenemos los tres métodos que estarás utilizando, vete ahora a tu clase IService.cs y

    aquí debes crear los contratos para permitir a tus métodos ser operaciones accesibles

    desde la web. Tu clase debe quedar de la siguiente forma.

    #Ser7iceContract' public interface ISer7ice?{#O.erationContract'it*Contacto+ Motrar!odooContacto();

     #O.erationContract' bool InertarContacto(Contacto nue7oContacto); #O.erationContract'

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    14/23

     bool Actuali9arContacto(ContactocontactoActuali9ado); 

    Ya teniendo todo esto listo, presiona F5 para ejecutar tu servicio (ten la pestaña de

    IService1.cs en pantalla) y el resultado será así.

    Selecciona la ruta remarcada en la imagen de arriba y lo que obtendrás será esta pantalla.

    La primer diferencia que notarás con respecto a los servicios ASP.NET es que estos no

    exponen los métodos que contienen, la única forma de poder acceder a ellos es mediante

    un cliente, y eso es justamente lo que haremos, detén la ejecución y ahora ejecuta de

    nuevo, pero con la clase Service1.svc.cs en primer plano, de esta manera ejecutarás de

    manera automática una aplicación llamada WCF Test Client, que te permitirá ver tus

    métodos y trabajar con ellos.

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    15/23

    Si todo está en orden, entonces podrás publicar tu aplicación. El proceso es exactamente el

    mismo que en elartículo anterior, para no redundar en la información puedes ver la sección

    “Publicar mi servicio en IIS”, pero hay una diferencia al momento de convertir tu carpeta en

    aplicación.

    Cuando aparece el cuadro de diálogo de “Agregar aplicación”, en este caso deberás

    cambiar el Grupo de aplicaciones con el que publicarás, en lugar de utilizar DefaultAppPool

    selecciona ASP.NET v4.0 como se ve en la imagen.

    http://aminespinoza.com/crear-y-publicar-un-servicio-web-asp-net-parte-2/http://aminespinoza.com/crear-y-publicar-un-servicio-web-asp-net-parte-2/

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    16/23

    Si ya tienes tu carpeta virtual lista, sigue el mismo procedimiento que en el servicio webASP.NET para publicar vía Visual Studio 2010. Cuando tu servicio web haya sido

    satisfactoriamente publicado, ve a un explorador y escribe una dirección con los siguientes

    términos http://NombreDeTuServidor/NombreDeTuCarpetaVirtual/NombreDeTuServicio.svc

    en mi caso el resultado quedó como “http://servidoramin/ServicioWCF/Service1.svc”.

    4. Consumir servicios web ASP.NET y WCF en Silverlight (Parte 4)

    Este artículo es la cuarta parte de una mini serie que intenta enseñarte como crear, publicar

    y ahora consumir servicios web,el primer artículo habla de la base de datos que has

    estado usando,puedes ver aquí como crear servicios web ASP.NET yaquí como crear

    servicios WCF.

    Creo que la mejor manera de manejar ambos servicios anteriormente creados es en una

    sola aplicación, para ahorrar la parte del diseño te dejo una imagen guía.

    http://aminespinoza.com/crear-y-consumir-servicios-web-en-silverlight-parte-1/http://aminespinoza.com/crear-y-publicar-un-servicio-web-asp-net-parte-2/http://aminespinoza.com/crear-y-publicar-una-aplicacin-wcf-parte-3/http://aminespinoza.com/crear-y-consumir-servicios-web-en-silverlight-parte-1/http://aminespinoza.com/crear-y-publicar-un-servicio-web-asp-net-parte-2/http://aminespinoza.com/crear-y-publicar-una-aplicacin-wcf-parte-3/

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    17/23

    Pero para ahorrar aún mas,puedes descargar aquí el proyecto de inicio.

    Ya con el proyecto inicial, en Visual Studio, da clic derecho sobre tu proyecto y selecciona la

    opción de “Agregar referencia de servicio”.

    En el cuadro de diálogo, comienza con el servicio web ASP.NET, recuerda la URL, algo así

    como

    http://aminespinoza.com/materialBlog/proyectos/ServiciosWeb(inicio).ziphttp://aminespinoza.com/materialBlog/proyectos/ServiciosWeb(inicio).zip

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    18/23

    “http://localhost/ServicioASP/Service1.asmx” y después presiona “Go”, deberás ver algo

    así.

     

    Después de presionar “Ok”, repite la misma operación pero ahora con la liga del servicio

    WCF.

    Hasta aquí, como puedes ver, el procedimiento es exactamente el mismo para ambos tipos

    de servicios, la diferencia comenzará de aquí en adelante, vamos primero a declarar cada

    uno de los objetos de los servicios.

    //servicioASP 

    Ser7icioDatoAS62Ser7ice?Soa.Client er7icioAS6 = ne,Ser7icioDatoAS62Ser7ice?Soa.Client();

     //servicioWCF 

    Ser7icioDato$C02Ser7ice?Client er7icio$C0 = ne,Ser7icioDato$C02Ser7ice?Client();

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    19/23

    Como puedes ver, la diferencia es grande desde aquí, el protocolo de servicio de ASP.NET

    esSOAP, cuando en WCF utilizas un cliente sin ese protocolo, en los manejadores de

    eventos para consultar información, tendrás las diferentes líneas.

    Consultar Información

    Para el servicio ASP.NET necesitas crear primero una clase, de la siguiente forma.

     public class No5%reContacto{ public string No5%re { get; set;  public string A.ellido { get; set;  public string !ele8ono { get; set;  public string E5ail { get; set;

    Y ya con la clase creada, poder usar un evento clic para poder consultar al servicio web.

     private void  %tnO%tenerContactoAS6@Clic(object ender1Ste52$indo,2RoutedE7entArg e){er7icioAS62Motrar!odooContactoCo5.leted 3= ne,E7ent>andlerBlt;Ser7icioDatoAS62Motrar!odooContactoCo5.letedE7ent(er7icioAS6@Motrar!odooContactoCo5.leted);

    er7icioAS62Motrar!odooContactoAnc(); void  er7icioAS6@Motrar!odooContactoCo5.leted(object ender1 Ser7icioDatoAS62Motrar!odooContactoCo5.letedE7ent{if (e2Error == null){it litaContacto = ne, it();foreach (string entidad in e2Reult){

    No5%reContacto contacto = ne, No5%reContacto();contacto2No5%re = entidad2S.lit(4)#?';contacto2A.ellido = entidad2S.lit(4)#';contacto2!ele8ono = entidad2S.lit(4)#';contacto2E5ail = entidad2S.lit(4)#F';litaContacto2 Add (contacto); dgDatoAS62Ite5Source = litaContacto;

    Por el lado de WCF tendrás lo siguiente.

     private void  %tnO%tenerContacto$C0@Clic(object ender1

    http://es.wikipedia.org/wiki/Simple_Object_Access_Protocolhttp://es.wikipedia.org/wiki/Simple_Object_Access_Protocol

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    20/23

    Ste52$indo,2RoutedE7entArg e){er7icio$C02Motrar!odooContactoCo5.leted 3= ne,E7ent>andlerBlt;Ser7icioDato$C02Motrar!odooContactoCo5.letedE7ent(er7icio$C0@Motrar!odooContactoCo5.leted);er7icio$C02Motrar!odooContactoAnc();

     void  er7icio$C0@Motrar!odooContactoCo5.leted(object ender1Ser7icioDato$C02Motrar!odooContactoCo5.letedE7entArg e){if (e2Error == null){dgDato$C02Ite5Source = e2Reult;

    ¿Como ves? Una gran diferencia ¿no es así? Bueno, también debes considerar que por el

    lado de XAML hay una diferencia con los DataGrid que estás usando.

    Este es el DataGrid que estamos usando para el servicio web ASP.NET.

     

    Este es el DataGrid que estamos usando para el servicio WCF.

     eader="A.ellido"Ginding="{Ginding A6EIDOS"/  eader="!elH8ono"Ginding="{Ginding !EE0ONO"/  eader="Correoelectrnico" Ginding="{Ginding EMAI"/  

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    21/23

    {er7icioAS62InertarNue7oContactoCo5.leted 3= ne, E7ent>andlerBlt;Ser7icioDatoAS62InertarNue7oContactoCo5.letedE7entArgBgt;([email protected]);er7icioAS62InertarNue7oContactoAnc(txtNo5%reNue7oAS62!ext1txtA.ellidoNue7oAS62!ext1 txt!ele8onoNue7oAS62!ext1 txtCorreoNue7oAS62!ext);

     void  [email protected](object ender1Ser7icioDatoAS62InertarNue7oContactoCo5.letedE7entArg e){if (e2Error == null){txtNo5%reNue7oAS62!ext = string2E5.t;txtA.ellidoNue7oAS62!ext = string2E5.t;txt!ele8onoNue7oAS62!ext = string2E5.t;txtCorreoNue7oAS62!ext = string2E5.t;

    MeageGox2S&o,("!u nue7o contacto &a ido agregado");

    En el caso del servicio WCF, será de la siguiente forma.

     private void  %tnIngrear$C0@Clic(object ender1 Ste52$indo,2RoutedE7entArg{er7icio$C02InertarContactoCo5.leted 3= ne,E7ent>andlerBlt;Ser7icioDato$C02InertarContactoCo5.letedE7entArgBgt;(

    [email protected]);Ser7icioDato$C02Contacto nue7oContacto = ne, Ser7icioDato$C02Contacto();nue7oContacto2No5%re = txtNo5%reNue7o$C02!ext;nue7oContacto2A6EIDOS = txtA.ellidoNue7o$C02!ext;nue7oContacto2!EE0ONO = txt!ele8onoNue7o$C02!ext;nue7oContacto2EMAI = txtCorreoNue7o$C02!ext;er7icio$C02InertarContactoAnc(nue7oContacto); void  [email protected](object ender1Ser7icioDato$C02InertarContactoCo5.letedE7entArg e)

    {if (e2Error == null){txtNo5%reNue7o$C02!ext = string2E5.t;txtA.ellidoNue7o$C02!ext = string2E5.t;txt!ele8onoNue7o$C02!ext = string2E5.t;txtCorreoNue7o$C02!ext = string2E5.t;MeageGox2S&o,("!u nue7o contacto &a ido agregado");

    Actualizar información

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    22/23

    Para poder modificar elementos de nuestros contactos lo primero que debes hacer es

    manejar el manejador para el evento SelectionChanged de los respectivos DataGrid.

    En el caso de ASP.NET te debe quedar así.

     private void  dgDatoAS6@SelectionC&anged(object ender1Ste52$indo,2Control2SelectionC&angedE7entArg e){contactoElegidoAS6 = ne, No5%reContacto();contactoElegidoAS6 = dgDatoAS62SelectedIte5 as No5%reContacto;txtNo5%reModi8icarAS62!ext = contactoElegidoAS62No5%re;txtA.ellidoModi8icarAS62!ext = contactoElegidoAS62A.ellido;txt!ele8onoModi8icarAS62!ext = contactoElegidoAS62!ele8ono;txtCorreoModi8icarAS62!ext = contactoElegidoAS62E5ail;

    Y en el caso de WCF será así.

     private void  dgDato$C0@SelectionC&anged(object ender1Ste52$indo,2Control2SelectionC&angedE7entArg e){contactoElegido$C0 = ne, Ser7icioDato$C02Contacto();contactoElegido$C0 = dgDato$C02SelectedIte5 as Ser7icioDato$C02Contacto;txtNo5%reModi8icar$C02!ext = contactoElegido$C02No5%re;txtA.ellidoModi8icar$C02!ext = contactoElegido$C02A6EIDOS;txt!ele8ono$C02!ext = contactoElegido$C02!EE0ONO;txtCorreoModi8icar$C02!ext = contactoElegido$C02EMAI;

    Y en el caso del evento clic de los respectivos botones, te debe quedar de la siguiente

    manera.

    Para el evento del botón de ASP.

     private void  %tnModi8icarAS6@Clic(object ender1Ste52$indo,2RoutedE7entArg e){er7icioAS62Actuali9arContactoCo5.leted [email protected];er7icioAS62Actuali9arContactoAnc(contactoElegidoAS62ID1txtNo5%reModi8icarAS62!ext1 txtA.ellidoModi8icarAS62!ext1txt!ele8onoModi8icarAS62!ext1 txtCorreoModi8icarAS62!ext); void  [email protected](object ender1Ser7icioDatoAS62Actuali9arContactoCo5.letedE7entArg e){if (e2Error == null){

  • 8/17/2019 Crear y Consumir Servicios Web en Silverlight

    23/23

    txtNo5%reModi8icarAS62!ext = string2E5.t;txtA.ellidoModi8icarAS62!ext = string2E5.t;txt!ele8onoModi8icarAS62!ext = string2E5.t;txtCorreoModi8icarAS62!ext = string2E5.t;MeageGox2S&o,("!u regitro &a ido actuali9ado");

    Y para el evento del botón WCF.

     private void  %tnModi8icar$C0@Clic(object ender1Ste52$indo,2RoutedE7entArg e){er7icio$C02Actuali9arContactoCo5.leted 3= ne,E7ent>andlerBlt;Ser7icioDato$C02Actuali9arContactoCo5.letedE7entArgBgt;([email protected]);er7icio$C02Actuali9arContactoAnc(contactoElegido$C0); void  [email protected](object ender1Ser7icioDato$C02Actuali9arContactoCo5.letedE7entArg e){if (e2Error == null){txtNo5%reModi8icar$C02!ext = string2E5.t;txtA.ellidoModi8icar$C02!ext = string2E5.t;

    txt!ele8ono$C02!ext =string

    2E5.t;txtCorreoModi8icar$C02!ext = string2E5.t;MeageGox2S&o,("!u regitro &a ido actuali9ado");