Servicios web en C# .NET

Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Estas aplicaciones pueden estar desarrolladas en lenguajes de programación diferentes y ejecutadas desde cualquier plataforma, ya que los servicios web son interoperables.

Los servicios web son accesibles desde HTTP y siguen una serie de estándares cuyos responsables son las organizaciones OASIS y W3C.

Ahora que ya sabemos lo que es un servicio web, vamos a ver cómo se puede crear uno en .NET.

¿Cómo creamos un servicio web en .NET?

  1. En Visual Studio .NET, creamos un nuevo proyecto C# «ASP .NET Web Service».
  2. Ahora pinchamos con el botón derecho del ratón en el proyecto que acabamos de crear y seleccionamos «Add->Add Web Service» para añadir al proyecto un nuevo servicio web: MiServicioWeb.asmx.
  3. En el código del fichero MiServicioWeb.asmx que se acaba de crear, usamos el atributo WebService para indicar el namespace al que pertenecerá el servicio y una descripción del mismo.
    [WebService(
      Namespace="http://www.miSitio.es/MiNamespace",
      Description="Aquí va la descripción de mi servicio web")]
    public class MiServicioWeb : System.Web.Services.WebService {
      ...
    }
      
  4. A continuación vamos a incluir el código de los métodos que vayamos a exponer desde el servicio web. Como regla general, y para que el servicio sea interoperable al 100%, es conveniente incluir una sóla operación por cada servicio web, aunque .NET nos permite incluir todas las que queramos. Para ello hay que aplicar el atributo WebMethod al método que vayamos a exponer. Si no añadimos este atributo al método, este no será visible desde el servicio web. También podemos incluir con este atributo, una descripción de la operación como vemos en el siguiente ejemplo.
    [WebMethod (Description="Aquí va la descripción de nuestro método.")]
    public string MiMetodo() {
      return "Hola mundo";
    }
      
  5. Compilamos el proyecto, publicamos la aplicación y listo (desde nuestro servidor local sólo es necesario compilar). El archivo WSDL que contiene la descripción de nuestro servicio se genera automáticamente con toda la documentación que se indicó en los atributos WebService y WebMethod. Podemos ver el fichero WSDL en la URL: http://www.miSitio.es/MiServicioWeb.asmx?wsdl. Este fichero será el que le proporcionaremos a todas las aplicaciones que vayan a consumir el servicio web para que conozcan los parámetros y los tipos de retorno.

Y ahora, ¿cómo probamos nuestro servicio web?

La forma más sencilla de probar nuestro servicio web es creando otra aplicación cliente en .NET ya que también es sencillísimo.

  1. Creamos un nuevo proyecto (con una aplicación de consola nos sirve).
  2. Pinchamos con el botón derecho en References y seleccionamos «Add Web Reference…».
  3. En la siguiente pantalla tenemos que escribir la URL de nuestro WSDL: http://www.miSitio.es/MiServicioWeb.asmx?wsdl
  4. Le damos un nombre a la referencia (MiReferencia) y pulsamos «Add Reference». Visual Studio generará automáticamente los stubs del cliente.
  5. Una vez hecho esto, ya podemos usar los métodos del servicio web como si de los métodos de cualquier otra librería se tratase. Lo haremos de la siguiente forma:
    //Primero instanciamos el servicio
    MiReferencia.MiServicioWeb ws = new MiReferencia.MiServicioWeb();
    //Ahora ya podemos usar sus métodos
    Console.WriteLine(ws.MiMetodo());
      
Nuestra puntuación
Twittear
Compartir
Compartir
Pin