viernes, 6 de junio de 2014

Eventos en C# - Parte 5: Ejemplos de Aplicaciones con Eventos

Índice

0. Introducción
1. Metrónomo
2. Caldera
3. Eventos en Aplicacionese WinForms (Edición Vídeo-tutorial)
4. Conclusiones
5. Glosario
6. Literatura & Enlaces

0. Introducción

Este último artículo de la serie de eventos en C# estará dedicado a desarrollar tres ejemplos: el primero consistirá en ampliar el ejemplo de metrónomo de la sección 2.2.1 del primer artículo introductorio a eventos; el segundo es una caldera (máquina) que notifica a través de dos diferentes medios (registro de archivo y salida estándar) el momento en que se requiere un mantenimiento de la maquinaria interna de la caldera, el último es la versión en formato vídeo-tutorial del ejemplo de eventos en aplicaciones con interfaz gráfica de la parte 4 (Eventos en Aplicaciones WinForms).

1. Metrónomo

En este primer ejemplo vamos a mejorar o agregar nuevas definiciones: precisamente la clase contenedora de datos de los eventos de las acciones del metrónomo. (En la Figura 1 se muestra el diagrama UML con el modelo de clases.)
Diagrama UML con el modelo de Metronomo
Figura 1. Diagrama UML con el modelo de Metronomo.
Archivo de código fuente Metronomo.cs [enlace alternativo]:
En las líneas 7-22 se define la clase HoraTicEventArgs que corresopnde con la clase contenedora de los datos de evento tic (cada vez que el metrónomo hace una marca o registro).


En la clase Metronomo (líneas 24-54) se definen los siguientes artefactos:
  • TicEventHandler: es el delegado personalizado encargado de manejar los métodos que responden al evento de tic.
  • Tic: evento de marca o tic del metrónomo.
  • Iniciar: inicia el funcionamiento del metrónomo.
La clase Subscriptor es una clase cliente que registra el método para atender las marcas o tics del metrónomo: Accion.

Compilación:


  1. csc /target:exe Metronomo.cs

Ejecución assembly:


  1. .\Metronomo.exe

Resultado:
Prueba de ejecución de aplicación Metronomo
Figura 2. Prueba de ejecución de aplicación Metronomo.

2. Caldera

En este segundo ejemplo vamos a construir una aplicación basada en el siguiente modelo (diagrama UML).
Modelo del mundo del problema aplicación Caldera
Figura 3. Modelo del mundo del problema aplicación Caldera.
Archivo de código fuente Caldera.cs [enlace alternativo]:
En las líneas 10-39 se declara la clase Caldera; la cual no hace uso de construcciones intermedias o avanzadas de C#. En la clase ControladorCaldera (líneas 44-79) se crean las siguientes definiciones:
  1. Delegado RegistroCalderaEventHandler: con tipo de retorno void y un parámetro string.
  2. Evento RegistroCaldera: evento de tipo RegistroCalderaEventHandler.
  3. Método ProcesoRegistro: Implementación de control del estado de la caldera.
  4. OnEventoRegistro: Se activa cuando se ha superado el umbral de mantenimiento de la caldera se alcanza.
En las líneas 84-105 se define la clase RegistroArchivo que es la encargada de crear un registro en un archivo de texto plano de los mensajes de estado de la caldera. Más adelante, precisamente en las líneas 107-130, se crea la aplicación cliente para registrar los métodos al manejador de eventos (event handler) en la instancia eventoControladorCaldera (ControladorCaldera).

Compilación:

  1. csc /target.exe Caldera.cs

Ejecución assembly:

  1. .\Caldera.exe

Resultado en línea de comandos:
Prueba de ejecución de aplicación Caldera
Figura 4. Prueba de ejecución de aplicación Caldera.
Resultado en archivo de texto (registrocaldera.txt):

Información de Registro:
Temperatura: 100
Presión: 12
Mensaje: Se requiere mantenimiento

3. Eventos en Aplicaciones WinForms (Edición Vídeo-tutorial)

Este tercer ejemplo presento la edición en vídeo-tutorial del proyecto WinForms presentado en la parte 4 de la serie de Eventos en C#: Eventos en Aplicaciones WinForms.

Para el vídeo tutorial utilizamos la clase Calculadora:

Archivo de código fuente Calculadora.cs [enlace alternativo]:
Vídeo-tutorial:

4. Conclusiones

El desarrollo de estos tres ejemplos (i.e., Metrónomo, Caldera, y Eventos en Aplicaciones WinForms) tuvo como propósito afianzar el conocimiento y práctica de eventos en C#. Con esta quinta parte cerramos esta serie de artículos, en donde hemos aprendido los conceptos esenciales de eventos para así poder hacer frente a conceptos relacionados del mismo nivel o más avanzado.

5. Glosario

  • Aplicación
  • Ejecución
  • Event handler
  • Evento
  • Metrónomo
  • Vídeo-tutorial
  • WinForms

6. Literatura & Enlaces

[1]: C# 5.0 in a Nutshell by Joseph Albahari and Ben Albahari. Copyright 2012 Joseph Albahari and Ben Albahari, 978-1-449-32010-2.

J

1 comentario:

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