Ejemplo 1 de Desarrollo de servicios Web
En este ejemplo, veremos cómo crear y publicar un servicio Web.
En este ejemplo usaremos un editor de textos, (como el bloc de notas), ya que todo el código necesario para la creación del servicio Web lo vamos a incluir en un mismo archivo. El lenguaje a utilizar para escribir el código, será C#.
Nota:
Este es el mismo ejemplo que se usó en la charla sobre Desarrollo y consumo de Web Services.Los pasos a dar serán los siguientes:
1- Abre el bloc de notas o cualquier otro editor de textos para crear el archivo HolaMundoWebS.asmx
2- Para que .NET Framework sepa que este archivo es un servicio Web, tenemos que indicárselo mediante la directiva de ASP.NET @ WebService, en esa directiva se indicará el lenguaje en el que estará el código, así como el nombre de la clase:
<%@ WebService Language="C#" Class="HolaMundoWebS" %>Para más información sobre la directiva @ WebService accede a este artículo de la documentación de Visual Studio .NET:
ms-help://MS.VSCC/MS.MSDNVS.3082/cpguide/html/cpcondeclaringwebservice.htm3- A continuación escribiremos el código que "normalmente" escribiríamos para usar con .NET Framework, en este caso será para definir la clase que contendrá el servicio Web.
4- Empezaremos con la directiva using System.Web.Services;, la cual contiene las clases que nos permite crear servicios Web y clientes de servicios Web.
Nota:
Si necesitamos utilizar otras clases o tipos, tendremos que usar tantas directivas using (seguida del espacio de nombres) como necesitemos. Por ejemplo para poder utilizar las clases de acceso a bases de datos, escribiremos: using System.Data;5- Una vez que hayamos importado todos los espacios de nombres que necesitemos, tendremos que declarar la clase propiamente dicha.
Como recomendación, es conveniente usar el atributo WebService, (no confundirlo con la directiva de ASP.NET de igual nombre), para indicar el espacio de nombres al que pertenece esta clase, así como para indicar una descripción de la clase.[WebService(Namespace="http://www.elguille.info/NET/WebServices/", Description="Hola, Mundo al estilo Web Service")] public class HolaMundoWebS {Nota:
La recomendación es usar como espacio de nombres, el sitio en el que estará alojado el servicio Web.6- A continuación se incluirá el código que contendrá esta clase, en especial la declaración de las funciones (o métodos) que nuestra clase expondrá desde el servicio Web, para ello debemos aplicar a cada uno de los métodos que queramos que el servicio Web exponga, el atributo WebMethod. Si no indicamos este atributo, el método no será visible (o accesible) desde el servicio Web.
Con este atributo, también podemos indicar una descripción, la cual será expuesta por el servicio Web, de esta forma los usuarios tendrán una mejor idea de cual es la función de dicho método.[WebMethod(Description="Devuelve la cadena Hola, Mundo")] public string Saludar() { return "Hola, Mundo"; }7- Podemos seguir añadiendo más métodos al servicio Web, pero hay que tener presente que para que ese método sea expuesto por el servicio Web, debe tener el atributo WebMethod.
8- Una vez que hemos escrito todo el código de la clase, guardaremos el archivo y para poder hacerlo público, tendremos que publicarlo en un sitio Web. Debido a que este servicio Web está totalmente incluido en un archivo y no tiene más dependencias, sólo tendremos que copiarlo y ya estará listo para poder usarlo.
Nota:
Si no tenemos un sitio en Internet, podemos publicarlo en el sitio local de nuestro equipo: localhost.9- Para poder usar este servicio Web desde el explorador simplemente tendremos que indicar la dirección Web en la que tengamos alojado el servicio Web, por ejemplo, si lo hemos copiado en el servidor local (localhost), tendremos que escribir:
http://localhost/HolaMundoWebS.asmxEn la figura 1, tenemos el servicio Web en el explorador:
Figura 1: El servicio Web en el explorador
Este sería el código completo del código que hemos usado en esta práctica:
<%@ WebService Language="C#" Class="HolaMundoWebS" %> using System.Web.Services; [WebService( Namespace="http://www.elguille.info/NET/WebServices/", Description="Hola, Mundo al estilo Web Service")] public class HolaMundoWebS { [WebMethod(Description="Devuelve la cadena Hola, Mundo")] public string Saludar() { return "Hola, Mundo"; } }
Este es el mismo código pero para Visual Basic .NET:
<%@ WebService Language="VB" Class="HolaMundoWebSVB" %> Imports System.Web.Services <WebService( _ Namespace:="http://www.elguille.info/NET/WebServices/", _ Description:="Hola, Mundo al estilo Web Service")> _ Public Class HolaMundoWebSVB <WebMethod(Description:="Devuelve la cadena Hola, Mundo")> _ Public Function Saludar() As String Return "Hola, Mundo" End Function End Class