问题
I am using simple 3 tier architecture. In this I am using DTO classes to communicate between UI,BL and DL. So there is any better way for communication between layers? or this is the right way?
回答1:
DTO, Data transfer Object, is the concept for distribution layer, you use when transferring data between your consumers and your service. So, if you don't publish any service, get off DTO.
To answer your question, it also depends on how complex your application is. If it's simple, just use CRUD operation, or you can even use DataTable
, DataSet
for communication.
Otherwise, Domain Entity from DDD is the core object for communication between layers: Data Access Layer, Business Logic Layer and Presentation Layer.
Basically, there are some different type of objects in application:
- DTO, use when you public services, main object to communicate between consumer and your service.
- View Model, object in presentation layer to support UI.
- Domain Entity is from Business logic layer to contain business logic.
Be careful with the term:
- Tier: it means physical, like database server, web server.
- Layer: it means logical layer: Persentation Layer, Business Logic Layer, Data Access Layer.
回答2:
Read this tutorial it is very informative. It will help you to decide is DTO right for your scenario.
回答3:
In addition to @Talha's answer, I'd recommend this article. It is EF-oriented, but concepts, described there, are common ones.
来源:https://stackoverflow.com/questions/12506472/use-of-dto-in-3-tier-architecture