3-Tier Web Application Development
By Nannette Thacker
In web application
development, three-tier architecture refers to separating
the application process into three specific layers. What the
user sees via a web browser is called the presentation tier
and is content served from a web server. The middle tier
performs the business logic processing that occurs, for
example, when a user submits a form. The back end consists
of the data tier which handles the database processing and
access to the data. We'll take a simplistic look at each of
these.
Presentation Tier
The
Presentation Tier or User Interface is the portion the user
sees when they open a web page in the browser. It is as
simple as you reading this article all the way to searching
a catalog and purchasing a product using a shopping cart. It
is what is presented to the user on the client side within
their web browser.
If you were to view the
source code, you would only see code such as HTML,
Javascript, and Cascading Style Sheets. On some sites, you
may see Java Applets and Flash. Viewing source code on a web
page, you would NOT see database queries or loops or calls
to classes or any behind-the-scenes processing.
In ASP.net and utilizing Visual Studio or
Visual Web Developer, developers can separate the user interface from the
business logic and data access layer with various tools.
ASP.net allows using
MasterPages
to setup the site look and feel. As well, when creating a
WebForm which utilizes the MasterPage, you may create it and
allow the code to be placed in a separate file, known as
codebehind, thus keeping your business logic in a separate
layer from the look and feel.
You may also setup
the site design using
Themes, Skins,
and
Cascading Style Sheets.
Languages used in this layer are typically
HTML, DHTML, CSS and javascript.
Business Logic or Application Tier
The Business Logic, Functional Process Logic,
Business Rules (all pertaining to the same thing), are kept
in a separate layer. In ASP.net, this is where you define
your classes and source code. This can be in the App_Code
folder for your classes and methods. Web languages typically
used in ASP.net are VB and C#. You would not use HTML or
Javascript in this layer. In this layer you typically define
your classes, functions, sub procedures, properties, etc.
Data Access Tier
In ASP.net,
the Data Access layer is where you define your typed
datasets and tableadapters. It is where you define your
queries or stored procedures. The business tier may then
make use of this functionality. In your classes, rather than
defining ad hoc queries, you may use a TableAdapter to
access the Data Access Layer.
An Example
As an example of how this works, let's assume
you are creating a web page that allows the user to enter
information which you wish to then enter into a database.
You first create a dataset and tableadapter that allows
insert into the table, either by a query or stored
procedure. This is your data access layer.
You
then create a class, which retrieves the information from
the form, checks for field validations and then uses the
tableadapter to send the data to the database.
You create a web form, which can use a GridView
control or other controls to allow the user to input the
data into the web form. In the codebehind of the web form,
you handle the submit button click event, and send the data
from the form to your class, which sends the information to
the database using the tableadapter.
Benefits
When utilized properly, using a multi-tier
architecture improves performance and scalability. If a web
page needs an update or redesign, all of this may be handled
by altering the CSS and HTML, without affecting the business
or data logic. Any of the three tiers may be replaced or
upgraded individually without affecting the other tiers. For
instance, if you change the database on the back end, it
wouldn't affect the presentation or business logic tiers,
other than changing the database connection.
This is a simple introduction to the three-tier
web architecture, but I hope it has helped you understand
the layers of a multi-tier architecture.
May
your dreams be in ASP.net!
Nannette Thacker