mono ejemplo practico web service
TRANSCRIPT
Organizan en Colaboración:AsturLinux
SoftwareLibre EUITIO
WebServicesEjemplo Práctico
# manuel cernuda garcía ~ [email protected] #
Organizan en Colaboración:AsturLinux
SoftwareLibre EUITIO
WebServices: Instalación.
• Esencial: mono, monodevelop y librerias básicas.
$ sudo aptitude install mono mono-devel monodevelop$ sudo aptitude install libmono-winforms1.0-cil libmono-winforms2.0-cil
• Servidor Web.
$ sudo aptitude install mono-xsp2 mono-xsp2-base asp.net2-examples
• Este ejercicio esta pensado para distribuciones Debian obasadas en Debian. En este caso utilizaremos Ubuntu
Organizan en Colaboración:AsturLinux
SoftwareLibre EUITIO
WebServices: Crear un WebService (I) .
• Definir en el fichero de configuración la estructura de directorios.
$ sudo gedit /etc/xsp/debian.webapp
• Utilizaremos el clásico path /var/www/ y dentro de el /web/ comoraíz del WebService.
<apps> <web-application>
<name>web</name><vpath>/web</vpath><path>/var/www/web</path>
</web-application> </apps>
Organizan en Colaboración:AsturLinux
SoftwareLibre EUITIO
WebServices: Crear un WebService (II) .
• Creamos el fichero .asmx que contendrá el Servicio.
$ sudo gedit /var/www/web/hello.asmx
• Debido a la simplicidad del ejemplo, solo contendrá una línea.
<% WebService Languaje=“C#” Class=“WebCiclos” %>
Organizan en Colaboración:AsturLinux
SoftwareLibre EUITIO
WebServices: Crear un WebService (III) .
• Creamos la clase de nuestro WebService en C#.
using System;using System.IO;using System.Web.Services;
[WebService(Namespace="http://localhost:8080",Description="Un simple WebService")]public class Hello : System.Web.Services.WebService{
[WebMethod(Description="Dice Hola")]public string SayHello(string name){
return String.Format("Hello {0}", name);}
}
Organizan en Colaboración:AsturLinux
SoftwareLibre EUITIO
WebServices: Crear un WebService (IV) .
• Compilamos la clase para generar el .dll.
$ mcs -t:library -r:System.Web.Services -out:Hello.dll Hello.cs
• Colocamos el .dll en la carpeta /var/www/bin y activamos el xsp2
$ cd /var/www/$ xsp2
xsp2Listening on port: 8080 (non-secure)Listening on address: 0.0.0.0Root directory: /var/wwwHit Return to stop the server.
Importante: El servidor esta activado mientras esta ventana del terminal permanezca abierta.
Para pararlo basta con cerrarla.
Organizan en Colaboración:AsturLinux
SoftwareLibre EUITIO
WebServices: Crear un WebService (y V) .• Ya podemos acceder a nuestro WebService desde la siguiente
dirección:http://localhost:8080/web/
• Deberíamos obtener una pantalla como esta:
Organizan en Colaboración:AsturLinux
SoftwareLibre EUITIO
WebServices: Utilización del WebService (I) .
• Para importar el WebService y generar la clase Proxy:
$ wsdl http://localhost:8080/web/Hello.asmx?wsdl -out:WSAppProxy.cs -n:WSAppProxy
• Añadimos la clase a un projecto y agregamos el using y la referencia.A traves de esta clase accederemos a los métodos publicos delWebService.
using System;using WSAppProxy;
namespace PruebaWebService{
public class MainClass{
public static void Main(string[] args){
Hello ws = new Hello();Console.WriteLine(ws.SayHello("Manuel Cernuda."));
}}
}
Organizan en Colaboración:AsturLinux
SoftwareLibre EUITIO
WebServices: Utilización del WebService (y II) .
• El resultado sera algo parecido a esto:
$ Hello Manuel Cernuda
• Cosas a tener en cuenta:
• Vigila las rutas de los ficheros.
• Acuerdate de las referencias y los using’s.
• Puedes probar otros WebServices en http://www.xmethods.net/
• Es interesante comprobar compatibilidades entre las distintasplataformas.