With a 5-tier system, we introduce more redundancy into the application as a whole, along with separating the BL and DAL code into physical assemblies. This is how a sample 5-tier system would look like:
Logical tier containing business logic (BL tier)
Data access tier (DAL tier)
Data tier (physical database)
Now why do we need to separate the logical layer and data layer into physical tiers? There can be many reasons to go for this architectural configuration. Some of them are listed here:
You want further decoupling of the layers to introduce a flexible architecture for your project. Let me explain this further. When we have business and data access code in the same assembly (but logically separated in different files or using namespaces), we cannot distribute the code separately. In most enterprise applications, there is a greater need for code re-use. Some third-party applications might want to use our applications' business logic code (such as...