有没有人知道企业WinForms应用程序的可用MVC/MVP框架?.NET WinForms应用程序的MVC/MVP框架
之前有User Interface Process Application Block for .NET。但是由于Windows Workflow Foundation已经发布(它也将被.NET 4.0完全重写),因此它不再处于开发阶段。
也许我没有达到最新的,但我在我看来,像有此刻的差距。
有没有人知道企业WinForms应用程序的可用MVC/MVP框架?.NET WinForms应用程序的MVC/MVP框架
之前有User Interface Process Application Block for .NET。但是由于Windows Workflow Foundation已经发布(它也将被.NET 4.0完全重写),因此它不再处于开发阶段。
也许我没有达到最新的,但我在我看来,像有此刻的差距。
微软的复合应用程序块(CAB)与WinForms的应用。虽然不是技术上的MVC/MVP实施,但它确实提供UI代码和非UI代码之间很好的分离:http://msdn.microsoft.com/en-us/library/aa480450.aspx
这也是相当受欢迎,只是做自己不使用任何框架,只要你是舒服的相关模式。
Build your own CAB Part #1 - The Preamble
Build your own CAB Part #2 - The Humble Dialog Box
Build your own CAB Part #3 - The Supervising Controller Pattern
Build your own CAB Part #4 - The Passive View
Build your own CAB Part #5 - The Presentation Model
:采用这种方法时杰里米米勒有一些最佳实践的优秀系列文章
Build your own CAB - Answering some questions
Build your own CAB Part #7 - Whats the Model?
Build your own CAB Part #8 - Assigning Responsibilities in a Model View Presenter Architecture
Build your own CAB Part #9 - Domain Centric Validation with the Notification Pattern
Build your own CAB Part #10 - Unit Testing the UI with NUnitForms
Build your own CAB Part #11 - Event Aggregator
Build your own CAB Part #12 - Rein in runaway events with the "Latch"
Build your own CAB Part #13 - Embedded Controllers with a Dash of DSL
智能客户端软件工厂?
我一直滚我自己 - 这是不是真的很难,我在我的代码库中的“控制”多多益善感觉。
我只是想知道一个MVC框架将如何适应,也就是说,CastleWindsor或之类的?
这可能不是最有用的答案,但如果你已经考虑过这个选项只是想知道!
我们使用MS的智能客户端软件工厂。它提供了IDE集成,完整的MVC支持,一旦你了解了它的概念,它就是一个非常称职的实现。您可以从获得它:http://msdn.microsoft.com/en-us/library/aa480482.aspx
FWIW,MSDN文档现在状态 **退休内容** *此内容已过时,不再维护。它是为仍然使用这些技术的个人提供的礼貌。* – R0MANARMY 2012-05-08 14:38:03
我不喜欢棱镜,CAB或SmartClient可为过于复杂,并最终推出了自己的实现,进行到底。
随着时间的推移,一些常见的模式正在出现。这些从应用程序重用到应用程序。这里是一个例子:DDD and Rule driven UI Validation in Windows.Forms with MVC。
我正在插入我自己的框架:TrueView for .NET。它基于DDD和Naked Objects模式。
至少,使用它来创建快速原型是获得业务用户良好反馈的好方法。
所有这些标准框架都不适用于大型复杂的应用程序开发,并且他们假设显示屏是静态的。 我也开发了我自己的,因为屏幕控件必须是动态的,即使MVC/MVP模式都假设显示是静态的,所以当控件中显示的字段取决于用户的角色MVC/MVP模式不适合。 我已经开发了一个工具,您可以将业务对象及其属性加载到数据库中构建屏幕,然后用户只需选择要显示的对象和对象属性,控件可以由任意数量的控件组成组,每个控制组都可以包含任何业务对象属性,业务对象由我的Linq ORM的视图生成。因此控件将只显示用户有权访问的控件组的字段。 您也可以使用面向方面的编程来为MVC模式提供gule,但是当显示必须基于角色动态变化时,这种开销可能会增加一点点复杂性和性能成本。
除TrueView外,还有Naked Objects for .NET。这支持客户端/服务器模式,并且当前正在移植Web查看器(基于Java等效查看器)。
至于哪些属性/动作可用于给定的用户/角色,这是在裸体对象中动态完成的。有三种支持的业务规则前提条件:1.成员是否可见? 2.会员可用吗? 3.对会员的更改(新属性值或操作参数)是否有效?或者更有说服力的:你能看到它吗?你可以使用它吗?你可以做到吗?裸体对象编程模型可以通过声明和命令的方式指定这些规则。
即使您最终将自己的域模型包装在自己的UI层中,我建议您看看NO。
干杯
丹·海伍德
笔者:“使用裸对象领域驱动设计”,pragprog.com
我已经成功使用了以下开源项目以实现MVP模式ASP.NET + WinForms + C#:
看看我的博客文章,显示了完整的ASP.NET Web应用程序示例:
codebetter.com似乎失败了。希望只有今天! – Marcel 2010-08-03 14:05:59
有没有这个系列中说过的任何示例代码?如果他们在同一篇文章中被链接并且我错过了,我很抱歉。 – IsmailS 2010-11-02 10:48:03