Programación en C# – Compiladores y entornos de desarrollo

Antes de empezar a programar en C# hay que tener las herramientas adecuadas.

Compiladores y entornos de desarrollo son herramientas indispensables para cualquier programador.

A continuación descubriremos algunas herramientas gratuitas para programar en C#.


Desde que vió la luz la plataforma .NET han aparecido multitud de herramientas y lenguajes compatibles con la misma. En Internet se pueden encontrar miles de librerias y millones de ejemplos para hacer casi cualquier cosa imaginable. No obstante tanto las librerias como los ejemplos son inutiles por si solos. Necesitamos un compilador que sea capaz de crear ejecutables apartir del codigo que nosotros escribamos. Asi que primero de todo buscaremos el compilador que más se adapte a nuestras necesidades y si este va acompañado de un entorno de desarrollo agradable mucho mejor.

Asi pues, en este articulo en comentaré algunos de loscompiladores y entornos de desarrollo para C# que podemos encontar en la red. Y puesto que seguramente el presupuesto de la mayoria tiende a ser limitado prestaré especial atención a las aplicaciones gratuitas. Si en un futuro le cojeis el gusto a esto del C# es cosa vuestra en que os gastais el dinero.

Visual Studio Express 2008
http://www.microsoft.com/Express/

La primera de las alternativas, y la más utilizada en entornos windows, ya que no dispone de versiones para otros sistemas, es el Visual Studio de Microsoft.

Sus versiones de pago las podemos adquirir desde unos modicos 275€ en Europa (en USA es más barato) pero para empezar podemos utilizar la versión gratuita de la misma denominada Visual Studio Express 2008.

Evidentemente esta versión tiene muchas menos funciones que su hermano mayor, pero nos servirá para hacer infinidad de proyectos en C# tanto simples como complejos.

El sistema nos proveerá de un entorno de desarrollo amigable y totalmente configurable, con muchas opciones que nos permetirán desde editar y compilar nuestros programas hasta editar los recursos que queramos añadir a nuestros proyectos, tales como tablas de lenguaje, iconos y formularios.

Otra de las funcionalidades de su entrorno de desarrollo que nos facilitará mucho la programación de aplicaciones es su sistema de depuración, que nos permitirá la ejecución de nuestros programas paso a paso e incluir puntos de interrupción diversos. además de poder analizar el contenido de las variables a medida que ejecutamos el programa.

Entorno de desarrollo de Visual C# Express 2008

Como contrapartida a todas las ventajas que nos ofrece el hecho de que sea gratuitoalgunas de las funciones de sus hermanos mayores no se encuentran en esta versión. Estas son algunas de las diferencias más notables entre la versión Express ylas versiones comerciales del Visual Studio:

- Con la versión Express solo es posible crear soluciones con un solo proyecto, es decir, no podremos crear una libreria y a la vez, en la misma solución, la aplicación que la utilice por lo que la depuración de librerias es algo más compleja aunque se puede solventar con relativa facilidad.

