Jaki jest właściwy sposób budowania aplikacji Winform z wieloma „ekranami”

11

Jaki jest właściwy sposób budowania aplikacji Winform, która ma wiele „ekranów”? Na przykład próbuję napisać mały program do tworzenia kopii zapasowych (głównie na chichoty) i zrzuciłem formanty i kontenery na formularz.

Korzystam z paneli i pól grup, aby oddzielić różne ekrany (np .: Używam panelu do przechowywania wszystkich elementów sterujących w oknie „Ustawienia”, a innego panelu do wyświetlania wszystkich skonfigurowanych bieżących kopii zapasowych ). Mój plik form.cs uformował balon w ogromną ilość kodu i mam wrażenie, że robię coś złego. Prawie nic nie mogę znaleźć w pliku i jestem gotowy, aby zacząć od nowa. Ten projekt miał na celu poszerzenie mojej wiedzy na temat C # i .NET, więc rozpoczęcie nowego projektu nie jest wielkim problemem.

CurtisHx
źródło

Odpowiedzi:

10

Istnieje wiele sposobów kontrolowania złożoności interfejsu użytkownika.

  • Jeśli masz wiele formularzy, możesz wybrać wzorzec projektowy, który zarządza przejściami: na przykład Kontroler aplikacji lub bliżej metalu: Stan .
  • Możesz komponować grupy kontrolek w pojedyncze kontrolki. W winforms używasz Kontroli użytkownika .
  • Jeśli złożoność wynika z ilości kodu w formularzu, w przeciwieństwie do liczby elementów sterujących w formularzu, możesz po prostu lepiej obudować kod w obiekty przy użyciu standardowych technik programowania obiektowego. Zrozumienie zasad SOLID to dobry początek.
  • W przeciwnym razie istnieją wzorce do pracy z interfejsami użytkownika. Między innymi (wyraźny podział problemów) ułatwiają organizację kodu. Niektóre z nich to MVC , MVP , MVVM

Z twojego opisu użyłbym niestandardowych kontrolek użytkownika, aby zastąpić to, czego używasz na razie paneli. Następnie po prostu umieść te elementy sterujące użytkownika w formularzu (formularzach), w którym były twoje panele.

Steven Evers
źródło
4

W Winforms każdy formularz powinien obsługiwać własną pracę. Powinieneś mieć formularz ustawień, inny pokazujący bieżące kopie zapasowe itp.

Jeśli chcesz trzymać się wielu grup w jednym formularzu, możesz utworzyć Kontrolę użytkownika , jak powiedział SnOrfus , aby oddzielić kod. Jeśli nadal masz mnóstwo kodu w niektórych klasach, możesz mieć klasy częściowe, aby oddzielić różne kody do różnych plików.

Zajęcia częściowe mogą wydawać się dobrą alternatywą, ale polecam to tylko dlatego, że budujesz projekt hobby. W przypadku większego lub bardziej złożonego projektu powinieneś użyć wzorców, aby przekazać właściwą pracę odpowiednim obiektom, możesz także przełączyć się na nową technologię, taką jak WPF, w której łatwiej jest używać wzorców, takich jak MVVM .

Valter Costa
źródło