Aquí encontrarás todo lo relacionado a la tecnología, computación, informática y demás. Enterate de las noticias del momento en cuanto a tecnología se refiere.





Crear un web service en Monodevelop

¿Qué son los webservices?

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.


Primeros pasos

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:

webservice-mono1

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

webservice-mono2

webservice-mono3

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;

    }

	}
}


webservice-mono4

4.- Ahora agregaremos una liga en el archivo Default.aspx:

	<form id="form1" runat="server">
      <a href="webservice.asmx">WebService</a>
      </form&gt


webservice-mono5

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:


webservice-mono6

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:


webservice-mono7

webservice-mono9

Conclusiones:

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

Descargar el proyecto

Monodevelop 2 en MacOS X

Leyendo el blog de Miguel de Icaza podemos ver el recién liberado monodevelop 2.0 corriendo sobre un MacOS X.


mono

Mono C# con PostgreSQL

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.

postgre

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.

Mono 2.0 gana la herramienta .NET del año

Felicidades al proyecto mono , por ganar en la categoría Herramienta .NET del año.

Todos los derechos reservados. Tecnologia.