Todo lo que entra desde fuera
El inventario completo de vías por las que algo llega a tu aplicación sin que el usuario esté en ella, y la comprobación que todas comparten.
Las siete
La sexta es la olvidada: tu aplicación acepta argumentos de línea de órdenes aunque nadie lo haya diseñado, porque el sistema se los pasa. Si tu código busca una ruta entre ellos, cualquiera puede pasarle cualquier cosa.
La comprobación común
Las siete llegan de fuera y ninguna ha pasado por tu interfaz, así que se validan igual:
La cuarta es la que unifica el criterio: una entrada externa puede llevar al usuario a un sitio y ahí él decide. No puede decidir por él.
El caso de la aplicación cerrada
Cinco de las siete pueden llegar con la aplicación sin arrancar, y eso obliga a un orden concreto:
- Guardar lo que llegó antes de hacer nada. El argumento o el enlace está disponible al inicio del arranque, y el resto del arranque —migraciones, sesión— puede tardar.
- Mostrar la ventana pronto, con lo que se pueda, en vez de esperar a todo. Nivel 43.3.
- Y procesarlo cuando la aplicación esté lista, no antes: intentar abrir un proyecto antes de que la base esté migrada produce fallos que parecen aleatorios.
El orden correcto es: recoger, arrancar, y entonces actuar.
Detectar cuáles tienes
Muchas aplicaciones tienen vías de entrada que nadie diseñó, y merece comprobarlo:
- Mira si tu código lee argumentos de línea de órdenes en algún sitio, aunque sea para una opción de depuración. Si los lee, es una vía.
- Comprueba si tu instalador declara asociaciones de fichero que alguien puso hace tiempo.
- Y busca si hay algún esquema declarado en la configuración de empaquetado.
Lo que está declarado y no manejado es lo peor de los dos mundos: el sistema entrega la entrada y tu aplicación no sabe qué hacer con ella.