Hi all. I've got a question that I think good design principles can help with, but I'm at a loss for how. Note that I'm simplifying the situation for the sake of explaining it clearly.
Suppose I've got a big customer database where I'm persisting lots of information about my customers. Now I want to put a web service in front of the database which supports basic CRUD operations. Simple, right?
Suppose, though, the customer has dozens of properties. And of course, some of those properties could be forcing joins across huge tables. Now think about, say, the GetCustomerByName operation. it's going to return a whole massive Customer object every time. But most, or all, of the clients could care less about many of the properties (in fact, they all only want a few, but it's a different small subset for each client). Is there some way to have our cake (a small number of find operations), and eat it too (a small number of Customer DTOs)?