[UPDATE] Sample solution available on OneDrive ( https://onedrive.live.com/?cid=5eaaef40eefdaddb&id=5EAAEF40EEFDADDB%21109 ) A solution consists of projects, projects uses components, components are of a specific version, changing the components thus requires a versioning strategy….which one are you using? All solutions which are architected into several tiers, have a form of layering with (which I hope) an abstraction of re-usable components. A project which is used to implement automated order approvals (AOA), with a requirement to implement logging, and retrieve something out of the database will likely have the minimum of 3 projects Solution AOA Project - AOA.Core Project - AOA.DataProject Project - Common.Logging Let’s assume, that the Logging library is also used by another solution: BOB Solution BOB Project – BOB.Core Project – BOB DataProject Project - Common.Logging When the requirements of logging change, and the project BOB needs a specific change d...