I've been following the tutorial on how to build my own Web API using ASP.NET. I have finished the last section on Prevent over-posting. From what I understand, TodoItem class exposes all the fields of a particular model, including secret fields. The TodoItemDTO class is basically a duplicate of TodoItem, but it prevents secret fields from being exposed to the client for obvious security reasons. However, this technique goes against DRY principles. Is there a better alternative, or is this the only method?