关于WinForms应用程序的MVC模式的建议

时间:2011-03-09 01:35:26

标签: c# winforms model-view-controller mvp

我正在编写我的Mac应用程序的Windows版本(C#Winforms),并希望就使用何种设计模式提供一些建议。

我的Mac应用程序使用带有Core Data的MVC模式进行存储。这是模型和关系的简化图:

model diagram

桌面应用程序收集后台线程上的日志,并定期将其上传到我的Web应用程序。数据库用于存储用户的帐户信息和日志,应用程序有3个视图来显示(和收集)用户的数据。

我已经完成了一些阅读,似乎MVP是WinForms应用程序的推荐设计模式,但我不知道如何从这里开始。我认为我的应用程序很简单,可以在不使用像MVC#这样的外部框架的情况下编写,但因为我在推测之前从未创建过WinForms应用程序。

有人可以推荐最好的方法来解决这个问题吗?

4 个答案:

答案 0 :(得分:2)

模式实际上只是它试图解决的问题的指南。如果MVC适用于依赖于页面和重定向等的Web应用程序,winform应用程序可以从使用MVP中受益。

虽然说这两种模式是更广泛的UI模式的兄弟,甚至根据Martin Fowler,MVP模式可以进一步分裂。看看他的article以获得适当模式的良好感觉。他将MVP打破了监督控制器和被动视图。甚至新的MPF MVVM模式实际上也基于PresentationModel模式。

我会说看模式,看看是什么适合而不是尝试使用模式,因为你在另一个场景中使用它。

答案 1 :(得分:1)

你应该看一下Jeremy Miller制作你自己的驾驶室系列: http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/

答案 2 :(得分:1)

根据我对winforms应用程序(支持很好的数据绑定)的经验,您可以将MVC与监督控制器模式一起使用。仔细阅读此问题What are MVP and MVC and what is the difference?& http://codebetter.com/jeremymiller/2007/05/25/build-you-own-cab-part-3-the-supervising-controller-pattern/

答案 3 :(得分:0)

开始研究它,做一些屏幕模型,做一些设计,写一些代码。

你可以从一些小型原型开始,尝试不同的设计。不要在你的探索阶段走得太远,这样你就可以毫不犹豫地把它丢弃并重新开始,如果你需要的话。

尽量保持你的选择开放,不要把自己描绘成一个角落,并推迟这个决定,直到你真的需要选择一种方式而不是另一种方式。

到那时,你可能会对你需要的东西有更好的了解。