"N-tier" is a team that almost every software developer knows, and a team that has been hugely debated across forums, blogs and offline discussion groups. During my early years as a programmer, I was so impressed with n-tier architecture that I thought every application should be n-tier, without even understanding the high-level view, which I eventually realized comes later with experience! To n-tier or not is the question for which we will try to find an answer in this chapter.
We have already seen 1-tier architectures, and if we keep the database on a separate machine with its own CPU, we will have a rudimentary 3-tier architecture in our web projects, as shown here:
We have already seen how to break the main application tier in the above 3-tier application into logical layers. Now, the first question that comes to one's mind is why, exactly, do we need to break these logical layers into their own, separate, physical assemblies as tiers.
The answer is that n-tiered development...