Sunday, April 29, 2007

Stuck in 3-Tier Application Design

I am in the midst of designing MyProjectManager's architecture.
I am stuck here.

Definitely, I'd like to have 3 tiers in my application,
which is Data Tier, Business Logic Tier and the Presentation Tier.
There's no doubt in data tier and presentation tier,
which consists of the database and UI, respectively.
But, how about the Business Logic Tier?
I've seen the design which combines the Data Access Tier and the Business Tier,
which is a class contains the Data Access codes and also the Business Logic codes.
I guess this will boot up the performance, but will it make the tiers ambiguous?
Should we separate the Data Access codes with the Business Logic codes?

I've read an article saying the advantages of separating them are:
1) Increases code transparency
2) Supports changes in Data Layer. You can change or alter database with out touching the Business Layer and this would be a very minimum touch up.

How do others deal with this issue?
Separating them? or combing them into one layer?


  1. So it is depend on senario,
    you have to compare the pros and cons