一个简单的三层架构例子(.NET入门)
最近開始學習.NET 用的是c# 目前要用三層架構的模式開發一個簡單的圖書管理系統,不過以為剛接觸這門技術。做起來分外吃力,甚至連究竟要寫些什么都不清楚。
?????? 于是乎上網到處找尋三層架構的基礎入門知識,終于找到了一篇:
????? 原文來自:http://hi.baidu.com/tgszsh/blog/item/9f30bc1f6cc1def0e1fe0ba8.html
?????? 不過經過自己的試用,發現里面還是會出現一些毛病。而且對于像我這種新手來說,本來是想看個簡單的例子,結果還要自己上網到處搜索解決方案,郁悶。
??????? 于是決定自己再重寫一下,雖說有盜版的嫌疑。不過還是借我碰到的一些問題,給大家點幫助。
首先還是簡單的提一下 三層架構吧:
1、表現層(UI):通俗講就是展現給用戶的界面,即用戶在使用一個系統的時候他的所見所得。
2、業務邏輯層(BLL):針對具體問題的操作,也可以說是對數據層的操作,對數據業務邏輯處理。
3、數據訪問層(DAL):該層所做事務直接操作數據庫,針對數據的增添、刪除、修改、更新、查找等。
下面就介紹一下 范例的 步驟:
?
1.打開VS2008后,文件-->新建-->項目-->其他項目類型-->Visual Studio 解決方案-->空白解決方案 就起名為:MvcTest 吧
2.建立如圖
的項目,并在WEB-->App_Data建一個數據文件 DabaBase.mdf 里面建表:qzzm_user?? 表內:字段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>無標題頁</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 實體類中新建一個user.cs的類 (如果你已經按照上面的圖 將類都建好了 就只用看下面的代碼就好了)
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層?? (鼠標右鍵——添加引用——項目 選擇所需的引用)
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;
??????????? }
??????? }
??? }
}
代碼寫好了還不行,因為到時候調試的時候可能會出現 “當前上下文中不存在名稱“ConfigurationManager”?? ”(注釋 所在行),出現這種錯誤的原因是沒有引用System.Configuration 這項,注意這邊可不是代碼中的 using System.Configuration; 哦。此時就要添加System.Configuration的引用,方法同上面的引用Model層類似,在DAL層下 右鍵——添加引用——.NET?? 然后找到對應的 System.Configuration??? 確定即可。
(如果沒出現上面所說的問題當然是最好咯 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文件中添加 缺少的數據鏈接字符串
找到<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. 調試 執行
此時會提示 “無法直接啟動帶有……”的信息
此時我們只要找到 Post.aspx?? 右鍵——在瀏覽器中查看?? 即可 。??? 輸入數據——提交 ,即可到所建的數據庫中找到所輸入的數據。
一個簡單的三層架構例子 到此完成。
各層引用關系如下:
1) WEB引用 DAL,Model
2)BLL引用 DAL,Model
3)DAL引用Model (以及解決錯誤時 引用的System.Configuration )
4)Model無引用
好了既然有一個簡單的實例了,就讓我們進一步的深入其中吧,加油~~!
轉載于:https://www.cnblogs.com/xgcblog/archive/2011/05/10/2042345.html
總結
以上是生活随笔為你收集整理的一个简单的三层架构例子(.NET入门)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可以腌咸菜的菜有哪些(腌咸菜多长时间可以
- 下一篇: 儿童大便绿色怎么回事(大便绿色怎么回事)