¿Código de inicialización en una aplicación WinForms - Program.cs o MainForm?
Tengo una aplicación de Windows Forms que actualmente carga una base de datos en el inicio. El flujo es así:
Program.cs => Application.Run (new MainForm ()); => MainForm Constructor => Abrir base de datos
Básicamente, MainForm contiene todos los bits y piezas que hacen que la aplicación se ejecute, mientras que Program.cs es solo un código auxiliar. Actualmente, el nombre de la base de datos que se carga está codificado y quiero agregar funcionalidad para especificar el nombre de la base de datos que se va a cargar a través de la línea de comandos. Al mismo tiempo, quiero agregar la capacidad de realizar algunas Pruebas unitarias o incluso Inyección de dependencia más adelante, así que me pregunto qué enfoque se recomienda.
Cambie el constructor de MainForm para aceptar algunos parámetros. Luego cambie Program.cs para leer la línea de comandos y cambie la llamada aApplication.Run(new MainForm());
en consecuenciaDeje el programa.cs y la firma del constructor intactos y verifique la línea de comandos en el constructor de MainFormEl método uno parece ser más limpio, ya que permitiría que un corredor de prueba cree MainForm con una base de datos de prueba, pero como generalmente no soy un desarrollador de WinForms, no sé si podría haber efectos secundarios de no tener un constructor predeterminado ¿Forma principal o si hay un mejor enfoque?