1

我今天早上醒来发现一个问题!

在我的所有组件中,我都有一组业务规则,用于在将任何更改提交到存储库之前验证 DTO。

我一直在尝试找出将验证错误返回到 UI 的最佳方法,但我遇到了 IDataErrorInfo 接口。极好的!

但是,此接口的实现会将我的 DTO 转换为 POCO,并使其在内存使用方面成为更大的对象。目前,所有用户控件都绑定到当前的 DTO 对象。

将我的 DTO 转换为 POCO 会对性能产生影响吗?或者有没有更好的方法将验证消息返回到 UI?

4

2 回答 2

-1

MVVM。即,您的 DTO 包装在视图模型中,这些模型绑定到您的视图。

于 2010-08-22T10:19:44.247 回答
-5

我一直在尝试找出将验证错误返回到 UI 的最佳方法,但我遇到了 IDataErrorInfo 接口。极好的!

绝对地。你怎么一开始不知道自己在做什么?IDataErrorInfo 有完整的文档记录——不是你应该“遇到”的东西(听起来很意外)。

此接口的实现会将我的 DTO 转换为 POCO,并使其在内存使用方面成为更大的对象。目前,所有用户控件都绑定到当前的 DTO 对象。

DTO 绝对不知道内部错误——它不应该永远有内部错误。请看,DTO 是“数据传输对象”,而不是“业务对象”。DTO 是业务对象应该生成以将其发送到 DataAccessLayer,不应该进行验证的原因是业务对象确保只有有效的对象创建 DTO。

顺便提一句。,

会将我的 DTO 转变为 POCO

我还有另一个惊喜发现 - 你的 DTO 已经是 POCO。POCO 是“Plain Old CLR Object”,我猜你的 DTO 是作为 .NET 类建立的,所以 - 你猜怎么着,令人惊讶的是,它们已经是 POCO。

您的意思(再次发现)是它将您的 DTO 转换为 BO。

或者有没有更好的方法将验证消息返回到 UI?

不,那里没有。将消息发送到 UI 的最佳方式是通过 UI 定义的接口,而 IDataErrorInfo 就是这样。

您的问题是您对以下内容有很大的困惑:

  • 如何编写多层架构并构建标准数据访问层
  • 对您使用的术语一无所知(了解 DTO 实际是什么以及 POCO 是什么)。
  • 从而混淆你的责任。

请参阅POCO vs DTO的答案,了解您实际混淆的内容。

回到绘图板。作为您的首席开发人员/架构师,向您介绍多层架构并阅读 .NET 文档。

DTO 不应该处理 DataTransfer 问题。

于 2010-08-22T10:33:00.657 回答