martes, 27 de septiembre de 2011

Crear un Web Service básico con C# y Visual Studio Web Developer 2010 (Express)

Teniendo Visual Studio Web Developer 2010 (lo puedes descargar gratis de la página oficial de Microsoft) podemos desarrollar nuestros propios Web Services de una forma muy sencilla.

En el ejemplo mostrado corremos nuestro Web Service bajo nuestro propio servidor IIS en XP.

Si no tienes noción sobre los Web Services te recomiendo una ligera lectura con la que tendrás una mejor idea de lo que se trata.

Primeramente crearemos un nuevo sitio web, damos clic en el boton "Browse..."











Posteriormente seleccionamos "Local IIS", "Default Web Site", "Create new Web Application", le asignamos un nombre y damos clic en "Open".





Damos clic en el botón "OK" de la ventana New Web Site.






Creando el Web Service.

En nuestro Explorador de soluciones damos clic con el botón derecho en el Web Site y seleccionamos "Add New Item..."






















Posteriormente seleccionamos el código con el que trabajaremos (C# en este caso) y seleccionamos "Web Service" de la lista de elementos (no olvidemos el nombre) y damos clic en "Add"
Después de haber realizado estos sencillos pasos, tendremos un Web Service que podremos modificar de acuerdo a nuestras necesidades.

Si observamos la estructura básica del código observaremos que una de las funciones generadas por el IDE contiene el atributo [WebMethod]. Este atributo es indispensable si queremos indicar que el método será expuesto como Web Service y permite que los clientes puedan llamar a dicho método de forma remota. También es necesario declararlo como un método público para que pueda ser expuesto.

Para este ejemplo crearemos una nueva función que reciba un string y devuelva en una arreglo de string con las palabras que recibió como entrada. Para dividir el string original se tomarán en cuenta los espacios en blanco. El código lo podemos observar de esta forma:

Para poder verificar que nuestro Web Service funciona de la forma en que esperamos, el entorno de desarrollo de Visual Studio y el servidor IIS nos proporcionan un método de verificar nuestros Web Services a través de un cliente Web. Ya que los Web Services por sí mismos no exponen una interfaz gráfica, lo que veremos no es el Web Service en sí, es sólo un cliente web (una página) que consume un Web Service y nos muestra una interfaz con la que podemos comunicarnos con nuestro Web Service.

Para iniciar con la prueba, que el IDE haga un "Build" de nuestro proyecto y podamos realizar el "debug" tenemos que presionar la tecla F5, la primera vez aparecerá un mensaje, tenememos que elegir "modificar el archivo de configuración para permitir el debug".

Estas son las imagenes que veremos:

Inicialmente podremos observar una página web que nos muestra una lista de las funciones remotas que podemos invocar desde la página. En este caso aparece nuestra funcion "RomperCadena", damos clic en RomperCadena.

Aquí podemos observar que podemos asignar un valor a nuestro parámetro "cadenaOriginal", en este caso el texto con el que haremos la prueba es "Alfonso Jesus Flores A. -> Prueba de ejecución". Damos clic en el botón "Invoke" y obtendremos una respuesta por parte de nuestro web service.


Aquí tenemos el mensaje XML que obtuvimos como respuesta por parte del Web Service al darle un valor de entrada de "Alfonso Jesus Flores A. -> Prueba de ejecución". Podemos ver que tenemos un tag "ArrayOfString" el cual contiene strings con cada una de las palabras, tomando como referencia los espacios en blanco.


 Con esto finalizamos el ejemplo básico de creación de un Web Service, a través de Web Services se pueden transmitir incluso objetos serializados a través de mensajes XML.