Should I put my DTO objects inside my domain service / business layer?
Can such properties have data annotations, is this good practice? Especially for client side validation with asp.net mvc 2? (I dont have access to asp.net mvc3 otherwise I would have access to the IClientValidator? or something similar interface)…
Otherwise all my valdiation is in c# and I bubble any errors up to the UI or web project
I hope to translate the DTO to Entities inside my domain service layer so answers to the above is appreciated..
You should put your DTOs in a separate assembly to avoid layer coupling.
Read more here: http://martinfowler.com/eaaCatalog/separatedInterface.html
Yes, I think so. Since it enables all layers to validate the object without code duplication. Attributes are also added to sandcastle generated help files which lets everyone reading it see what contract requirements your models/DTOs has.