.NET domain-driven design with C# : problem - design - solution - MacCarthy, Tim (Wrox programmer to programmer, 2008)