With the advent of the .NET Framework and Visual Studio .NET (VS .NET), Microsoft Visual programmers now have a real motivation for developing multi-tiered applications. With VS .NET, developing in this fashion is much more practical and efficient. This is a best practice in object-oriented development - the logical separation of functional layers in a solution. However, with more power comes more complexity. Multi-tiered applications can quickly become unmanageable if they are not organized logically, consistently, and correctly. This is not only a problem for the original developer, but it also haunts maintenance personnel who must decipher how to piece a solution together and deploy it.