当创建一个n层的解决方案,我不想暴露我的业务对象,但使用DTO的,而不是这个。在另一边,我不想双重定义对象和写复制代码所有的时间。

现在我的想法是编写包含所有必要的字段和属性,但没有逻辑(仅状态)DTO的。

然后,我会从那些DTO的派生我的业务对象,与我的业务逻辑扩展它们,在DTO基类性质的工作。这些目的也将是对象中所用(NHibernate的)的ORM持续存在。

通过这种方法,在服务器端,我可以对业务对象的工作,并直接转给客户(他们得到的,这样下来,浇注料)。我不会被迫暴露我的业务逻辑的方式,节省了大量的代码。

你觉得这种做法是明智的?

此致

塞巴斯蒂安

有帮助吗?

解决方案

您可能要考虑以下内容:

  

” ...,   因为<强>保持DTO不知情的   域对象,可以重用   在DTO在不同的上下文中。   同样的,你不想要的域名   对象了解的,因为DTO   这可能意味着的改变DTO   需要在不断变化的代码   域逻辑下,这将导致一个   维护的噩梦。

     

在最佳解决方案是使用汇编模式下,其产生从业务对象,反之亦然DTO的。汇编程序是在映射图案也企业应用架构模式 ....“

述的专门实例

类型与实践:数据传输对象

另外,我还没有自己使用它,但你可能想看看 AutoMapper 为好。

其他提示

声音合理我。在LINQ to SQL,业务对象从DTO的通过使用部分类的衍生

“那我就从这些DTO的我的派生业务对象”都记住的DTO可能与BO不同,他们可能会从2或3 BO

包含属性
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top