4

我将开发一个相当大的winform项目。我打算使用实体框架作为 ORM 工具。现在我正在寻找一种架构(MVC/MVP/MVVM 等)来实现所有这些。首先,Windows 窗体的 n 层架构选择很少,而且我得到的大多数都是在 EF 进入市场之前编写的。我从 codeplex ( http://rocketframework.codeplex.com )得到了一个名为 Rocket Framework 的框架

我环顾四周,但怀疑它能否满足广泛的要求。如果有人已经发现了轮子,请指导我。此外,如果 EF4 之前的现有架构可以容纳它,那么我也可以尝试一下。请出主意!

4

3 回答 3

6

那么您的选择会受到您使用的技术的影响。一些技术使某种模式自然而然地去做,因此如果你(和每个开发人员)没有明确地设计和关心这一点,你最终会得到感觉最自然的东西。在 WinForms 上,最自然的模式是 MVP。您拥有可以在设计器中布局的视图,并且您的代码隐藏文件成为演示者,本质上将视图和演示者组合在一个类中(无论如何这是 1:1 的关系)。另一方面,对于 Web 应用程序,MVC 是一种自然模式,因为您的 Web 服务器已经充当控制器。最后,MVVM 在 WPF 中得到了很好的支持,尽管如果你开始大量使用文件背后的代码,你也可能会陷入 MVP。但是依赖 DataBinding 可能会让您忘记使用文件隐藏代码。在这里。当然,您可以使用 WinForms 实现 MVVM,阅读此链接以获得一个很好的示例。

从可测试性的角度来看,MVVM 被认为是最好的模式,因为您的视图模型(以及您的视图的行为)可以在没有实际 GUI 的情况下进行测试。然而,MVP 很容易理解和实现,不需要复杂的绑定,并且可以让您最大程度地控制正在发生的事情(例如事件抑制)。

于 2011-09-30T09:11:25.157 回答
5

WinForms 应用程序大多采用 MVP 模式开发。最初的 MVC 并没有被大量使用 - 只有它的 Model-2 变体(例如 ASP.NET MVC)用于 Web 应用程序。MVVM 主要用于 WPF 和 Silverlight。

这些模式都不会影响您使用实体框架的方式——它们不是与数据访问相关的模式。

于 2011-09-30T08:48:18.403 回答
2

经过大量的研发和广泛的研究,我终于在这里落脚: https ://github.com/geersch/ModelViewPresenter 是Christophe Geers编写的MVP架构。它支持我所需要的一切——winform 架构、Web 可移植性支持、实体框架。真的很好用而且很容易使用。

补充阅读: http ://www.cerquit.com/blogs/post/MVP-Part-I-e28093-Building-it-from-Scratch.aspx

于 2011-10-04T18:56:11.913 回答