Los servicios web XML permiten intercambiar datos en forma de mensajes XML entre sistemas heterogéneos. Los servicios web se crean utilizando el entorno de aplicación ASP.NET, lo que permite a estos tener acceso a numerosas características de .NET Framework.
¿Cómo crear un web services usando el IDE de ASP.NET?
1.- Lo primero que debemos hacer es agregar un nuevo ítem de tipo “WebService” a la solución.
Hacemos botón derecho sobre el proyecto, “Add new ítem”.
De la lista de ítems seleccionamos Web Service que por default nos propone un nombre. Lo vamos a cambiar para no confundir los conceptos. Nuestro Web Services se llamará wsMDW.asmx
Ahora vamos a tener en nuestro proyecto dos archivos nuevos.
-
wsMDW.asmx wsMDW.cs: este archivo va a contener los métodos y objetos que necesitamos publicar.
wsMDW.cs
Esta es la estructura base de la clase wsMDW. Esta clase hereda de System.Web.Services.WebService y de esta forma la identificamos como Web Services.
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class wsMDW : System.Web.Services.WebService {
public wsMDW ()
{ } AQUÍ VAN LOS METODOS WEB QUE VAMOS A PUBLICAR
}
Nuestro primer método web:
Vamos a agrega un método llamado “FechaYHora” que nos va a devolver la fecha y hora del servidor.
[WebMethod] public string FechaYHora() {
return DateTime.Now.ToString();
}
Vemos que tiene la misma apariencia de un método común y corriente.
Las dos grandes diferencias son que este método está dentro de una clase que Hereda de System.Web.Services.WebService y tiene el Decorate [WebMethod] que lo identifica como Método web.
Perfecto, ahora nos preguntamos qué tiene que ver XML en todo eso. Sencillamente lo que responde un Web Services es en formato XML. Vamos a ejecutarlo presionando F5 desde el IDE de ASP.NET
Ahora clickeamos sobre el link “FechaYHora” lo invocamos y veremos en pantalla la respuesta que nos da el web services.
El resultado es este XML con el tag string cuyo valor es la fecha y hora del momento en que se ejecuto el método web.
<?xml version="1.0" encoding="utf-8" ?> <string xmlns="http://tempuri.org/">29/10/2010 11:18:26 p.m.</string>
De la misma forma se crean y prueba otros métodos web que reciban o no parámetros. Ahora veamos un ejemplo simple de un método web que recibe parámetros.
Podemos probar con el clásico HOLA.
[WebMethod]
public string Hola(string Nombre)
{
return "Hola " + Nombre; }
Presionamos sobre el link Hola y nos va a pedir el parámetro NOMBRE que definimos en
nuestro método web.
Agregamos un nombre, invocamos y veamos la respuesta.
<?xml version="1.0" encoding="utf-8" ?> <string xmlns="http://tempuri.org/">Hola Fernando</string>
De esta forma testeamos web services. Ahora nos interesa ver como los podemos utilizar dentro de nuestra aplicación. Lo primero que vamos a hacer es generar una referencia web de la siguiente forma.
1.- Hacemos botón derecho sobre el proyecto y agregamos una referencia web.
En esta ventana nos da 3 opciones.
2.- Como el web services está dentro del proyecto vamos a seleccionar la primera opción.
Ahí se van a listar todos los web services que tengamos en nuestro proyecto.
3.- Seleccionamos el Servicio wsMDW y nos va a mostrar un preview y nos solicita un nombre.
Pondremos ServicioWeb
4.- Por último, agregamos el servicio presionando el botón “Add reference” y se agrega la referencia a nuestro proyecto.
Como vemos se creo una nueva carpeta “App_WebReferences”, ServicioWeb y el archivo wsMDW.discomap
Ahora que ya tenemos referenciado nuestro web services en el proyecto podemos consumirlo.
Supongamos que queremos invocar el método FechaYHora y mostrarlo en pantalla. Para eso, vamos a crear un nuevo webform llamado ConsumoWS.aspx, y agregamos un Label donde vamos a mostrar la respuesta del método.
ConsumoWS.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ConsumoWS.aspx.cs" Inherits="ConsumoWS" %> <html> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </div> </form> </body> </html>
Ahora la llamada al método web la hacemos desde el CodeBehind.
ConsumoWS.aspx.cs
Agregamos estas líneas al método Page_Load
protected void Page_Load(object sender, EventArgs e) { ServicioWeb.wsMDW miws = new
ServicioWeb.wsMDW();
Label1.Text = miws.FechaYHora();
}
Así de simple se crea y consume un web services realizado en ASP.NET
Capítulos del Tutorial
- Capítulo 1: Tutorial de desarrollo web con ASP.NET
- Capítulo 2: Primera aplicación web en ASP.NET
- Capítulo 3: Ejecutar código JavaScript en ASPNET
- Capítulo 4: Archivos Web.Config y Global.asax
- Capítulo 5: Utilización de Código detrás del modelo o código en línea
- Capítulo 6: Controles de servidor y eventos
- Capítulo 7: Controles de usuarios reutilizables
- Capítulo 8: Crear una página de login, autenticación y seguridad.
- Capítulo 9: Utilización de estilos en ASP.NET (CSS)
- Capítulo 10: Trabajando con XML y Web Services










