n - Tier Architecture Theory
Introduction
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.
Advantages
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