miércoles, febrero 27, 2008

SharpDevelop @ic#code: IDE de programación para windows

 visitar la página web de SharpDevelop @ic#code

Este es un entorno integrado de programación de código libre(tipo a Microsoft VisualStudio) que permite la programación para .NET en lenguaje C#, VisualBasic y Boo.

Tiene un diseñador de forms, ayuda contextual, rellenado de código, palabras reservadas destacadas por colores, depurador, compilador desde el entorno, etc.

Para funcionar necesita .NET framework en versión redistribuible y mejor aún si se utiliza la versión SDK (pues funcionará mejor el depurador y la ayuda en linea).

Un magnífico entorno de programación gratuito que puede sustituir perfectamente a Visual Studio.

Con los complementos adecuados, también se puede utilizar para desarrollar en Mono.

Si se quiere desarrollar para .NET en plataforma windows sin gastarse un duro es el mejor entorno.

Otros entornos:

MonoDevelop: Entorno de desarrollo IDE para Mono

 Visitar la web de MonoDevelop

Es un entorno basado en SharpDevelop que ha sido modificado para utilizar GTK# en vez de WinForms, de manera que pueda ser ejecutado en cualquier entorno en donde funciona la plataforma Mono.

Se puede programar en C# o en otros lenguajes .NET y se integra perfectamente con Mono.

Sin embargo no permite utilizar Microsoft .NET como nuestra plataforma de destino, ya que está orientado a Mono.

Aunque Mono es una versión de código libre de .NET existen diferencias entre ellos y algunas librerías de .NET (y especialmente de las winforms) están aún por implementar, aunque se está trabajando en ello.

En consecuencia, un programa desarrollado con este entorno para Mono, puede no funcionar en un ordenador con windows y .NET en el que no se haya instalado Mono.

Si nuestro objetivo fundamenteal es programar para Mono esta puede ser el IDE perfecto, si el objetivo es Microsoft .NET framework, puede ser más indicado utilizar SharpDevelop.

En cualquier caso, en el momento de escribir este artículo, no existe una versión estable del entorno, estando todavía en "release candidate 1".

Otros entornos IDE:

Eclipse: Entorno IDE de programación multiplataforma y multilenguaje

 Visitar la web oficial de Eclipse

Este es un entorno IDE de desarrollo de código libre, multiplataforma (está desarrollado en java).

Originalmente fue diseñado como un entorno de desarrollo para Java, pero gracias a su modularidad (pueden añadírsele plugins o módulos) actualmente se puede utilizar para desarrollar en múltiples lenguaes (C/C++, C#, por supuesto Java, Cobol, PHP, etc) y para frameworks diferentes.

Existe un módulo de desarrollo para Mono.

El entorno es muy completo y de los más avanzados que existen, pero ocupa gran cantidad de espacio y memoria y es muy complejo.

Puede resultar complicado saber qué conjunto de módulos necesitamos para un determinado framework y lenguaje.

Si programamos principalemente para java o en varios lenguajes y para diferentes plataformas, este puede ser el IDE perfecto.

Otros entornos IDE:

iFolder: Sincronización de carpetas

Acceso al sitio web oficial de iFolder

Este es un programa de código libre y multiplataforma desarrollado por Novell que sirve para la sincronización de carpetas entre ordenadores.

Una vez configurado, el acceso a las carpetas compartidas (que pueden ser varias y entre ordenadores diferentes), el acceso a los archivos se hace de forma normal, como si fueran archivos locales. El programa se encarga de sincronizar los cambios en un archivo entre todos los usuario/ordenadores suscritos.

Los cambios pueden hacerse también offline (mientras no estamos conectados) y el programa los sincronizará la próxima vez que nos conectemos.

Se pueden establecer permisos en las carpetas compartidas, especificando qué usuarios pueden crear, modificar o leer archivos.

El programa está desarrollado utilizando Mono .NET y por tanto puede correr en múltiples plataformas (Linux, Windows, Mac OS, etc.)

El programa puede funcionar en dos modos:

  • Modo cliente-servidor: en un ordenador se instala el módulo servidor que mantiene las cuentas de usuarios y en los demás los clientes. Todos los clientes validan los usuarios con el servidor y sincronizan el contenido primero con el servidor, de donde los demás obtienen las modificaciones.
  • Modo Peer to Peer: no hay un servidor sino que los clientes se remiten los cambios unos a otros entre sí. La validación de usuarios se hace utilizando sistemas de directorios externos como las cuentas de GAIM (cuentas de mensajería AIM de America On Line) o BonJour de Apple.

En el momento de escribir esta nota, los binarios del cliente que se distribuye para windows no incluyen el modo Peer to Peer y no se distribuye el programa servidor para windows, siendo necesario recompilar el código usando Mono o Visual Studio para lograrlo o para tener funcionando el servidor. Esto se supone que cambiará en un futuro.

martes, febrero 26, 2008

Mono: .NET en código libre

Magnífico proyecto cuyo objetivo es portar .NET a diferentes plataformas (Lunix, Mac OS, etc.)

La idea es que cualquier aplicación programada para .NET en cualquiera de los lenguajes soportados, pueda ser ejecutada en diferentes plataformas.

El proyecto consiste en programar en C# y mediante licencia de código libre, la máquina virtual de .NET y el CLR, además de las librerías de .NET.

También se ha programado el entorno de ventanas (winForms) aunque este desarrollo no está del todo completo y va por detrás de los desarrollos de Microsoft.

A parte de eso se han programado librerías para otros sistemas de ventanas como GTK+, de manera que se puede escoger el entorno de ventanas para el que se quiere programar y se puede correr la aplicación en diferentes sistemas operativos, obteniendo una aplicación que funciona igual en todos ellos.

El único problema es que el desarrollo no está del todo completo y puede que algunas aplicaciones no funcionen porque las librerías que utilizan no se hayan desarrollado completamente aún en código libre.

Una gran noticia para asegurar la portabilidad de los programas.

Página  principal del proyecto Mono