sábado, 21 de septiembre de 2013

Receta C# No. 1-1: Creación de una Aplicación Consola desde la Línea de Comandos

Tabla de Contenido

0. Introducción
1. Problema
2. Solución
3. ¿Cómo funciona?
3.1 Archivos Response
4. Código Fuente C#
5. Uso
6. Conclusiones
7. Glosario
8. Referencias

0. Introducción

Debido a la diversidad de las formas disponibles con las que se puede interactuar con el lenguaje de programación, o precisamente, con el compilador de C#, se presenta la primera receta que consiste en dejar a un lado el uso de las interfaces gráficas [1] y pasar al modelo de línea de comandos (sólo texto).

1. Problema

Al programador se la ha solicitado crear una aplicación basada en la interfaz de línea de comandos [2], es decir que use la entrada estándar: el teclado, y la salida estándar: la pantalla para la creación de una aplicación tipo consola. Ésta última debe ser capaz de responder a las entradas de datos tipeados directamente de la entrada estándar, y visualizar resultados en la salida estándar por parte del usuario de la aplicación.

Desde la interfaz de línea de comandos podemos hacer uso del compilador C# para el ensamblado de clases de objetos, generación de librerías, documentación en formato XML, especificar el tipo de salida que deseemos: librería, módulo, ejecutable de Windows, etc. [3].

2. Solución

En términos generales, la solución consiste en la composición de un archivo de código fuente que posea un punto de entrada (entry point, en inglés) que dé lugar a la ejecución de la aplicación de consola: Main.

En C# el método anterior está sobrecargado de la siguiente manera:

public static void Main()
public static void Main(string[] args)
public static int Main()
public static int Main(string[] args)

El paso a seguir, consiste en la invocación del compilador de C# (csc.exe) y un conjunto especifico (o necesario) de parámetros, que compile a código intermedio (IL [4]) nuestra clase en código fuente: HolaMundo.cs.

Por ejemplo:

csc /target:exe HolaMundo.cs
Nota: Seguro a muchos programadores les resultará más fácil usar el IDE Visual Studio y crear una aplicación basada en consola; pero este ejercicio, el de usar la línea de comandos, nos permite crear aplicaciones sencillas para tareas específicas que no requieran de otras construcciones (por ejemplo, formulario Windows), o simplemente de la automatización de un proceso.

3. ¿Cómo Funciona?

Como se mencionó, el compilador de C# posee un conjunto de switches (o banderas) que alteran el proceso de compilación: el cómo debe parametrizarse la entrada y salida del archivo de código fuente; es también necesario tener en cuenta detalles como los valores o acciones por defecto de los switches. Por ejemplo, /target:exe puede ser omitido, debido a que por defecto el compilador crea una aplicación consola. Sin embargo, se aconseja ser explícito y claro en la parametrización siempre y cuando los scripts de construcción vayan a ser compartidos por otros programadores.

Por ejemplo:


Cuando se haya ejecutado este comando, el compilador generará un archivo llamado MiPrimerPrograma.exe (nombre del assembly especificado a partir del switch /out) a partir del listado de los archivos de código fuente: HolaMundo.cs, y Utilidades.cs.  En caso de que no se espefique ningún nombre para el assembly se tomará por defecto el nombre del primer archivo de código fuente enlistado, en este caso HolaMundo.cs, para generar un resultado así: HolaMundo.exe.

Por otro lado, el switch /main nos permite señalar la clase que posee el punto de entrada de aplicación. También que tener en cuenta que el nombre de la clase debe ser pasado con su nombre completamente calificado.

3.1 Archivos Response

Este tipo de archivos nos permite organizar el listado de parámetros requeridos por el compilador C#. Con este recurso, el programador puede reducir el número de tipeos equivocados, además que reducirá fatiga a la hora de ingresar datos desde la línea de comandos.

Ver: [3].

4. El Código C#

A continuación se presentan dos archivos de código fuente C# que contienen la implementación lógica (sólución al problema de arriba): Utilidades.cs, y HolaMundo.cs.

Archivo C# Utilidades.cs [enlace alternativo]:


Archivo C# HolaMundo.cs [enlace alternativo]:

Esta última clase es el código cliente que se encarga de hacer uso de la funcionalidad que expone hacia el exterior la clase Utilidades.cs a través de sus métodos: LeerCadena y EscribirCadena.

5. Uso

En esta última parte ya podemos crear nuestra aplicación HolaMundo.exe a partir del par de ficheros: Utilidades.cs y HolaMundo.cs. Desde la línea de comandos escribimos:

6. Conclusiones

En esta primera receta les he presentado la utilidad que presenta el compilador de C# para crear aplicaciones tipo consola sencillas (independiente de su presentación gráfica). 

7. Glosario

  • GUI
  • Interfaz de línea de comandos (CLI)

8. Referencias

[1]: Graphical user interface - Wikipedia, the free encyclopedia - http://en.wikipedia.org/wiki/Graphical_user_interface
[2]: Command-line interface - Wikipedia, the free encyclopedia - http://en.wikipedia.org/wiki/Command-line_interface
[3]: Working with the C# 2.0 Command Line Compiler - http://msdn.microsoft.com/en-us/library/ms379563(v=vs.80).aspx
[4]: Common Intermediate Language - Wikipedia, the free encyclopedia - http://en.wikipedia.org/wiki/Common_Intermediate_Language


O

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.