43

Jak utworzyć aplikację Windows z bogatym interfejsem użytkownika, na przykład Photo Shop.Poszukaj czystego samouczka WinForms MVC dla języka C#

Szukam czystego samouczka MVC dla WinForms z C# gdzieś. (Nie ASP.NET MVC.)

Będąc nowym na platformie Windows; większość samouczków MSDN i Internetu zasadniczo umieszcza wszystko w klasie Form. Dalsze Domyślne zdarzenia są obsługiwane wewnątrz formularza, zamiast wysyłania zdarzeń do kontrolki/modelu, co z kolei zmienia stan widoku.

A może preferowana metodologia dla aplikacji systemu Windows jest inna?

+4

Chodzi o to, że WinForms może nie jest to najlepszy zestaw narzędzi dla MVC, biorąc pod uwagę, że w Windows Forms, kontroler, widok i model naprawdę nie są rozdzielone. Myślę, że będziesz miał więcej szczęścia w WPF, który jest bardziej elastyczny w tym sensie. –

+3

Możesz zajrzeć tutaj, zanim wyjdą ptaki boo. http://stackoverflow.com/questions/2406/looking-for-a-mvc-sample-for-winforms –

+1

Czy można ponownie aktywować pytanie? Jesteśmy teraz w 2012 roku i szukam również dobrego i prostego przykładu WinForce MVC. –

Odpowiedz

2

Warto spojrzeć na model-View-ViewModel (jeśli jesteś zainteresowany/chętnie korzystasz w szczególności z WPF).

Został zmodyfikowany specjalnie do pracy z WPF i Silverlight, i korzysta z wiązania danych w celu sklejenia wszystkiego razem.

Istnieje wiele zasobów w sieci dla dowiedzieć się więcej, w tym John Gossman na introduction, a dobry article Josh Smith, który ma inne zasoby na jego blog dotyczącej MVVM.

+1

Artykuł Josh Smith jest naprawdę dobry. – s5804

-1

W przypadku aplikacji systemu Windows system operacyjny Windows nieumyślnie staje się częścią kontrolera.

Model może subskrybować różne zdarzenia/wiadomości (np. Kliknięcie myszą, przenoszenie, zmiana rozmiaru okna, kliknięcie przycisku ...). Po wykonaniu przetwarzania zmiany-aktualizacji widok jest aktualizowany poprzez operacje przerysowywania.

System operacyjny Windows działa tutaj jako kontroler, ponieważ wysyła zarówno komunikaty do modelu (np. Kliknięcie myszą), jak i do widoku (informując, że część okien jest brudna i wymaga przerysowania).

Oczywiście dla każdej komercyjnej aplikacji można zaimplementować własny model i struktury dokumentów i oddzielić je od odpowiednich obiektów WinForm.

W sieci .net nie jest to tak jasne, ponieważ istnieje tylko jeden plik zarówno dla części modelu, jak i widoku. W MFC było bardzo jasne - z klasą CDocument i odpowiadającą jej klasą CView.

Zamiast wzorca MVC, dla aplikacji systemu Windows pomaga zrozumieć architekturę przesyłania komunikatów systemu Windows i sposób obsługi tych komunikatów.

+0

Sugerujesz, że w większości przypadków WinFormy są wystarczające. Pod warunkiem, że przesyłanie wiadomości jest poprawne? – s5804

+0

Tak. Jednak pomyśl, jeśli masz przypadki, takie jak konieczność aktualizacji wielu formularzy itp. W takim przypadku może być sens, aby oddzielić model na inną klasę i można zaimplementować kontroler oraz koordynować między klasą modelu a obiektami formularza. – Sesh

+0

Nie zgadzam się z oświadczeniem: "W przypadku aplikacji Windows system operacyjny Windows przypadkowo staje się częścią kontrolera." Nadal można używać wzorców, nawet jeśli WinForm nie wymaga określonego wzorca (MVC/MVP/MVVM/itp.). Spójrz na łącza z balioune_ba i Refactored Paladin dla wzorów i frameworków. MVC może nie być najlepszym wzorcem dla WinForm, a WPF oferuje bardziej naturalny sposób implementacji wzorców MV *. – Ryan