Short version: Use Domain Driven Design. Business Rules / Validation go into the Value Objects (a name, an address, etc.) that make up an entity (a unique customer, business account, etc.). The article defines each term in the previous sentence and gives a sample as to how to perform it.<p>For a Functional Programming perspective or if you are a F# user, the Pragmatic Bookshelf book "Domain Modeling Made Functional" covers DDD architecture from a functional perspective and was an informative read.