Información general sobre el modelo de aplicaciones de Visual Basic

Actualización: noviembre 2007

Visual Basic proporciona un modelo bien definido para controlar el comportamiento de aplicaciones de Windows Forms: el modelo de aplicaciones de Visual Basic. Este modelo incluye eventos para controlar el inicio de la aplicación y su cierre, así como eventos para detectar las excepciones no controladas. También proporciona compatibilidad para desarrollar aplicaciones de instancia única. El modelo de aplicaciones es extensible, por lo que los desarrolladores que necesitan un mayor control pueden personalizar sus métodos reemplazables.

Usos del modelo de aplicaciones

Una aplicación típica necesita realizar tareas cuando se inicia y se cierra. Por ejemplo, cuando se inicia, la aplicación puede mostrar una pantalla de inicio, realizar conexiones a bases de datos, cargar un estado guardado, etc. Cuando la aplicación se cierra, puede cerrar las conexiones a bases de datos, guardar el estado actual, etc. Además, la aplicación puede ejecutar el código específico cuando se cierra inesperadamente, como por ejemplo durante una excepción no controlada.

El modelo de aplicaciones de Visual Basic facilita la creación de aplicaciones de instancia única. Una aplicación de instancia única se diferencia de una aplicación normal en que sólo se puede ejecutar una instancia de la aplicación en un momento dado. Al intentar iniciar otra instancia de una aplicación de instancia única se notifica a la instancia original (por medio del evento StartupNextInstance) que se ha intentado iniciar otra instancia de la aplicación. La notificación incluye los argumentos de la línea de comandos de la instancia subsiguiente. Entonces se cierra la instancia subsiguiente de la aplicación antes de que se pueda producir ninguna inicialización.

Se inicia una aplicación de instancia única y comprueba si es la primera instancia o una posterior de la aplicación:

  • Si es la primera instancia, se inicia como de costumbre.

  • Cada intento posterior de iniciar la aplicación, mientras está en ejecución la primera instancia, produce un comportamiento muy diferente. El intento subsiguiente notifica a la primera instancia los argumentos de la línea de comandos y, a continuación, la cierra inmediatamente. La primera instancia controla el evento StartupNextInstance para determinar cuáles eran los argumentos de línea de comandos de la instancia subsiguiente y continúa ejecutándose.

    Este diagrama muestra cómo se señala una instancia subsiguiente a la primera instancia.

Controlando el evento StartupNextInstance puede controlar el comportamiento de su aplicación de instancia única. Por ejemplo, Microsoft Outlook se ejecuta normalmente como una aplicación de instancia única; cuando Outlook está en ejecución e intenta iniciar Outlook de nuevo, el foco pasa a la instancia original pero no se abre otra instancia.

Eventos del modelo de aplicaciones

En el modelo de aplicación se encuentran los eventos siguientes:

  • Inicio de la aplicación. La aplicación provoca el evento Startup cuando se inicia. Controlando este evento, puede agregar código que inicialice la aplicación antes de que se cargue el formulario principal. El evento Startup también sirve para cancelar la ejecución de la aplicación durante la fase del proceso de inicio, si así lo desea.

    Puede configurar la aplicación para mostrar una pantalla de inicio mientras se ejecuta el código de inicio de la aplicación. De manera predeterminada, el modelo de aplicaciones suprime la pantalla de inicio cuando se utilizan los argumentos de línea de comandos /nosplash o -nosplash.

  • Aplicaciones de instancia única. El evento StartupNextInstance se produce cuando se inicia una instancia posterior de una aplicación de instancia única. El evento pasa los argumentos de la línea de comandos de la instancia subsiguiente.

  • Excepciones no controladas. Si la aplicación encuentra una excepción no controlada, provoca el evento UnhandledException. Su controlador para ese evento puede examinar la excepción y determinar si se debe continuar la ejecución.

    El evento UnhandledException no se provoca en determinadas circunstancias. Para obtener más información, vea My.Application.UnhandledException (Evento).

  • Cambios en la conectividad de red. Si cambia la disponibilidad de red del equipo, la aplicación provoca el evento NetworkAvailabilityChanged.

    El evento NetworkAvailabilityChanged no se provoca en determinadas circunstancias. Para obtener más información, vea My.Application.NetworkAvailabilityChanged (Evento).

  • Cierre de la aplicación. La aplicación proporciona el evento Shutdown para indicar cuándo está a punto de cerrarse. En ese controlador de eventos, puede asegurarse de que se llevan a cabo las operaciones que debe realizar su aplicación (cerrar y guardar, por ejemplo). Puede configurar su aplicación para que se cierre cuando se cierra el formulario principal, o que sólo se cierre cuando se hayan cerrado todos los formularios.

Disponibilidad

De manera predeterminada, el modelo de aplicaciones de Visual Basic está disponible para los proyectos de formularios Windows Forms. Si configura la aplicación para que utilice un objeto de inicio distinto, o para que inicie el código de la aplicación con un procedimiento Sub Main personalizado, puede que sea necesario que ese objeto o clase proporcione una implementación de la base WindowsFormsApplicationBase para utilizar el modelo de aplicaciones. Para obtener información sobre cómo cambiar el objeto de inicio, vea Cómo: Cambiar el objeto inicial de una aplicación (Visual Basic).

Vea también

Conceptos

Ampliar el modelo de la aplicación de Visual Basic

Referencia

My.Application (Objeto)

My.Application.Startup (Evento)

My.Application.StartupNextInstance (Evento)

My.Application.UnhandledException (Evento)

My.Application.Shutdown (Evento)

My.Application.NetworkAvailabilityChanged (Evento)

WindowsFormsApplicationBase