Formas de desarrollar una aplicación en C#

|

Tenia tiempo que no posteba un tema de tipo técnico y cuando tenia el tiempo no sabía que postear, es por esa razón que se me ocurre explorar otras plataformas de desarrollo, como .NET y por supuesto usando el caballito de batalla de C#, las razones por la que he decidido explorar esta plataforma me las reservo, así que para fines educativos en este blog me limitare a hablar de las diversas formas en las que se pueden crear aplicaciones en C#, obviamente la mejor herramienta a utilizar dependerá del contexto del problema (No querrás hacer una clase muy pequeñita en un Visual studio 2008, cuando lo puedes hacer en un editor de texto sencillo).

Objetivos

  • Eliminar la falsa creencia que tienen algunos que para desarrollar sus aplicaciones sobre .NET deben comprar una licencia de Visual Studio.
  • Mostrar algunas herramientas para desarrollar en .NET usando programas libres u OpenSource descargables.
  • Ampliar el panorama para poder desarrollar aplicaciones en C#

Introducción

El kit de desarrollo para NET Framework 3.5 (SDK) proporciona numerosos compiladores, utilidades de línea de comandos, white papers, ejemplos de código, bibliotecas de clases, y una completa documentación del sistema. Este puede ser descargado de [1]. NOTA:Si optas por instalar alguna versión del Visual Studio evitaras instalar el SDK de forma manual.

Desarrollo

Desarrollando la aplicación haciendo uso del CSC (Desde ambiente Win)

Como se habrán dado cuenta, si tiene un IDE no es necesario andar ejecutando código desde la linea de comandos de windows, pero piense las razones por las que ha compilado un .java desde esa misma consola, entonces ¿Hay razón de usarlo con un .cs? ¿Si o no?.

Si ha decido hacerlo de esta manera, no hay que olvidar que el compilador puede recibir parámetros además del nombre de la clase, como por ejemplo:


/out Esta opción es usada para especificar el nombre del assembly a crear. Aunque por default el nombre es el mismo que el archivo .cs
/target:exe Puede omitirse pues esta por default.
/target:library Crea un archivo DLL(Biblioteca de enlaces dinámicos).
/target:module Crea un Modulo.
/target:winexe Para aplicaciones basadas en interfaz de usuario, impide que se muestre una consola durante la ejecución
/r:namespace1 Sustituir namespace1 por el/los namespace que se desea referenciar

Por ejemplo C:\>csc /target:exe fuente.cs
C:\>csc /r:System.Windows.Forms.dll *.cs


Desarrollando la aplicación con el TextPad

Obviamente no solo se puede utilizar para C#, pero bueno se puede descargar desde [2]. Para poder sentirse realmente cómodo con este programa hay que configurar la impresión estética para el lenguaje a utilizar y para eso hay que indicarle que escoja csharp.syn(Si se desea trabajar con C#) de la lista que tiene, luego hay que especificar de acuerdo a nuestras necesidades que parámetros queremos que le pase al compilador cada vez que compilemos el código e indicarle la ruta para llegar al compilador. Si con esto aún no esta conforme diríjase a [3] para bajar algún plug-ins que mejor le acomode (Wow, no sabia que tenia un autocompletador de código para Java!!).

Desarrollando la aplicación con SharpDevelop

Descargable desde [5], el cual es un IDE OpenSource para los lenguajes como C#, VB y Boo (Microsoft y Mono).

  • Compatible con .Net framework SDK 3.5
  • Diseño muy parecido a los IDE's Microsoft
  • Completamente integrable con NUnit y NAnt (herramientas para el testeo de software)
  • Utilidades para diseñar la BD
  • Diseñador Visual de formularios
  • Utilidades para convertir código de C# a VB
  • Útil para plataformas cruzadas


Notepad++_screen

Desarrollando la aplicación usando MonoDevelop

Se ha echo un fork para SharpDevelop llamado MonoDevelop el cual es un entorno de desarrollo integrado libre y gratuito, diseñado primordialmente para C# y otros lenguajes .NET como Nemerle, Boo, y Java (via IKVM.NET), basicamente es mas enfocado para el desarrollador en Mono, el cual es descargable desde [7].

MonoDev

Desarrollando la aplicación con el Notepad++

Para descargarlo checa este link [4], al parecer no hay mucho que decir de este, todo esta en la página web y se define como: "un editor gratuito de código fuente, que soporta varios lenguajes de programación y se ejecuta en MS Windows... basado en el componente de edición Scintilla, escrito en C++ utilizando directamente la API de win32 y STL... se distribuye bajo los términos de GPL de GNU."

Notepad++_screen

Desarrollando la aplicación con C# 2005/2008 Express edition

Desde el verano de 2004, Microsoft introdujo una nueva línea de IDE's "Express", los cuales están descargables desde aquí[6]. Estos son completamente gratis debido a que es apoyado y mantenido por Microsof (¿Alguna vez dije que los estudiantes no tenemos dinero?)

Características destacadas:

  • Soporte para Windows Presentation Foundation (WPF) y XAML
  • IntelliSense
  • Capacidad para programar Xbox 360 y juegos de PC, utilizando Microsoft XNA Game Studio

Desarrollando la aplicación con Visual Studio 2005/2008

La razón por la cual deje esta opción a lo ultimo es muy clara, pues es el IDE que tiene un costo (Un buen costo diría yo) y al cual varios aspiran a usar. Si el lector ha llegado hasta esta parte sabrá entonces cuando sacar la artillería pesada para realizar ese ambicioso proyecto de SW posiblemente a nivel empresarial.

Conclusión
Espero haber cumplido los objetivos que me plantee al principio.

Bibliografía

[1] http://msdn.microsoft.com/es-es/netframework/default.aspx
[2] http://www.textpad.com
[3] http://www.textpad.com/add-ons/
[4] http://notepad-plus.sourceforge.net/es/site.htm
[5] http://www.icsharpcode.net/OpenSource/SD/
[6] http://www.microsoft.com/express/
[7] http://www.monodevelop.com/Main_Page

2 comentarios:

ChilliCoder dijo...

Excelente post y me parece que cumpliste cabalmente con los objetivos.

Efectivamente, hay más de una manera de despellejar un gato y para tirar código C# hay más :D

Saludos,

Cyberprimo dijo...

un buen tuto brother por cierto lo de acompletar codigo de java en texpad esa no me la sabia =)