如何在网络环境中学习MVC - * not *

时间:2009-05-18 21:07:38

标签: c# .net model-view-controller user-interface

我希望学习MVC范例并将其应用于GUI开发(在C#.NET中,至少在开始时,但我想我也想在其他地方应用它)。到目前为止,我所看到的几乎所有教程都假定如果您正在考虑MVC,那么您必须进行Web开发,并且他们仅在Web环境中检查MVC。我不打算讨论网络开发。

有没有人在非网络环境中使用MVC?它似乎是GUI开发的理想选择 - 将表示与底层数据模型分开。但我只是在学习,所以我不知道。任何指向教程或参考作品的指针都将不胜感激,谢谢。

10 个答案:

答案 0 :(得分:7)

查看Head First Design Patterns一书。这是实现设计模式的优秀指南,并且还有一个很好的MVC示例。

答案 1 :(得分:4)

大多数GUI以某种形式使用MVC。

MVC没有什么神奇之处,事实上,它只是一种说法让你的模型与其他东西分开的方式。视图和控件几乎总是配对,因为视图的实现细节驱动控制器的构建方式。

此外,实施MVC的每个人似乎对属于哪个地方的想法略有不同。东西在视图和控制器之间来回滑动非常容易 - 许多视图实际上都是由整个微型MVC架构构成的!

我并没有告诉你忽略MVC或任何东西,它提供了一套非常好的指导方针,我只是告诉你不要强调提出一套完全定义MVC的完全规则因为你可能找不到一个。每个人都会弯曲它以适应其他建筑。

答案 2 :(得分:2)

Java中的Swing使用MVC。可能值得一试吗?

答案 3 :(得分:1)

我没有任何链接可以分享,但我最近一直在尝试这个。我所做的是创建一个控制器和一个控制器接口。控制器接口实际上实现了几个其他接口,以保持所有独特的功能明确分开。

UI(窗口和窗体)只通过其界面就有一个控制器句柄。当窗口上发生事件时,窗口类将直接通过控制器将它们路由到等效的调用。

控制器知道模型。就我而言,我有一个Oracle数据库和一个SDE数据库。这些都包含在类中,以便我可以控制自己的实现和接口。控制器将向数据库发出请求(存在于数据模型命名空间中)并按摩数据以满足视图的请求。

实施起来非常简单,使开发非常清晰,简洁。

答案 4 :(得分:1)

如果我的声誉足够高,我会对Rick发布的内容发表评论。但由于这不是我自己的帖子:

我也喜欢Head First设计模式书,但我觉得它对你感兴趣的特定主题来说有点过于宽泛。

如果您想了解专业人员如何使用C#.NET WinForms实现MVC,我强烈建议您查看CAB(复合UI应用程序块)。

http://en.wikipedia.org/wiki/Composite_UI_Application_Block

http://www.microsoft.com/downloads/details.aspx?FamilyId=7B9BA1A7-DD6D-4144-8AC6-DF88223AEE19&displaylang=en

答案 5 :(得分:1)

MVC模式也可以应用于Windows窗体。查看MVC#。 http://www.MVCSharp.org/Using_Winforms_views_engine/Default.aspx

答案 6 :(得分:0)

pygame tutorial使用MVC。将小游戏拼凑在一起可能是一种有趣的方式来掌握设计模式。

答案 7 :(得分:0)

Objective C和Cocoa中的Mac编程通常是MVC模型。

这不是C#/ .NET,但如果你想花时间阅读它,你可能会得到一些想法。

答案 8 :(得分:0)

我相信你可以利用微软的复合应用程序块和智能客户端软件工厂来使用MVC和MVP模式。这是文档的链接: link text

答案 9 :(得分:-1)

MVC最初定义为GUI应用程序的模块化OOP样式。只是后来这个名字被一个完全不同的网页应用分层样式所借用。如果你不注意'web MVC',你会发现很多'GUI MVC'的例子和参考。