bik*_* s. 4 model-view-controller winforms n-layer entity-framework-4
我将开发一个相当大的winform项目.我打算使用Entity Framework作为ORM工具.现在我正在寻找一个架构(MVC/MVP/MVVM等......)来实现所有这些.首先,对于Windows窗体的n层架构几乎没有选择,我得到的大部分都是在EF进入市场之前编写的.我从codeplex获得了一个名为Rocket Framework的框架(http://rocketframework.codeplex.com)
我环顾了一下,但我怀疑它会满足各种各样的要求.如果有人已经发现了车轮,请指导我.此外,如果EF4之前的现有架构可以容纳它,我也可以尝试一下.好主意!
那么你的选择会受到你所使用的技术的影响.有些技术可以使某种模式自然而然地发挥作用,因此,如果您(以及每个开发人员)都没有明确地设计和关注这一点,那么您最终会感受到最自然的感觉.在WinForms上,最自然的模式是MVP.您认为可以在设计器中进行布局,并且您的代码隐藏文件将成为演示者,基本上将视图和演示者组合在一个类中(无论如何它都是1:1的关系).另一方面,对于Web应用程序,MVC是一种自然模式,因为您的Web服务器已经充当控制器.最后MVF在WPF中得到了很好的支持,尽管如果你开始大量使用文件后面的代码,你也可能会遇到MVP.但依赖于DataBinding可能会让您忘记使用代码隐藏文件.我读到的一篇好文章就在这里.当然你可以用WinForms实现MVVM,阅读这个链接就是一个很好的例子.
从可测试性的角度来看,MVVM被认为是最佳模式,因为您可以在没有实际GUI的情况下测试视图模型(以及视图的行为).然而,MVP易于理解和实现,不需要复杂的绑定,并且可以让您最大限度地控制正在发生的事情(例如,事件抑制).
WinForms应用程序大多是使用MVP模式开发的.最初的MVC并没有被广泛使用 - 只有它的Model-2变体(例如ASP.NET MVC)用于Web应用程序.MVVM主要用于WPF和Silverlight.
这些模式都不会影响您使用实体框架的方式 - 它们不是与数据访问相关的模式.