Saturday, February 14, 2015

Working with 3- Tier Architecture in C#

Introduction


In this article we will learn Use to 3- Tier architecture in C#.NET application. 3-Tier architecture is very famous and well known in world of software development. If we analyze any traditional project We used 3-Tier Architecture. It does not matter whether it is web or windows application, we can implement 3-Tier architecture in any type of development environment.


It is N-Tier architecture. So, we can create as much layer as possible but mostly developer code in three different categories and put them in three different layers. So, we try to  N-Tier architecture as 3-Tier architecture and try to implement one sample application.

 

Presentation Layer or UI Layer


This is the top most layer of application where user performs their activity.If any application where user needs to fill up one form. This form is  presentation layer. In windows application windows form is presentation layer and in web application web form belongs to presentation layer. Basically user’s input validation,Controls and rule processing performs in this layer.

Business Layer


This is on top of presentation layer. As the name suggest, most of the business operation performs here. Like, after collecting form data we want to validate them with our custom business rule. Basically we define classes and business entities in this layer.

Data Access Layer


It is the top of Business Logic Layer Data Access Layer presents. It contains methods & Functions that helps business layer to connect with database and perform operations. In data access layer generally all database related code and it perform all database activity to manage the application 

Code for Data Access Layer

 Data access layer; we will create function to read data from database.

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
namespace WindowsFormsApplication1.DAL
{
public class PersonDAL
{
public string ConString =
"Data Source=REDDY-PC\\SQLEXPRESS;Initial Catalog=test;Integrated
 Security=True";
SqlConnection con = new SqlConnection();
DataTable dt = new DataTable();
public DataTable Read()
{
con.ConnectionString = ConString;
if (ConnectionState.Closed == con.State)
con.Open();
SqlCommand cmd = new SqlCommand("select * from Employe",con);
try
{
SqlDataReader rd = cmd.ExecuteReader();
dt.Load(rd);
return dt;
}
catch
{
throw;
}
}
public DataTable Read(Int16 Id)
{
con.ConnectionString = ConString;
if (ConnectionState.Closed == con.State)
con.Open();
SqlCommand cmd = new SqlCommand("select * from Employe where 
ID= "+ Id +"", con);
try
{
SqlDataReader rd = cmd.ExecuteReader();
dt.Load(rd);
return dt;
}
catch
{
throw;
}
}
}
}

Create Business Logic Layer

Now, we will create Business Logic Layer to communication with both Presentation layer and Data access layer.


using System;
using System.Collections.Generic;
using System.Data;
using WindowsFormsApplication1.DAL;

namespace WindowsFormsApplication1.BLL
{
public class PersonBLL
{
public DataTable GetPersons()
{
try
{
PersonDAL objdal = new PersonDAL();
return objdal.Read();
}
catch
{
throw;
}
}
public DataTable GetPersons(Int16 ID)
{
try
{
PersonDAL objdal = new PersonDAL();
return objdal.Read(ID);
}
catch
{
throw;
}
}

}
}

Create Presentation Layer.

This is the top most layer where user will interact with system. We will create simple windows for like this.








using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WindowsFormsApplication1.BLL;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
PersonBLL p = new PersonBLL();
this.dataGridView1.DataSource = p.GetPersons(Convert.ToInt16
(this.txtID.Text));
}
catch
{
MessageBox.Show("Error Occurred");
}
}

private void Form1_Load(object sender, EventArgs e)
{
try
{
PersonBLL p = new PersonBLL();
this.dataGridView1.DataSource = p.GetPersons();
}
catch
{
MessageBox.Show("Error Occurred");
}
}
}
}




Folder structure in solution explorer

Here is our sample folder stricture in solution explorer. We have created all layers in same solution. 




Now over to you:
"A blog is nothing without reader's feedback and comments. So please provide your valuable feedback so that i can make this blog better and If you like my work, you can appreciate by leaving your comments. Stay tuned and stay connected for more technical updates."

No comments:

Post a Comment