Monday 19 November 2012

3-Tier Architecture using Asp.net

 long ago programmers used to write much lines of code and various logical functions and procedure to support reuse of their code. But in modern world you have to go beyond just re usability and mere programming logic. Today’s applications demands vast data support, User Interface Improvisation, data security and dynamic business needs. Here the 3-tier applications came into picture to solve developer’s problem. Separating the tiers in applications helps programmer to concentrate on very particular logic and build strong and dynamic programming architecture to support business applications. Theoretically many of you have read about concept and working of 3-tier architecture so will go directly to implementation of 3-tier architecture in .Net.

1. Data Access Layer:
The layer which is responsible for accessing the data from databases. You can write your connection string, various data accessing functions like Executing commands and filling of datasets.
2. Business Layer or Logic Layer:
This is layer where you can write the business logic such as calculation of Salary etc. The Layer consists of various properties and stored procedure accessing functions for selection, insertion, updation and deletion of data.
3. Presentation Layer or Application Layer:
The application layer takes care of your User Interface representation, data display and event handling.
3-Tier programming architecture also enables re-use of code and provides a better way for multiple developers to work on the same project simultaneously.
Advantages
  1. Easy to modify with out affecting other modules
  2. Fast communication
  3. Performance will be good in three tier architecture
Step1.         
  1. Start a new website project.
  2. After Creating website,Create Data base, after that Add three projects in the solution explore
solution explorer
        |-BusinessAccessClass
        |-DataAccessClass
        |-Default.aspx
        |-ObjectClass

    Create database:Table name:Student, columns are
                SNo int,
                Sname varchar,
                SAdd varchar.

 ->one project is Data Access Layer.It s name is  DataAClass.
 ->Second  Project is Business Access Layer.Its name is BusinessAClass.
 -> the thired Project is Object Class     using this Class declaring variables . Its name is ObjectClass.

Step2:
       After add projects,we must add Reference and namespaces.

       Goto solution Explorer
                   |
           Right Click
                    |
       Select AddReference
                    |
           Select Project
           And add reference.
         
       1.DataAClass-ObjectClass Reference.
       2.BusinessAClass-ObjectClass And DataAClass References.
      3.presentation Layer .aspx -BusinessAClass and ObjectClass reference.

Declaring Variables within Object Class. Show Bellow like this,these are all with in database table columns.

ObjClass.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ObjectClass
{
    public class ObjClass
    {
        public string SNo
        {
            get;
            set;
        }     
        public string Sname
        {
            get;
            set;
        }
        public string Sadd
        {
            get;
            set;
        }
     }
}

DAClass.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using ObjectClass;

namespace DataAClass
{
    public class DAClass
    {
        #region Private variables
        SqlConnection con = new SqlConnection(@"your connection string");
        ObjClass varObj = new ObjClass();
        #endregion

        public DAClass() //Empty constructor
        {
        }
        public DAClass(ObjClass newvarObj) //peramater constractor
        {
            varObj = newvarObj;
        }
        public DataTable LoadGridData()
        {
            SqlDataAdapter da = new SqlDataAdapter("select *  from Student", con);         
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
        public void insertdata()
        {
            con.Open();
            SqlCommand cmd = new SqlCommand("insert into Student (SNo,Sname,Sadd) values
             (@SNo,@Sname,@Sadd)", con);         
          
            cmd.Parameters.AddWithValue("@SNo ", varObj. SNo);
            cmd.Parameters.AddWithValue("@Sname ", varObj.Sname)
           cmd.Parameters.AddWithValue("@Sadd ", varObj. Sadd);
           cmd.ExecuteNonQuery();
           con.Close();
        }
    }
}
BAClass.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using DataAClass;
using ObjectClass;

namespace BusinessAClass
{
    public class BAClass
    {
        #region Private variables
        ObjClass varObj = new ObjClass();
        DAClass varDAC = new DAClass();
        #endregion

        public BAClass() //Empty constractor
        {

        }     
        public BAClass(ObjClass newvarObj) //parameter constractor
        {
            varObj = newvarObj;
            varDAC = new DAClass(varObj);
        }
        public DataTable LoadGridData ()
        {
            return varDAC. LoadGridData ();
        }
       public void insertdata()
        {
            varDAC.insertdata();
        }
    }
}

Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <title></title>
</head>
<body>
    <form id="form1" runat="server">
   Student No:   <asp:TextBox id=”txtSNo”,runat=”srever”></asp:TextBox>
  Student Name:<asp:TextBox id=”txtSname”,runat=”srever”></asp:TextBox>
  <asp:Button id=”btnsubmit” runat=”server” ></asp:Button>
  <asp:GridView ID="GridView1" runat="server” Width="193px"></asp:GridView>
    </form>
</body>
</html>

Default.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using BusinessAClass;
using ObjectClass;

public partial class _Default : System.Web.UI.Page
{
    #region Private variables
      ObjClass varObj = new ObjClass();
      BAClass varBAC = new BAClass();
    #endregion

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            form1_load();          
        }
    }
     private void form1_load()
    {
        DataTable dt = new DataTable();
        dt = varBAC.LoadGridData();      
        GridView1.DataSource = dt;
        GridView1.DataBind();   
    }  
    protected void btnsubmit_Click(object sender, EventArgs e)
    {
      varObj.SNo = txtSNo.Text;
       varObj.Sname = txtSname.Text;
      VarObj.Sadd=txtSadd.Text;
       varBAC = new BAClass(varObj);
       varBAC.insertdata();
       ClientScript.RegisterStartupScript(GetType(), "msg", "<script>alert('Record successfully    inserted');</script>", false);
        form_load();
    }  
}

No comments:

Post a Comment