- Solo podemos utilizar un lenguaje por proyecto (C#, VisualBasic, C++, J#). En la versión express los entornos de desarrollo para cada uno de los lenguajes están separados y de hecho son distintas aplicaciones mientras que en las versiones estandard y profesional se pueden crear aplicaciones con distintos lenguajes desde el mismo entorno e incluso mezclar codigo de distintos lenguajes en un mismo proyecto.

- En las versiones comerciales se pueden crear aplicaciones para distintos dispositivos, como PDAs y telefonos móviles con windows CE mientras que que en la versión expresssolo se pueden compilar aplicaciones para Windows, aunque pueden crearse aplicaciones para sistemas tanto de 32 como de 64 bits.

Si quereis una listade las caracteristicas (en inglés) de cada versión podeis visitar este enlace.

Esta versión de Visual Studio puede descargarse de forma totalmente gratuita desde su web. Allí encontraremos distintas versiones del Visual Studio Express según el lenguaje que deseemos utilizar. Aunque también encontraremos una imagen de CD-ROM desde la que podremos instalar todas las versiones del entorno de desarrollo. Personalmente recomiendo esta última si teneis espacio ya que la instalación es mucho más rápida.

También es recomendable que os descargeis de esa misma web el msdn express library, ya que es una completa guia de referencia de todas las funciones y clases del Visual Studio. De hecho os lo recomiendo utiliceis o no el visual studio ya que encontrareis mucha información interesante sobre la plataforma .Net y multitud de ejemplos.

La instalación tanto del Visual Studio Express como del msdn express library es bastante simple.Simplemente ejecutar, seleccionar la versión que se desea instalar y aceptar todas las opciones por defecto.

Una vez completada la instalación tendreis un completo entorno de desarrollo que os permitirá escribir aplicaciones en C# de forma muy simple e intuitiva. Sin necesidad de aprender cientos de comandos.

Finalmente os contaré que si quereis obtener alguna de las versiones de Visual Studio comerciales descargarse previamente y registrar la versión Express sirve para obtener un importante descuento en las actualizaciones ya que puede adquirirse un upgrade con deescuentos que van de entre los 100€ hasta los 250# según la versión que deseeis adquirir como se muestra aqui.

SharpDevelop
http://www.icsharpcode.net/OpenSource/SD/

SharpDevelop es otro entorno de desarrollo para C# que se encuentra disponible exclusivamente para entornos windows y se ofrece de forma gratuita  en esta web bajo una licencia de codigo abierto.

El entorno tiene todo lo necesario para crear aplicaciones completas con C#,admitiendo además, código en otros lenguajes como Visual Basic, BOO, F# y ILAsm.

Entorno de desarrollo de SharpDevelop

SharpDevelop nos permitirá editar código con facilidad ya que dispone, al igual que el entorno de Microsoft, de una función que nos autocompleta las funciones y nos muestra las diversas opciones de cada una de ellas. También nos permite editar formularios rapidemante y de  forma visual.

También tiene un completo entorno de depuración donde podremos ejecutar los programas paso a paso, a la vez que podemos asignar puntos de ruptura en el codigo y analizar los valores de las variables mientras este se está ejecutando.

Otra de las ventajas que nos ofrece SharpDevelop es que sus archivos de proyecto son compatibles con visual studio, aunque hay que tener cuidado con las versiones que utilizamos, ya que la versión 2.2 del SharpDevelop solo es compatible con el VisualStudio 2005, y si lo abrimos con el VS2008 nos transformará el archivo a esa versión dejandolo inutilizado para volver a utilizarlo con SharpDevelop 2.2.

Mono

http://www.mono-project.com/

Como contrapartida a los productos de Microsoft tenemos el Proyecto Mono. En si mismo, el proyecto Mono es un compilador y un conjunto de librerias que cumplen con el estandard ECMA-335 que define el funcionamiento del Lenguage Común (CLI),el corazon de la plataforma .Net, y con el ECMA-354 que define el lenguaje c#.

Inicialmente creado por Novell y con ayuda de la propia Microsoft pretende llevar la plataforma .Net al resto de sistemas operativos. Dispone de versiones para Linux, OSX, BSD e incluso para la plataforma Windows. Es compatible con las librerias ADO.NET, ASP.NET y Windows.Forms, por lo que, en teoria, es posible compilar casi todo el codigo escrito en Visual Studio sin modificarlo, aunque tendremos que crear un nuevo archivo de proyecto ya que Mono no soporta los archivos de proyecto del Visual Studio.

Gracias a la compatibilidad con el estandard del CLI, Mono nos permitirá hacer aquello que muchos programadores han soñado desde siempre; crear programas que funcionen en cualquier sistema sin necesidad de  recompilar, ya que el mismo ejecutable funcionará en cualquier sistema.

Da igual que el ejecutable lo hayamos compilado en Visual Studio o en Mono, nuestras aplicaciones funcionarán en cualquier sistema que tenga instalado Mono o el NET Framework. Aunque evidentemente si hemos utilizado una libreria que no esté instalada en el sistema, si hacemos referencia a recursos propios del sistema mediante PInvokes o utilizamos código no gestionado por la maquina virtual (unmanaged code), podemos tener algún que otro problema a la hora de cambiar de plataforma.

En principio, Mono no dispone de un entorno de desarrollo propio, tan solo es un compilador y una serie de libreias, por lo que deberemos acudir a entornos de desarrollo independientes si queremos hacernos la vida algo más facil. En caso contrario deberemos pelearnos con la linea de comandos.

MonoDevelop

http://monodevelop.com/

Si bien he dicho que Mono no dispone de un entorno de desarrollo propio, esto no es del todo cierto. Los ceradores del proyecto Mono ya pensaron en ello y crearon MonoDevelop.

MonoDevelop es un proyecto separado del proyecto Mono, pero muy unido a este. Es un entorno de desarrollo bastante completo, muy parecido al SharpDevelop y que solo funciona en entornos Unix/Linux, entre los que incluyo tambien al Mac OSX (Ver nota de ampliacióm más abajo). Permite la creación de proyectos diversos, ya sean simples o complejos, incluye plantillas y permite compilar diversos lenguajes, C#, C++, Visual Basic y ILasm.

Entorno de desarrollo de MonoDevelop

Al igual que Visual Studio o SharpDevelop, dispone de una función de autocompletado que nos será util a la hora de escribir el codigo, aunque no dispone de funciones de depuración como la de establecer puntos de ruptura o ejecutar paso a paso, por lo que en algunos casos encontrar un fallo especifico puede ser cosa de pesadilla.

Dispone de un diseñador de formularios para la libreria GTK# si bien no permite crear formularios con la libreria Windows.Forms.

La versión que prové para Ubuntu me dio algún que otro problema al instalar, debido principalmente a mi inexperiencia en sistemas Linux,  tambien tuve problemas a la hora de instalar alguna libreria externa, que por otro lado es simple una vez has descubierto como hacerlo.

AMPLIACIÓN (15-Ago-2009): Al parecer ya ha salido una versión de MonoDevelop para Windows que puede descargarse desde la página web indicada. Todavia no la he provado, pero me aseguran que funciona a pesar de que en la web indican que puede ser inestable.

(Gracias a Writkas2 por su comentario)

Eclipse y Emonic

http://www.eclipse.org/
http://emonic.sourceforge.net/

Finalmente solo queda presentar al entorno de desarrollo Eclipse y a su modulo para programar aplicaciones con mono Emonic.

Eclipse es un entorno de desarrollo ampliamente utilizado, multiplataforma, de codigo libre, y escrito en Java, y que tiene la capacidad de ampliar sus funcionalidades mediante modulos. Su facilidad para adaptarse a distintos compiladores lo hace ideal para programar practicamente para cualquier plataforma y lenguaje.

Su instalación es algo larga ya que primero de todo debemos disponer de la maquina virtual java para que funcione el entorno de desarrollo. Luego debemos instalar la aplicación Eclipse, lo que no comporta mayor dificultad. En la web de eclipse encontrareis diversas versiones con distintas funcionalidades. Os recomiendo descargar la versión para C++. A continuación, si no lo tenemos instalado, instalaremos Mono. Y finalmente actualizaremos el entorno eclipse desde los servidores que se nos indican en la web de emonic. una vez actualizado reiniciaremos el entorno de desarrollo para que se cargue la actualización y ya podremos crear nuestras aplicaciones .Net, al menos en teoria.

Una vez instalado el modulo la verdad es que la creación de aplicaciones en C# no es nada intuitiva. Para crear un proyecto y añadir una clase en C# hay que acceder a opciones no muy faciles de encontrar a primera vista. Hay que leerse bien las intrucciones de la web.

Entorno de desarrollo de Eclipse para .Net con Emonic

La verdad es que despues de trastearlo un buen rato no he conseguido compilar un simple programa en C#. Posiblemente falle algo en la configuración, pero como la información de la web es algo escasa no he podido averiguar donde está el problema asi que al final lo he dejado.

En teoria, si funcionara todo bien el entorno dispone de la función de autocompletar los nombres de las funciones y compilar las aplicaciones con mono a través de Nant, que es un gestor de proyectos parecido al make del C/C++. El Nant hay que descargarlo también de su web (Otro dia hablaré de el).
El que funcione sobre java no es que le de una velocidad espectacular, en ocasiones los menús se me demoraban un par de segundos en aparecer, no abstante es funcional, al menos a nivel de entorno, porque lo que es el tema de la compilación y gestión de proyectos en C# deja bastante que desear. Las aplicaciones en C++ las maneja bastante mejor.

Al igual que el MonoDevelop tampoco dispone de funciones de depuración como establecer puntos de ruptura o ejecutar paso a paso. Por lo que tendiamos los mismos problemas a la hora de depurar que con el anterior.

Tampoco nos va a permitir diseñar formularios, por lo que dicha tarea deberá hacerse mediante código.

Para resumir, aunque hubiera logrado hacerlo funcionar no es la mejor de las opciones. En linux me ha sido imposible hacer nada util con el eclipse. Talvez otro dia lo prueve sobre Windows a ver si hay más suerte. Aunque dudo mucho que trabaje con el, al menos no para programar en C#.

Leave a Comment

Deja un comentario Cancelar respuesta

7 Comments to “Programación en C# – Compiladores y entornos de desarrollo”

Monodevelop ya funciona en Windows, lo he echo.

Responder

Interesante el tema, aunque es importante hacer algunas aclaraciones:

- Para empezar, Sharpdevelop también sirve para programar y compilar sobre Mono. Todo es cuestión de configuración. A quién le interese, puede visitar esta web donde explican como hacerlo: http://www.pedrov.info/sharpdevelopmono.html.

- Aunque Monodevelop no posee un diseñador para WindowsForms, si permite programar y compilar aplicaciones con este tipo de ventanas.

- Visual C# es un entorno propietario y la versión express solo sirve para hacer pequeños ensayos de programación en .NET, sobre todo en las universidades. Pero, si se trata de trabajos profesionales es necesario pagar una licencia de uso.

- También existe dotGNU.

Responder

Bien existen todos estos ide de desarrollo sin embargo para linux solo el mono es el unico por ahora , yo que soy yn minimalista nome gustan pero para nada esos nombres tan feos que tienen los programas para linux, mandragora , kubuntu,apache,mapurite,mono,gambas… que es eso , es como si no ubiese respeto por los usuarios por parte de los señores libres, hace unos dias trate de bajar moonlight , un plugin para instalar silverlight en linux de manera tal que pudiese crear aplicaciones basadas en xml y montarlas en linux para el proyecto canaima aqui en venezuela , donde el gobierno exige que para graduarse en la mision sucre hay que hacer un proyecto libre , con la metodologia que ellos dicen , orientado al software libre que ellos dicen y libre como cuba y corea del norte jejejeje , bueno y entonces la empresa libre que es novell que produce el plugin cobra por la descarga , cuando microsoft da gratis para nosotros los estudiantes el visual expresas , para que aprendamos y desarrollemos .,aemasadobe y microsoft dan gratis silverlight y flash , hay que ver que este mundo si hay libres de verdad , por que no leexigen a los politicos utilizar autos bielorrusos e iranies , , la alcaldia de mi pueblo esta llena de hummers y hasta ferraris , por eso ya no voto mas por mr ch.

Responder

    Estas seguro que MS y Adobe te dan sus aplicaciones gratis?? te las ofrecen gratis para que en el futuro seas un profesional que dependa de su tecnologia y en ese momento pases por caja

    Responder

Excelente documento, donde habrá información de como instalar los plugins de C# para eclipse.

Responder

Bueno, a mi me fué de utilidad el SharpDevelop, se les agradece que hayan compartido esta información. Un saludo.

Responder

Excelente el trabajo, me sirvio bastante, gracias

Responder