一个简单的三层架构例子(.NET入门)
最近開始學(xué)習(xí).NET 用的是c# 目前要用三層架構(gòu)的模式開發(fā)一個(gè)簡單的圖書管理系統(tǒng),不過以為剛接觸這門技術(shù)。做起來分外吃力,甚至連究竟要寫些什么都不清楚。
?????? 于是乎上網(wǎng)到處找尋三層架構(gòu)的基礎(chǔ)入門知識(shí),終于找到了一篇:
????? 原文來自:http://hi.baidu.com/tgszsh/blog/item/9f30bc1f6cc1def0e1fe0ba8.html
?????? 不過經(jīng)過自己的試用,發(fā)現(xiàn)里面還是會(huì)出現(xiàn)一些毛病。而且對于像我這種新手來說,本來是想看個(gè)簡單的例子,結(jié)果還要自己上網(wǎng)到處搜索解決方案,郁悶。
??????? 于是決定自己再重寫一下,雖說有盜版的嫌疑。不過還是借我碰到的一些問題,給大家點(diǎn)幫助。
首先還是簡單的提一下 三層架構(gòu)吧:
1、表現(xiàn)層(UI):通俗講就是展現(xiàn)給用戶的界面,即用戶在使用一個(gè)系統(tǒng)的時(shí)候他的所見所得。
2、業(yè)務(wù)邏輯層(BLL):針對具體問題的操作,也可以說是對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務(wù)邏輯處理。
3、數(shù)據(jù)訪問層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫,針對數(shù)據(jù)的增添、刪除、修改、更新、查找等。
下面就介紹一下 范例的 步驟:
?
1.打開VS2008后,文件-->新建-->項(xiàng)目-->其他項(xiàng)目類型-->Visual Studio 解決方案-->空白解決方案 就起名為:MvcTest 吧
2.建立如圖
的項(xiàng)目,并在WEB-->App_Data建一個(gè)數(shù)據(jù)文件 DabaBase.mdf 里面建表:qzzm_user?? 表內(nèi):字段Name,類型:nvarchar(50) 非空
3.在WEB中引用BLL,Model層新建Post.aspx
Post.aspx 代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Post.aspx.cs" Inherits="Post" %>
<!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>無標(biāo)題頁</title>
</head>
<body>
??? <form id="form1" runat="server">
??? <div>
??????? <asp:TextBox ID="tb_name" runat="server"></asp:TextBox>
??????? <asp:Button ID="btn_post" runat="server" OnClick="btn_post_Click" Text="提交" />
??? </div>
??? </form>
</body>
</html>
Post.aspx.cs 先擱下等寫好類庫再寫
4.在Model 實(shí)體類中新建一個(gè)user.cs的類 (如果你已經(jīng)按照上面的圖 將類都建好了 就只用看下面的代碼就好了)
user.cs代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Model
{
??? public class user
??? {
??????? public user() { }
??????? private string _Name;
??????? public string Name
??????? {
??????????? set { _Name = value; }
??????????? get { return _Name; }
??????? }
??? }
}
5.在DAL新建userdb.cs,并引用Model層?? (鼠標(biāo)右鍵——添加引用——項(xiàng)目 選擇所需的引用)
userdb.cs代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Configuration;
namespace DAL
{
??? public class userdb
??? {
??????? public bool adduser(Model.user model)
??????? {
??????????? SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlconn"].ConnectionString);//此行@
??????????? con.Open();
??????????? using (SqlCommand cmd = new SqlCommand("INSERT INTO qzzm_user(Name) VALUES(@Name)", con))
??????????? {
??????????????? cmd.Parameters.AddWithValue("@Name", model.Name);
??????????????? if (cmd.ExecuteNonQuery() > 0)
??????????????????? return true;
??????????????? else return false;
??????????? }
??????? }
??? }
}
代碼寫好了還不行,因?yàn)榈綍r(shí)候調(diào)試的時(shí)候可能會(huì)出現(xiàn) “當(dāng)前上下文中不存在名稱“ConfigurationManager”?? ”(注釋 所在行),出現(xiàn)這種錯(cuò)誤的原因是沒有引用System.Configuration 這項(xiàng),注意這邊可不是代碼中的 using System.Configuration; 哦。此時(shí)就要添加System.Configuration的引用,方法同上面的引用Model層類似,在DAL層下 右鍵——添加引用——.NET?? 然后找到對應(yīng)的 System.Configuration??? 確定即可。
(如果沒出現(xiàn)上面所說的問題當(dāng)然是最好咯 O(∩_∩)O~)
6.在BLL中新建userbll.cs并引用DAL,Model層
userbll.cs代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
??? public class userbll
??? {
??????? DAL.userdb db = new DAL.userdb();
??????? public bool adduser(Model .user model)
??????? {
??????????? return db.adduser(model);
??????? }
??? }
}
7.開始寫Post.aspx.cs
代碼如下:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class Post : System.Web.UI.Page
{
??? protected void Page_Load(object sender, EventArgs e)
??? {
??? }
??? protected void btn_post_Click(object sender, EventArgs e)
??? {
??????? Model.user us = new Model.user();
??????? us.Name = tb_name.Text;
??????? BLL.userbll ub = new BLL.userbll();
??????? ub.adduser(us );
??? }
}
8.在Web.config文件中添加 缺少的數(shù)據(jù)鏈接字符串
找到<connectionStrings?? />?? 這一行,將其修改如下:
<connectionStrings>
??? <add name="sqlconn" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />
</connectionStrings>
9. 調(diào)試 執(zhí)行
此時(shí)會(huì)提示 “無法直接啟動(dòng)帶有……”的信息
此時(shí)我們只要找到 Post.aspx?? 右鍵——在瀏覽器中查看?? 即可 。??? 輸入數(shù)據(jù)——提交 ,即可到所建的數(shù)據(jù)庫中找到所輸入的數(shù)據(jù)。
一個(gè)簡單的三層架構(gòu)例子 到此完成。
各層引用關(guān)系如下:
1) WEB引用 DAL,Model
2)BLL引用 DAL,Model
3)DAL引用Model (以及解決錯(cuò)誤時(shí) 引用的System.Configuration )
4)Model無引用
好了既然有一個(gè)簡單的實(shí)例了,就讓我們進(jìn)一步的深入其中吧,加油~~!
轉(zhuǎn)載于:https://www.cnblogs.com/xgcblog/archive/2011/05/10/2042345.html
總結(jié)
以上是生活随笔為你收集整理的一个简单的三层架构例子(.NET入门)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可以腌咸菜的菜有哪些(腌咸菜多长时间可以
- 下一篇: 使用FtpWebRequest 类操作(