Kod inicjujący w aplikacji WinForms - Program.cs lub MainForm?

Mam aplikację Windows Forms, która aktualnie ładuje bazę danych podczas uruchamiania. Przepływ jest taki:

Program.cs => Application.Run (nowy MainForm ()); => MainForm Constructor => Otwórz bazę danych

Więc w zasadzie MainForm zawiera wszystkie bity i elementy, które powodują uruchomienie aplikacji, podczas gdy Program.cs to tylko skrót. Obecnie nazwa ładowanej bazy danych jest zakodowana na stałe i chcę dodać funkcjonalność, aby określić nazwę bazy danych do załadowania za pomocą wiersza poleceń. Jednocześnie chcę dodać możliwość wykonywania niektórych testów jednostkowych lub nawet zastrzyków zależnych później, więc zastanawiam się, które podejście jest zalecane?

Zmień konstruktora MainForm, aby akceptował niektóre parametry. Następnie zmień Program.cs, aby przeczytać wiersz poleceń i zmienić połączenie naApplication.Run(new MainForm()); odpowiednioPozostaw Program.cs i podpis konstruktora nietknięte i sprawdź wiersz poleceń w konstruktorze MainForm

Pierwsza metoda wydaje się być czystsza, ponieważ pozwoliłaby np. Testerowi utworzyć MainForm z testową bazą danych, ale ponieważ zwykle nie jestem programistą WinForm, nie wiem, czy mogą wystąpić efekty uboczne braku domyślnego konstruktora w Główny formularz lub czy istnieje lepsze podejście?

questionAnswers(3)

yourAnswerToTheQuestion