title: Can a DTO have instance methods returning derived values?
body: <p>Is it ever acceptable for a DTO to have instance methods which return derived values based on the DTO's data?  Or should DTOs be pure data containers with no additional methods (other than getters/setters)?</p>
  
  <p>The purist in me says that it is far to easy for business logic to creep into such methods.  However, if (for example) a DTO is shared across application layers, then maybe there is an argument for having such methods on the DTO.</p>
  
  <p>What are your views on this?  Are there ever situations where it is acceptable, or should this sort of thing be avoided?  And why/why not?</p>