2010-11-10 51 views
1

我从来没有使用过MVC,并希望得到一些建议。c#Winforms MVC

我实际上已经写了很多代码,但是看起来,它似乎在类之间有很高的耦合度,并且在实际的winform主窗体上写了很多代码。我是一名大学生,最近开始了12个月的实习,所以没有太多现实世界的经验。

我的系统实际上是一个WinForm图形用户界面,其中包括一个通过事件加载的树形视图。然后当用户点击一个节点时,它会从dllplugin(通过perl脚本从Oracle DB获取数据)获取datagridview。我的问题是,MVC是否适用于这种情况,并且任何人都可以关于如何我现在可以,后设计,以实现它的任何好的建议/资源?

谢谢。

回答

1

收到的智慧是,MVC对网站有好处,但在桌​​面环境中运行时有一些限制环境(我没有足够的经验在这种情况下应用这种模式来做出有价值的判断)。

Microsoft(为其中之一)推动的表单使用的模式是MVVM - 它是Model View View Model - 它在分离和可测试性方面提供了类似的好处。即使允许我希望我知道更多,我可以看到什么和为什么,特别是如果你正在看WPF(和Silverlight),但在任何你想确保分离的环境中。

+0

谢谢。将看看MVVM。 – 2010-11-10 11:45:01

+0

在WinForms中MVVM通常被称为MVP(Model View Presenter)。 – 2010-11-10 11:52:44

+0

@Fara - 我相信MVVM和MVP是相似的但不完全相同 – Murph 2010-11-10 12:07:58

2

MVP模式更适合的WinForms应用。这里有一个nice article你可以看一看。

0

MVC模式可以很好地与WinForms配合使用,请参阅此question

有很多相关的模式可供选择;在WinForms(不像WPF)的情况下,没有明确的赢家。

这部分是由于有每个人不同的目的,你最关心的:在UI

  • 形式之间

    • 代码重用能够支持形成一个UI系统
    • 易单元测试
  • +0

    我不确定我是否已经使用了一些变体。我的应用程序的一个方面是从Excel中提取信息。根据数据,应用不同的方法。这些方法用dll编写,通过我设计的界面与GUI交互。所以用户点击GUI上的一个按钮,该按钮与DLL进行交互,然后返回sone状态信息。这是MVC的一个例子吗?谢谢。 – 2010-11-10 14:44:04