Scour Design. Tutoriales de Flash, ActionScript, CSS, Photoshop, ImageReady...

\n"; } } } lecturas();

          


Servicio Web SOAP con Visual Studio 2003 (Visual C#)

      

Autor: Carlos Carmona

Antes que nada, veamos que es un Servicio Web SOAP:

Servicio Web SOAP
SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar creado por el W3C que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. SOAP es uno de los protocolos utilizados en los servicios Web.

Creamos un nuevo proyecto que será el Servicio Web SOAP:

Creamos un nuevo proyecto SOAP

Supongamos que queremos implementar un sistema de estadísticas de ventas por sección que debe ser accesible a través de distintas aplicaciones, tanto aplicaciones web como de escritorio. Para ello, un Servicio Web SOAP es una solución perfecta.

Implementamos el método del Servicio Web que nos devolverá los datos necesarios, de la siguiente forma:

  1. [WebMethod]
  2. public DataSet EstadisticasDeVentasPorSeccion(int seccion)
  3. {
  4. string conexion = "Data Source=localhost;User id=sa;Password=sa;Initial
    Catalog=datos"
    ;
  5. SqlConnection con = new SqlConnection(conexion);
  6. string cadSQL = "select * from estadisticas where seccion = @seccion";
  7. SqlDataAdapter da = new SqlDataAdapter (cadSQL, con);
  8. da.SelectCommand.Parameters.Add("@seccion", SqlDbType.Int, 4).Value = seccion;
  9. DataSet ds = new DataSet();
  10. da.Fill (ds);
  11. return ds;
  12. }

Luego, la estructura básica de un Método Web sería:

  1. [WebMethod]
  2. public Tipo_Dato_Devuelto Nombre_Del_Servicio(Tipo_Dato Parametro, ...)
  3. {
  4. //Operaciones
  5. return Dato_De_Retorno;
  6. }

De esta manera podremos implementar tantos Servicios Web como queramos, teniendo en cuenta que si el nº es muy elevado sería mejor dividirlos en varios Servicios Web para no sobrecargar uno.

Consumir un Servicio SOAP

Para consumir un Servicio Web SOAP desde una aplicación tanto Web como de escritorio con Visual Studio .NET 2003, primero, agregamos la referencia:

Agregamos la referencia SOAP

En la pantalla que se nos abre, elegímos la opción Servicios Web del equipo local, seleccionamos el correspondiente de la lista que nos aparecerá y en la siguiente pantalla, no olvidemos dar un nombre de instancia para el Servicio Web en la aplicación:

Instanciamos la referencia al Servicio SOAP

El modo de trabajar de aquí en adelante con nuestro Servicio Web SOAP en la aplicación, será el siguiente:

  1. private void Button1_Click(object sender, System.EventArgs e)
  2. {
  3. //Instanciamos la referencia al servicio declarandonos una variable
  4. consumirSOAP.MiServicioSOAP.Service1 MiReferencia
    = new consumirSOAP.MiServicioSOAP.Service1();
  5. //Como el método que implementamos en el servicio devolvía un
  6. //DataSet, declaramos uno para recivir los retornos de las llamadas
  7. DataSet ds = new DataSet();
  8. //Los datos que enviemos al SOAP deben ser del mismo tipo de
  9. //dato que allí hayamos declarado. Como allí declaramos que el
  10. //dato que recibía era de tipo 'int', deberemos hacer aquí la
  11. //conversión de tipo de codigo.Text (string) a entero.
  12. ds = MiReferencia.EstadisticasDeVentasPorSeccion(Int32.Parse(codigo.Text));
  13. //Una vez que ya tenemos nuestro DataSet con los datos que
  14. //queríamos, en adelante trabajamos con él normalmente.
  15. //Por ejemplo:
  16. DataGrid1.DataSource = ds;
  17. DataGrid1.DataBind();
  18. }

Hay que tener en cuenta que si una vez añadida la referencia SOAP a nuestra aplicación añadimos nuevos métodos al servicio, deberemos volver a compilar el código del SOAP y posteriormente actualizar la referencia Web en nuestra aplicación:

Si hay cambios en el SOAP, actualizamos la referencia Web

Para más información consulte la referencia del MSDN.

Scour Design ™ Todos los Derechos Reservados © Carlos Carmona Xhtml 1.1 Strict Válido!CSS Nivel 2 Válido! Nivel Triple-A de Conformidad con las Directrices de Accesibilidad Web (WAI)