【问题标题】:Advice on MVC pattern for WinForms app关于 WinForms 应用程序的 MVC 模式的建议
【发布时间】:2011-03-09 01:35:26
【问题描述】:

我正在编写我的 Mac 应用程序 (C# Winforms) 的 Windows 版本,并希望获得有关使用哪种设计模式的建议。

我的 Mac 应用使用 MVC 模式和 Core Data 进行存储。这是模型和关系的简化图:

桌面应用程序在后台线程上收集日志并定期将它们上传到我的网络应用程序。该数据库用于存储用户的帐户信息和日志,应用程序有 3 个视图来显示(和收集)用户的数据。

我已经阅读了一些资料,似乎 MVP 是 WinForms 应用程序的推荐设计模式,但我不知道如何从这里着手。我认为我的应用程序很简单,无需使用像 MVC# 这样的外部框架即可编写,但在我只是推测之前,我从未制作过 WinForms 应用程序。

有人可以推荐最好的方法吗?

【问题讨论】:

标签: c# winforms model-view-controller mvp


【解决方案1】:

模式实际上只是它试图解决什么问题的指南。 MVC 适用于依赖页面和重定向等的 web 应用程序的地方,winform 应用程序可以从使用 MVP 中受益。

话虽如此,这两种模式是更广泛的 UI 模式的兄弟,即使根据 Martin Fowler 的说法,MVP 模式也可以进一步拆分。查看他的article 以了解适当的模式。他将 MVP 打破为监督控制器和被动视图。甚至新的 MPF MVVM 模式实际上也是基于 PresentationModel 模式。

我会说看看模式,看看什么合适,而不是尝试使用模式,因为你在另一个场景中使用过它。

【讨论】:

  • 说得对。不要为模式选择问题,而是选择解决问题的模式。
【解决方案2】:

根据我对 winforms 应用程序(支持良好的数据绑定)的经验,您可以将 MVC 与监督控制器模式一起使用。通读这个问题What are MVP and MVC and what is the difference? & http://codebetter.com/jeremymiller/2007/05/25/build-you-own-cab-part-3-the-supervising-controller-pattern/

【讨论】:

    【解决方案3】:

    您应该看看 Jeremy Miller 的打造自己的出租车系列: http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/

    【讨论】:

      【解决方案4】:

      开始工作,做一些屏幕模型,做一些设计,写一些代码。

      您可以从几个小原型开始,尝试不同的设计。在探索阶段不要走得太远,这样您就可以毫不犹豫地扔掉它并在需要时重新开始。

      尽量让您的选择保持开放,不要把自己逼入绝境,并推迟做出决定,直到您真正需要选择一种方式而不是另一种方式。

      到那时你可能会对你需要什么有一个更好的想法。

      【讨论】:

        猜你喜欢
        • 2011-04-06
        • 1970-01-01
        • 2022-12-22
        • 2010-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-06
        相关资源
        最近更新 更多