为C#寻找干净的WinForms MVC教程

如何创build丰富的用户界面Windows应用程序,例如Photo Shop。

我正在寻找干净的MVC教程WinForms与C#的地方。 ( 不是 ASP.NET MVC。)

在Windows平台上是新的; 大多数MSDN和互联网教程基本上把所有东西都放到Form类中。 更多的默认事件是在表单内部处理的,而不是将事件发送到控制器/模型,这反过来又改变了视图的状态。

或者是Windows应用程序的首选方法?

Derick Bailey(通过Los Techies)已经在 WinForms应用程序中join了一些梦幻般的文章 (以及完整的演示源代码),并在其中添加了一些其他良好模式(Application Controller,Event Aggregator)。

作品的灵感来自于杰里米·D·米勒 ( Jeremy D Miller)的一系列文章“build立你自己的CAB”

这可能是值得看看Model-View-ViewModel(如果你感兴趣/特别喜欢使用WPF)。

它专门用来处理WPF和Silverlight,并利用数据绑定将所有东西粘合在一起。

networking上有很多资源可以帮助我们find更多信息,包括John Gossman的介绍 ,以及Josh Smith的一篇好文章 ,他的博客上有关于MVVM的其他资源。

对于Windows应用程序,Windows操作系统无意中成为控制器的一部分。

该模型可以订阅各种事件/消息(例如,鼠标点击,移动,窗口重新大小,button点击…)。 当它完成更改更新处理时,通过重绘操作更新视图。

Windows操作系统充当控制器,因为它既发送消息到模型(例如鼠标点击)或视图(告诉它的一部分窗口是脏的,需要重绘)。

当然,对于任何商业应用程序,您可以实现自己的模型和文档结构,并将它们与相应的WinForm对象分开。

在.net中,这并不是很清楚,因为模型和视图部分只有一个文件。 在MFC中,它非常清楚 – 具有CDocument类及其相应的CView类。

对于Windows应用程序,而不是MVC模式,它有助于理解Windows消息传递体系结构以及如何处理它们。