2010-12-14 47 views
6

我正在尋找一種設計C#應用程序的方法。我理解3層模型,但是idk如何在一個好的C#設計中應用這個模型。分離Windows窗體和類C#

我已經看過一些asp.net的MVC教程,但我在尋找一個窗口形式的基礎教程。

有任何書籍或網站,學習的方式來實現這一點?

+1

我在找更傳統的東西。 – Nick 2010-12-14 03:24:11

回答

1

您應該知道的第一件事是設計模式並非一成不變,因此沒有「實現設計模式的方式」這樣的事情。

如果你只是意味着3層模型,那麼MVC是一個不錯的選擇,因爲它清楚地將每層與另一層分開,對於Windows窗體開發,請查找關於實體框架(或僅LINQ)的教程,應用程序的邏輯變成你的模型層,所有的表單,用於呈現數據的類,都是你的視圖,當然,用戶控制器也是......你的控制器。

我建議你看看DoFactory網站,它有很多設計模式的很好的報道。

另外我應該指出,你可能在doFactory中找不到實現,這只是一堆設計模式的參考。 JIC。

+0

謝謝佩德羅。沒有一種方法可以實施。我正在尋找一些測試和直接的方式來做到這一點。生病檢查dofactory。 thx再次。 – Nick 2010-12-14 03:40:38

+1

我可能是錯的,但我覺得你的答案需要編輯堂妹,'是處理application'的邏輯是不是'view',其'controller'的所有類和形式是'views' – FosterZ 2010-12-14 04:23:01

+0

UUufff! !謝謝你的更正:) – PedroC88 2010-12-14 13:16:42

0

嗨,如果你使用的是贏形式,我建議你去MVP模式。還有一個模式MVVM(主要用於WPF和Silverlight),但我不知道它是否適用於Win Forms。

3

我認爲traditional MVC是WinForms的矯枉過正。表單是視圖,很少需要單獨的控制器。該模型只是一個類(通常實現INotifyPropertyChanged)。您可以使用數據綁定來通知視圖模型已更改。

重要的一點是最小化按鈕下的代碼。如果是表單代碼,它應該是(a)是UI特定的還是(b)將調用委託給模型。任何業務邏輯都應位於模型或模型所依賴的類中。

避免使模型God Object。它可以在內部委託給其他類。

編輯:您可能需要考慮將綁定數據移出到模型擁有的單獨對象中。我會打電話給這個Presentation Model,但我不想在福勒的嘴裏說話。

EDIT2:重要 - 模型必須有沒有知識的視圖NO UI代碼(如對話框)。