Difference between 3 tiers and 3 layers applicationsAmr Saafan
The terms tier and layer are frequently used interchangeably, but actually there is a difference between them:
Tiers indicate a physical separation of components, which may mean different assemblies such as DLL, EXE, etc… on the same server or multiple servers; but layers refers to a logical separation of components, such as having distinct namespaces and classes for the Database Access Layer (DAL), Business Logic Layer (BLL) and User Interface Layer (UIL).
Therefore, tier is about physical separation and units of deployment, and layers are about logical separation and units of design.
Ok, Now the difference is 50% clear to me. I will create a sample web application & use this concept
Hi Mr. Amr,
Very good, But we wanna have more details about tiers because a lot of us care and work a lot with layers, but tiers not all of us care about it.
your piece is quite informative even to someone like who doesn’t know much about software.
Kazeem from Nigeria.
I hope you give your source for the concept, as I know it was never stated , but you are right there is logical separation of tiers and physical separation of tiers and they are different, but can you tell me how to build optionally physically separated 3 tier application!!!!???
Eng. Ahmad Zaher
Civil Soft Egypt
Ok guys, sometimes you need to physically separate different layers from each other’s when you are working on a large scale project.
-You are working on a large scale website which you may need to transform it into a windows application in the future or may need to create a windows application which will provide the same functionality as the website.
So to make your project expandable you must use n-tiers not n-layers design
-You have different projects which share the same business logic or data access layer.
(I.e. Website, web service, windows application …etc.)
So you CAN’T use n-layers because these layers won’t be shared among your projects
Now how to create N-Tiers?
Simply Create 3 new projects of the type class library (DLL), call them:
BusinessLogicLayer, DataAccessLayer and DataMappingLayer (if you are using DataMapping)
Transfer the code you have created previously to the correspondent layer.
If you don’t know what’s N-Tiers design, I suggest reading the book titled “Asp.net Website programming problem ,design ,solution” I believe it’s a must have book and you can download the source code from here
It’s a complete website called the beer house and Microsoft suggests it as a starter kit.
You can also read about n-tiers and DataAccessLayer on Asp.NET website
Touche. Outstanding arguments. Keep up the good effort.