Un Web Service es un componente de software que se publica en un servidor Web y que permite la comunicación distribuida entre sistemas o aplicaciones en diferentes máquinas que invocan métodos que estos devuelven un resultado en formato XML.
Este documento XML puede ser procesado por cualquier aplicación ó sistema operativo capaz de procesar XML.
En esta imágen se muestra el funcionamiento de un servicio web en donde el database podría ser un servicio web , que éste, devuelve un resultado en formato XML a los diferentes dispositivos que lo consumen.

Para comenzar a desarrollar el servicio web es necesario tener instalado el IDE Monodevelop, puedes checar esta guia de instalación monodevelop. También se requiere tener instalado el servidor de pruebas XSP2:
# aptitude install mono-xsp2
1.- Primero creamos una nueva solución ASP.NET Aplicación web, en Archivo->Nueva solución y le ponemos como nombre WebServiceMono:

2.- Ahora, del lado izquierdo en donde dice solución, aparecerá el nombre de nuestro proyecto “WebServiceMono“, damos click derecho y vamos en Añadir->Nuevo archivo… y seleccionamos ASP.NET Servicio web con codebehind y le ponemos como nombre “webservice”:
3.- Ahora crearemos un sencillo método dentro del archivo webservice.asmx, que sólamente sumará 2 números, el código completo del archivo webservice.asmx quedaría de la siguiente manera:
using System;
using System.Web;
using System.Web.Services;
namespace WebServiceMono
{
[WebService(Name = "myWebService",Description = "Mi primer webservice en mono",
Namespace = "http://www.antoniomtz.org")]
public class webservice : System.Web.Services.WebService
{
public webservice () {}
//Se crea un sencillo método para sumar 2 números.
[WebMethod]
public int sumar(int a, int b)
{
return a + b;
}
}
}

4.- Ahora agregaremos una liga en el archivo Default.aspx:
<form id="form1" runat="server">
<a href="webservice.asmx">WebService</a>
</form>

5.- Construiremos el proyecto tecleando F5 y si instalamos bien el servidor xsp, nos abrirá un navegador web y trabajará de manera local por el puerto 8080 (éste proyecto no se podrá ver al exterior aún), nos deberá aparecer una página en donde sólamente aparecerá una liga que dice WebService:

6.- Al dar click en la liga, nos aparecerá un tipo asistente para poder probar nuestros métodos que hayamos creado, del lado izquierdo aparecerá información sobre nuestro servicio web así como los métodos, damos click en el método sumar y luego en la parte de arriba test, nos pedirá los 2 parametros, le damos cualquier número y luego en el botón invoke, ésto tendrá como resultado un archivo XML con el resultado:
Esto fué un pequeño tutorial de cómo crear un servicio web desde la parte del software libre utilizando mono para ello.
Por ahora nuestro web service funcionará de manera local, para poder consumirlo desde el exterior es necesario instalar el módulo mono para apache y hacer las respectivas configuraciones, aquí les dejo una guia de instalación y configuración del módulo mono para apache, cuando lo tengan configurado, sólamente pasamos los archivos de nuestro proyecto al directorio virtual en apache y para consumirlo ahora será:
http://tudominio/dirvirtual/webservice.asmx
En el próximo post, crearemos una aplicación en dónde consumiremos el web service que acabamos de crear.
VideoTutorial de éste ejercicio
May 20, 2009 | Etiquetado en: | 5 Comments Leyendo el blog de Miguel de Icaza podemos ver el recién liberado monodevelop 2.0 corriendo sobre un MacOS X.

May 6, 2009 | Etiquetado en: | 1 Comment Ahora les voy a mostrar un pequeño ejercicio para trabajar con mono y el motor de base de datos PostgreSQL, si aún no tienes instalado Postgre ni mono puedes visitar estos tutoriales:
Instalación PostgreSQL, Comenzando con mono.
Para comenzar nos descargaremos la dll necesaria para trabajar con PostgreSQL en .NET, Npgsql.dll.
Ahora en monodevelop, creamos un proyecto nuevo en C# a modo consola, ahora del lado derecho donde dice Referencias, damos click derecho y seleccionamos Editar preferencias, una vez ahí, seleccionamos la dll y la añadimos al proyecto.

Para continuar, necesitamos crear una base de datos en postgre, podemos empezar con una tabla pequeña, para el ejercicio, hice una base de datos llamada ejercicio, con una tabla llamada usuarios que solamente contiene 3 campos, id, nombre y apellido.
Ahora entraremos a la parte de la programación, antes que nada, necesitamos agregar la librería necesaria al proyecto:
using Npgsql;
Enseguida crearemos algunos métodos de conectar, ejecutar y desconectar, para reducir código:
Método conectar()
namespace conexion
{
class Postgre
{
public NpgsqlConnection dbcon; //Variable pública del tipo NpgsqlConnection
public void conectar() //Método conectar
{
string con = "Server=127.0.0.1;"+
"Port=5432;"+
"User Id=tu_usuario;"+
"Password=tu_password;"+
"Database=ejercicio;"; //Cadena para la conexión, modificar según tu user y password.
dbcon = new NpgsqlConnection(con);
dbcon.Open();
}
Método ejecutar(string query)
public void ejectuar(string query)
{
NpgsqlCommand command = dbcon.CreateCommand();
command.CommandText = query;
command.ExecuteReader();
}
Método Main()
public static void Main(string[] args)
{
try{
Postgre conexion;
conexion = new Postgre();
conexion.conectar();
Console.WriteLine("Conexión exitosa");
string query = "INSERT INTO usuarios VALUES ('C01','Juan','Perez');";
conexion.ejectuar(query);
Console.WriteLine("Se ingreso el dato satisfactoriamente");
Console.WriteLine("Visita http://www.antoniomtz.org");
}
catch(NpgsqlException error)
{
string mensaje = error.Message;
Console.WriteLine(mensaje);
}
}
Aquí les dejo el código completo : Conexión.
Espero y les haya servidor, saludos.
February 21, 2009 | Etiquetado en: | 1 Comment Felicidades al proyecto mono , por ganar en la categoría Herramienta .NET del año.
February 16, 2009 | Etiquetado en: | No Comments
Todos los derechos reservados. Tecnologia.