martes, 31 de marzo de 2009

Mono 2.4 y Monodevelop 2.0

El 30 de Marzo salió a la luz la nueva versión de Mono y de Monodevelop. En el caso de Mono ya vamos por la versión 2.4, mientras que en el caso de Monodevelop es la tan esperada versión 2.0.

Mono 2.4 trae consigo una serie de mejoras que podéis mirar aquí. Las más destacables son:
  • Nuevo JIT incluido y eliminación del anterior.
  • Soporte para ASP precompilados.
  • Soporte para SIMD.

Por su parte Monodevelop 2.0 trae nuevas funcionalidades, algunas de ellas muy esperadas. Aquí están todas, pero de todas ellas podemos destacar:
  • Debugger integrado.
  • Soporte nativo para MSBuild.
  • Soporte para autocompletado para C# 3.0.
  • Code folding.
  • Autocompletado para XML.
  • Soporte de los modos de vi.

Más información de Mono en http://mono-project.com

miércoles, 18 de marzo de 2009

Gaia Ajax 3.5

Recientemente se ha publicado la versión 3.5 de Gaia Ajax. Para los que no conozcan Gaia, es un framework que proporciona multitud de controles web para .Net haciendo uso de Ajax.

Desde mi humilde opinión, este framework mejora con creces el framework proporcionado por Microsoft. He realizado algún trabajo con este software y he de decir que me sorprendió gratamente, especialmente por la facilidad de uso, ya que lo que Gaia Ajax nos proporciona son los mismos controles web que existen en ASP.Net pero sobreescritos de forma que los postback son ejecutados mediante Ajax, haciendo que nos olvidemos de esa tarea.

Gaia Ajax se puede utilizar de forma gratuita bajo licencia GPL, es decir que nuestro proyecto debe tener licencia GPL. Para otros casos, siempre se puede adquirir una de las licencias que nos proporcionan en Gaiaware.

Para más información.
Página de Gaiaware
Ejemplos de Gaia Ajax
Descargas

lunes, 2 de marzo de 2009

.NET no es sólo Microsoft

.NET no es sólo Microsoft, sino también Mono (www.mono-project.org) que hace mucho bien por la difusión de la plataforma inicialmente desarrollada por Microsoft.

No quería empezar de otra forma el blog, ya que creo que hay una mala idea concebida de lo que es .NET, muchas veces fomentada por la asociación que se hace a Microsoft, y las críticas ejercidas desde mundo OpenSource.

.NET no es:
  • una plataforma de desarrollo para Microsoft Windows.
  • una plataforma en la que encontramos Microsoft-dependencia.
  • una plataforma cerrada en la que sólo encontramos productos de pago.


Cierto es que no existe compatiblidad 100% entre ambas plataformas, pero son pocas las incompatiblidades que nos podemos encontrar. Es más quitando las importaciones de ciertas librerías desarrolladas en exclusiva para Windows, es decir importaciones de tipo COM, que nos será imposible portar a otros sistemas, Mono y .NET son compatibles.

Recientemente Mono liberó su Release 2.0, es decir, tratamos con un producto con cierta madurez, sin llegar a los años de experiencia y vida de .NET, pero con bastante estabilidad y rendimiento, dignos de ser valorados y estudiados.

Desde aquí sólo quiero potenciar que se desarrolle código para ambas plataformas, con el fin de unificar y de no limitar un desarrollo a un entorno cerrado.

Conexión a base de datos por DbProviderFactory


El acceso a las bases de datos es una de las principales y primeras tareas a realizar por el software. Muchos de los proyecto atacan a la base de datos instanciando directamente al driver de base de datos proporcionado por el fabricante, de forma que en caso de querer cambiar de base de datos nos vemos obligados a cambiar el código de la aplicación, recompilar y volver a distribuirlo.

Para poder evitar esto, .NET ó Mono nos proporciona métodos para poder crear la conexión a base de datos mediante lo que se denomina factoría de base de datos. Consiste en que mediante una factoría, es capaz de instanciar cada uno de los posibles tipos de base de datos que estén registrados en el GAC o en el path de la aplicación.

Para la explicación, nos apoyamos en un ejemplo para una base de datos Postgresql.

Primero se necesitará editar el archivo de configuración de la aplicación, en el caso de una aplicación web, será el web.config y en el caso de una aplicación de ventanas, será el app.config.

En este caso nos vamos en un app.config.

app.config
<configuration>
<system.data>
<dbproviderfactories>
<add name="Npgsql Data Provider" invariant="Npgsql"
description=".Net Framework Data Provider for Postgresql"
type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.2.0,
Culture=neutral, PublicKeyToken=5d8b90d52f46fda7">
</add>
</dbproviderfactories>
</system.data>
</configuration>


En esta configuración estamos indicando que cuando llamemos a la factoría con el nombre Npgsql, automáticamente instanciará las clases de conexión desde el driver de Postgresl. Todas las clases instanciadas se pueden manejar o bien mediante el interfaz genérico (System.Data.IDbConnection para las conexiones) o por las clases comunes de ADO.NET (System.Data.Common.DbConnection para las conexiones).

Para crear una conexión desde la factoría de nuestro ejemplo haremos:

string sFactory = "Npgsql";
DbProviderFactory dbFactoria = DbProviderFactories.GetFactory(sFactory);
DbConnection dbConexion = dbFactoria.CreateConnection();


Con esto ya tendríamos creado nuestro objeto conexión para atacar a la base de datos.