How do you design your software to be more adaptable to changing technologies, fixing bugs and new requirements? Everyone answers: use layering. And that is correct; but exactly how do you develop software layers, or create application interfaces that allow you to make these changes. This course will focus on techniques such as interface-based design, proper use of inheritance, inversion of control, factories, single responsibility, facades, and other patterns and techniques that facilitate this. It will demostrate these principles by walking through the process of transforming a tightly coupled application into a properly layered one. The examples are in C#, but the principles apply to any programming language.
For more information and to download the document on Partitioning and Layering a Software Application (Examples in C#), please visit [http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=cfa38c11-a6c6-48d2-8079-5db723221819]