我正在尋找一種設計C#應用程序的方法。我理解3層模型,但是idk如何在一個好的C#設計中應用這個模型。分離Windows窗體和類C#
我已經看過一些asp.net的MVC教程,但我在尋找一個窗口形式的基礎教程。
有任何書籍或網站,學習的方式來實現這一點?
我正在尋找一種設計C#應用程序的方法。我理解3層模型,但是idk如何在一個好的C#設計中應用這個模型。分離Windows窗體和類C#
我已經看過一些asp.net的MVC教程,但我在尋找一個窗口形式的基礎教程。
有任何書籍或網站,學習的方式來實現這一點?
您應該知道的第一件事是設計模式並非一成不變,因此沒有「實現設計模式的方式」這樣的事情。
如果你只是意味着3層模型,那麼MVC是一個不錯的選擇,因爲它清楚地將每層與另一層分開,對於Windows窗體開發,請查找關於實體框架(或僅LINQ)的教程,應用程序的邏輯變成你的模型層,所有的表單,用於呈現數據的類,都是你的視圖,當然,用戶控制器也是......你的控制器。
我建議你看看DoFactory網站,它有很多設計模式的很好的報道。
另外我應該指出,你可能在doFactory中找不到實現,這只是一堆設計模式的參考。 JIC。
嗨,如果你使用的是贏形式,我建議你去MVP模式。還有一個模式MVVM(主要用於WPF和Silverlight),但我不知道它是否適用於Win Forms。
我認爲traditional MVC是WinForms的矯枉過正。表單是視圖,很少需要單獨的控制器。該模型只是一個類(通常實現INotifyPropertyChanged)。您可以使用數據綁定來通知視圖模型已更改。
重要的一點是最小化按鈕下的代碼。如果是表單代碼,它應該是(a)是UI特定的還是(b)將調用委託給模型。任何業務邏輯都應位於模型或模型所依賴的類中。
避免使模型God Object。它可以在內部委託給其他類。
編輯:您可能需要考慮將綁定數據移出到模型擁有的單獨對象中。我會打電話給這個Presentation Model,但我不想在福勒的嘴裏說話。
EDIT2:重要 - 模型必須有沒有知識的視圖和NO UI代碼(如對話框)。
我在找更傳統的東西。 – Nick 2010-12-14 03:24:11