18 dto
I am considering to use DTOs instead of passing around my domain objects. I have read several posts here as well as elsewhere, and i understand there are several approaches to getting this done.
If i only have about 10 domain classes in all, and considering that i want to use DTOs rather than domain objects for consumption in my Views (WPF front ends), what is the recommended approach. I think using tools like automapper etc maybe an overkill for my situation. So i am thinking of writing my custom mapper class that will have methods for converting a domain type to a DTO type.
What is the best way to do this, are there any sample to get me started to do this?
第二个问题:在编写那些将创建DTO的方法时,我如何处理设置所有数据,特别是当域类型引用其他域对象时?我是否在DTO中编写等效属性以映射到域类中的那些引用类型?请问我是否没有用正确的话说出我的第二个问题.但我想你明白我想问的是什么.
第三个问题:在编写DTO时,我应该编写多个DTO,每个DTO包含给定域模型的部分数据,以便每个DTO都可以用于满足特定View的要求,或者DTO是否应该包含所有数据在相应的模型类中.
我一直在这里阅读有关DTO的一些帖子,在我看来,很多人将它们等同于我认为的ViewModel.DTO就是这样,数据传输对象 - 它是传递给网络的东西.所以我有一个网站和服务,只有服务可以访问真实的域/实体对象,并返回DTO.这些可以映射1:1,但考虑到DTO可以从另一个服务调用,数据库查询,读取配置填充 - 无论如何.
之后,网站可以将这些DTO添加到ViewModel中,或者转换为一个.ViewModel可能包含许多不同类型的DTO.一个简单的例子是任务管理器 - ViewModel包含您正在编辑的任务对象,以及可以分配任务的一组Dto.User对象.
请记住,返回DTO的服务可能被网站,平板电脑或手机应用程序使用.这些应用程序将有不同的视图来利用它们的显示,因此ViewModel会有所不同,但DTO将保持不变.
无论如何,我喜欢这些类型的讨论,所以任何人都应该让我知道你的想法.
马特
我将假设您的域模型对象有一个主键 ID,该 ID 可能与它们来自的数据库或存储中的 ID 相对应。
如果上述情况成立,那么您的 DTO 将克服对其他 DTO 的类型引用,就像您的域对象一样,以外键 ID 的形式。因此,域对象上的 OrderLine.OrderHeader 关系将是 DTO 中的 OrderLine.OrderHeaderId。
希望有帮助。
我能问一下为什么您选择在视图中使用 DTO 而不是丰富的域对象吗?
归档时间: |
|
查看次数: |
15743 次 |
最近记录: |