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.
Nice article!! but I am confused with ".....DataReader classes more focus is on disconnected data acces...."
Can you please clarify.
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.
Nice & simple
What about the Management Layer and Helper Class?
Can you give a sample project for n tier architecture
Can you give me the sample code for n tier architecture?
very nice article....:)
very nice and easy artical.