首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现WinForms MVP应用程序的业务对象

实现WinForms MVP应用程序的业务对象
EN

Stack Overflow用户
提问于 2011-09-02 15:41:51
回答 2查看 661关注 0票数 1

我正在从头开始构建一个新的系统,并致力于应用程序的设计。我正在寻找可行的方法来建模我的领域对象。

该项目的一些细节--这将是一个相当大的数据输入WinForms应用程序,集成到ESRI ArcMap (一个地理信息系统应用程序)中。数据访问必须通过ArcMap自己的数据访问层进行--数据是通过游标样式访问来检索和保存的。这不是获取数据的问题,但据我所知,这排除了ORM工具作为实体框架和NHibernate的可能性,因为我不能直接与数据库交互。

WinForms应用程序将遵循MVP 监控控制器模式-视图将绑定到模型。演示者也将修改模型。因此,域对象应该支持以下内容:

  • 变更通知
  • 变更跟踪。至少我想知道我的模型是否变了。

到目前为止,我的选择:

  1. 用手写POCOS,。+Pros/-Cons:
    • +应该是可行的
    • +可以容纳业务逻辑
    • +Bindable
    • 手工作业-Lots
      • 通过-Change接口发出INotifyPropertyChange通知。
      • -Change通过IsDirty属性进行跟踪,必须手动维护。

  1. ADO.NET DataSets由POCOs包装。+Pros/-Cons:
    • +“免费”更改通知
    • +“免费”更改跟踪
    • +Bindable
    • -Feels有点乱

我排除的是:

  • 实体框架-我是在.net框架3.5,所以没有代码第一支持。据我所知,处理域逻辑是非常混乱的事件处理程序。

还有其他好的选择吗?可能是代码生成(对工具有什么建议吗?),还是一些框架?智慧之言,忠告?

EN

回答 2

Stack Overflow用户

发布于 2011-09-05 14:55:16

我的POCOs只是“愚蠢”的数据传输对象,它们不包含任何业务逻辑。它们也不是我的模型,因为它们是另一组更接近我的UI的哑弹对象。我只是在我的数据访问层中抽取满是数据的DTO,将它们传递到我的服务层以处理业务逻辑,但是它们只被传输到我的演示者/控制器上,以便通过模型向我的UI提供我需要的足够的信息。对于您的场景,我认为这更符合逻辑,因为您必须通过ArcMap的数据访问层。您可以在表示层中持久化数据,并在那里进行更改跟踪。

票数 0
EN

Stack Overflow用户

发布于 2014-09-18 14:54:32

读这本书,这比你要知道的还要多

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7285906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档