【问题标题】:MVC/MVP framework for .NET WinForms applications [closed].NET WinForms 应用程序的 MVC/MVP 框架 [关闭]
【发布时间】:2010-10-06 22:02:17
【问题描述】:

有人知道企业 WinForms 应用程序的可用 MVC/MVP 框架吗?

之前有User Interface Process Application Block for .NET。但自从Windows Workflow Foundation 已经发布(也将用.NET 4.0 完全重写)以来,它不再处于开发阶段。

也许我不是最新的,但在我看来,我现在似乎有一个差距。

【问题讨论】:

    标签: c# .net windows winforms frameworks


    【解决方案1】:

    【讨论】:

    • codebetter.com 似乎已关闭。希望只有今天!
    • 有没有本系列中所说的示例代码?如果他们在同一篇文章中链接,我很抱歉,我错过了。
    【解决方案2】:

    你试过MVC#吗?我不久前开始使用它,但该项目搁浅了,所以我不能保证太多 - 抱歉!

    编辑:我刚刚发现this 的文章看起来也不错。

    【讨论】:

      【解决方案3】:

      我们使用 MS 的 Smart Client Software Factory。它提供了 IDE 集成、完整的 MVC 支持,一旦你理解了它背后的概念,它就是一个非常称职的实现。您可以通过以下方式获取它:http://msdn.microsoft.com/en-us/library/aa480482.aspx

      【讨论】:

      • FWIW,MSDN 文档现在声明已停用的内容 此内容已过时,不再维护。它是为仍在使用这些技术的个人提供的。
      【解决方案4】:

      智能客户端软件工厂?

      【讨论】:

        【解决方案5】:

        我总是自己动手——这并不难,而且我越能“控制”我的代码库,我感觉就越好。

        我只是想知道 MVC 框架如何适应 CastleWindsor 之类的?

        这可能不是最有帮助的答案,只是想知道您是否已经考虑过这个选项!

        【讨论】:

          【解决方案6】:

          我不喜欢 Prism、CAB 或 SmartClient 过于复杂,最终推出了我自己的实现。

          随着时间的推移,一些常见的模式正在出现。这些被从一个应用程序重用到一个应用程序。这是一个示例:DDD and Rule driven UI Validation in Windows.Forms with MVC

          【讨论】:

            【解决方案7】:

            我正在插入我自己的框架:TrueView for .NET。它基于 DDD 和 Naked Objects 模式。

            至少,使用它来创建快速原型是从业务用户那里获得体面反馈的好方法。

            【讨论】:

              【解决方案8】:

              所有这些标准框架都不适合大型复杂应用程序开发,它们假定显示是静态的。 由于屏幕控件必须是动态的共同要求,我也开发了自己的,即使 MVC/MVP 模式也假设显示将是静态的,因此当控件中显示的字段取决于用户的角色时MVC/MVP 模式不适合。 我开发了一个工具,您可以在其中构建屏幕,将业务对象及其属性加载到数据库中,然后用户只需选择她想要显示的对象和对象属性,控件可以由任意数量的控件组组成,每个控制组可以包含任何业务对象属性,业务对象是由我的 Linq ORM 从视图中生成的。因此,控件将仅显示用户有权访问的控件组的字段。 您还可以使用面向方面的编程来为 MVC 模式提供规范,但是当显示必须根据角色动态显示时,这种开销可能会增加一点或多一点的复杂性和性能成本。

              【讨论】:

              • 我看不出 MVC/MVP 模式如何以任何方式阻止你做你提到的任何事情。
              【解决方案9】:

              除了 TrueView,还有Naked Objects for .NET。这支持客户端/服务器模式,并且当前正在移植 Web 查看器(基于 Java 等效查看器)。

              对于给定的用户/角色可以使用哪些属性/操作,这是在 Naked Objects 中动态完成的。支持三种业务规则先决条件: 1. 成员是否可见? 2. 会员可以使用吗? 3. 对成员(新的属性值或动作参数)的更改是否有效?或者,更简洁地说:你能看到它吗?你能用吗?你能做到吗? Naked Objects 编程模型允许以声明方式和命令方式指定这些规则。

              即使您最终将域模型包装在自己的 UI 层中,我还是建议您看看 NO。

              干杯

              丹·海伍德

              作者:“使用裸对象的领域驱动设计”,pragprog.com

              【讨论】:

                【解决方案10】:

                我已成功使用以下开源项目在 ASP.NET + WinForms + C# 中实现 MVP 模式:

                • 城堡项目。

                查看我的博客文章,其中展示了完整的 ASP.NET Web 应用程序示例:

                Model View Presenter pattern with Castle in ASP.NET

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-10-15
                  • 2012-02-26
                  • 1970-01-01
                  • 2011-02-27
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多