an example of domain driven design, implemented in c# .net >= 4.5 using EntityFramework >= 5