mono ejemplo practico web service

9
Organizan en Colaboración: AsturLinux SoftwareLibre EUITIO WebServices Ejemplo Práctico # manuel cernuda garcía ~ [email protected] #

Upload: jonathanvanks4643

Post on 09-Apr-2015

458 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Mono Ejemplo Practico Web Service

Organizan en Colaboración:AsturLinux

SoftwareLibre EUITIO

WebServicesEjemplo Práctico

# manuel cernuda garcía ~ [email protected] #

Page 2: Mono Ejemplo Practico Web Service

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

Page 3: Mono Ejemplo Practico Web Service

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>

Page 4: Mono Ejemplo Practico Web Service

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” %>

Page 5: Mono Ejemplo Practico Web Service

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);}

}

Page 6: Mono Ejemplo Practico Web Service

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.

Page 7: Mono Ejemplo Practico Web Service

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:

Page 8: Mono Ejemplo Practico Web Service

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."));

}}

}

Page 9: Mono Ejemplo Practico Web Service

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.