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=MANISH-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"); } } } }
No comments:
Post a Comment