n - Tier Architecture in Asp.net

This article explains what is n- Tier Architecture ,need of n - Tier architecture. Advantages of using n - Tier architecture in .NET. Introduction on .NET architecture. Explanation of presentation layer, business layer and data access layer in n-tier architecture. Passing data from one layer to another in n-tier Architecture in .NET


When Developing an Application various issues have to taken while designing the architecture of the application such as Performance, Scalability, Enhancements of the application, Security. So while deciding the architecture for an application we have to keep all the said issues in mind. That is the importance we need to give for the Architecture of an Application.

Firstly what is n-Tier architecture? It refers to the architecture of an application that has at least 3 "logical" layers or parts that are separate. Each layer interacts with only the layer directly below, and has specific function that it is responsible for.

The main advantage of n-Tier architecture is each layer can be located on physically different servers with only minor code changes, hence they scale out and handle more server load. Also, what each layer does internally is completely hidden to other layers and this makes it possible to change or update one layer without recompiling or modifying other layers.
The another advantage of this architecture is if we change or add a layer, it can be done without redeploying the whole application For example, by separating data access code from the business logic code, when the database servers change you only needs to change the data access code. Because business logic code stays the same, the business logic code does not need to be modified or recompiled.

Generally n – Tier Application has 3 layers they are

1. Presentation Layer
2. Business Layer
3. Data Access Layer

1 . Presentation Layer

Presentation Layer is nothing but a piece of software that deals with User interface of the Application. Displaying Data to the user and allowing him to interface with it is the main functionality. "driving" that interface using business tier classes and objects. In ASP.NET it includes ASPX pages, user controls, server controls and sometimes security related classes and objects.

We can create Presentation layer by Windows Forms or Asp.net Web Forms
Windows Forms are basically used to create traditional Desktop application.
They can offer rich UI design. The main drew back of windows application is they need to install on each and every machine.

On the other hand ASP.net web forms also offer rich UI. They are mainly used for web applications.

2 . Business Logic Layer

Business Logic Layer is responsible for processing the data retrieved and sent to the presentation layer. The main task of Business layer is business validation and business workflow

In ASP.NET it might be using the DataSet and DataReader objects to fill up a custom collection or process it to come up with a value, and then sending it to Presentation Layer. BLL sometimes works as just transparent layer. For example, if you want to pass a DataSet or DataReader object directly to the presentation layer.

.Net Components forms these layers. Asp.net web service can also serve as Business Logic Layer. But they should be use only if the business validation happens at some external place other than our network.

By using .Net Remoting we can distribute the logic to other machines also.

3 . Data Access Layers

Data Access Layer deals with data manipulation actions such as Insert, edit, delete, select

in .NET Database can be from SQL Server or Access database, however it's not limited to just those. It could also be Oracle, mySQL or even XML.You should design data access layer in such a way that other layers need not have any knowledge about underlying data store.

ADO.NET is the data access technology under .NET. Though ADO.NET allows connected data access via DataReader classes more focus is on disconnected data access. DataSet plays a key in this mode. In some rare cases you can also use ADO for data access but it's use should have valid reasons. Do not use ADO just because you like Recordset!

Again .NET components form this layer. As stated earlier you may also use classic COM components.

Web services can also form data access layer. This is especially true if your database do not have a data provider. In such cases you can write some custom code to connect with the data and populate DataSet with it and then return DataSet to the caller.

In addition to ADO.NET you can also make use of built-in RDBMS capabilities such as stored procedures and functions

Passing data from one layer to another

Passing data from one layer to another is required in almost all the cases. Traditionally developers used comma separated strings, arrays and disconnected recordsets to achieve this. In .NET, DataSet provides an excellent way to pass your data across layers. You can even create the DataSet programmatically and populate it with your data. If you like objects a lot then you can make use of "Typed DataSets". Typed DataSet is nothing but a class derived from DataSet that exposes the tables and rows as objects.


1. Reduces tight coupling between User interface, business process and database.
2. change in database or any data access methods do not have effect on the presentation layer.
3. It becomes easier to modify or extend your application, without breaking or recompiling the client-side code


In this article we learned what is n – Tier architecture?what are the layers present generally in n – Tier architecture, Advantages of n –Tier architecture

About the Author

Mr.Rajendra Kumar Yerra is a Programmer in KST , He Completed His Engineering from JNTU, Hyderabad.


Author: Sarnendu De15 Jan 2010 Member Level: Bronze   Points : 1

Hi Rajendra,
Nice article!! but I am confused with ".....DataReader classes more focus is on disconnected data acces...."
Can you please clarify.
Sarnendu De

Author: amol00718 Jan 2010 Member Level: Silver   Points : 0

Nice articals..

Author: Sharad Sharma12 Nov 2010 Member Level: Gold   Points : 1

Good article.

Another way to pass data from one layer to other layer is, using Plain "Entity" classes like... MemberInfo, SalesInfo, LoginInfo, or "Entity Collection" classes like... MemberInfoCollection, SalesInfoCollection, LoginInfoCollection etc.


Guest Author: Senthilnathan.V17 Feb 2012

Nice & simple

Guest Author: Ajinkya21 Feb 2012

What about the Management Layer and Helper Class?

Guest Author: anyone11 Mar 2012

Can you give a sample project for n tier architecture

Guest Author: anyone11 Mar 2012

Can you give me the sample code for n tier architecture?

Guest Author: ajay27 Apr 2012

very nice article....:)

Guest Author: Bhavesh17 Oct 2012

very nice and easy artical.

  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name: