我正在寻找一种设计C#应用程序的方法。我理解3层模型,但是如何在一个好的C#设计中应用它。
我看了一些asp.net mvc教程,但我正在寻找基于Windows窗体的教程。
是否有任何书籍或网站可以学习如何实现这一目标?
答案 0 :(得分:3)
我认为traditional MVC对WinForms来说太过分了。表单是视图,很少需要单独的控制器。该模型只是一个类(通常实现INotifyPropertyChanged)。您可以使用数据绑定来通知视图模型已更改。
重点是最小化按钮下的代码。如果是表单代码,它应该是(a)特定于UI或(b)委托对模型的调用。任何业务逻辑都应该在模型中或模型所依赖的类中。
避免将模型设为God Object。它可以在内部委托给其他类。
编辑:您可能需要考虑将绑定数据移动到模型拥有的单独对象中。我打电话给Presentation Model,但我不想在Fowler的口中说出来。
EDIT2:重要 - 模型必须具有 NO KNOWLEDGE 视图和无UI代码(例如对话框)。
答案 1 :(得分:1)
首先你应该知道的是,设计模式并非一刀切,因此没有“实现设计模式的方法”。
如果你只是指三层模型,那么MVC是不错的选择,因为它清楚地将每一层与另一层分开,因为Windows表单开发寻找Entity Framework(或只是LINQ)的教程,它们沿着处理逻辑的类应用程序,成为您的模型层,所有表单,沿着用于呈现数据的类,是您的视图,当然,用户控制器很好......那就是您的控制器。
我建议您查看DoFactory网站,该网站涵盖了许多设计模式。
另外我应该指出,你可能找不到doFactory中的实现,这只是一堆设计模式的参考。 JIC。
答案 2 :(得分:0)
如果您使用的是Win Form,我建议您使用MVP模式。还有一个模式MVVM(主要用于WPF和Silverlight),但我不知道它是否适用于Win Forms。