日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#学习之三层架构实例

發布時間:2025/6/15 C# 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#学习之三层架构实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如有雷同,不勝榮欣,如轉載,請注明

一、三層架構實例

首先學習三層架構模式-——三層架構實現的留言和查看留言

下面是本人學習三層架構的一點感想和理解,肯定有許多不足的地方,歡迎大家斧正,謝謝,廢話到此,下面咱們開始三層架構

大家都知道三層架構分為:1,表示層(UI)2,業務邏輯層(BLL)3,數據訪問層(DAL),下面咱們用一個簡單的實例,實戰三層架構

首先建立一個空白的解決方案,添加如下項目以及文件

1.添加一個ASP.net WebApplication項目,命名為UI,新建WebForm類型文件User.aspx(含User.aspx.cs)

2.添加ClassLibrary項目,命名為BLL,新建Class類型文件UserBLL.cs

3.添加ClassLibrary項目,命名為DAL,新建Class類型文件UserDAL.cs。添加SqlHelper引用,(這個是微軟的數據訪問類,也可以不用,直接編寫所有的數據訪問代碼。我一般用自己寫的數據訪問類DataAccessHelper)

4.添加ClassLibrary項目,命名為Model,新建Class類型文件UserModel.cs

5.添加ClassLibrary項目,命名為IDAL,新建Interface類型文件IUserDAL.cs

6.添加ClassLibrary項目,命名為ClassFactory

相信大家已經都能很清楚的看出來了,

下圖是項目實例解決方案的文件結構實例

BLL層

using?System;

using?System.Collections.Generic;

using?System.Linq;

using?System.Text;

using?Model;

using?DAL;

?

namespace?BLL

{

????public?class?UserBLL

??? {

????????UserDBdb =?new?UserDB();

????????public?bool?AddUser(UserInfouserInfo)

??????? {

????????????returndb.AddUser(userInfo);

??????? }

?

?

????????public?void?SelectUser(UserInfouserInfo)??//根據傳入的usernameemail得到用戶詳細信息

??????? {

????????????//

??????? }

?

????????public?void?IsExist(UserInfouserInfo)??//D斷指定的usernameemail是否存在

??????? {

????????????//

??????? }

??? }

}

DAL層

using?System;

using?System.Collections.Generic;

using?System.Linq;

using?System.Text;

using?Model;

using?System.Data.SqlClient;

using?System.Configuration;

using?System.Data;

?

namespace?DAL

{

????//public classUserDAL

????//{

???????

????//}

?

????public?class?UserDB

??? {

????????UserInfoui =?new?UserInfo();

????????public?IList<UserInfo>SelectUser()??//返回所有的用戶信息列表

??????? {

????????????//

????????????returnnull;

??????? }

?

????????public?UserInfo?SelectUser(intuserId)??//返回指定用戶的相關信息

??????? {

????????????//

????????????returnui;

??????? }

?

????????public?bool?AddUser(Model.UserInfouserInfo)

??????? {

????????????// stringsetting =ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

????????????stringsetting =?ConfigurationSettings.AppSettings["ConnectionString"].ToString();

????????????SqlConnectionmyconn =?new?SqlConnection(setting);

??????????? myconn.Open();

????????????SqlCommandcmd =?new?SqlCommand("insert into dbo.[user]([name]) values(@name)",myconn);

??????????? cmd.Parameters.AddWithValue("@name", userInfo.UserName);

????????????if(cmd.ExecuteNonQuery() > 0)

??????????? {

????????????????returntrue;

??????????? }

????????????else

??????????? {

????????????????returnfalse;

??????????? }

??????? }

?

????????public?boolInsertUser(UserInfo?user)??//新增用戶信息

??????? {

????????????//

????????????returnfalse;

??????? }

?

????????public?bool?UpdateUser(UserInfouser)??//更新用戶信息

??????? {

????????????//

????????????returnfalse;

??????? }

?

????????public?void?DeleteUser(intuserId)??//移除用戶信息

??????? {

????????????//

??????? }¨

??? }

}

實體類Model

using?System;

using?System.Collections.Generic;

using?System.Linq;

using?System.Text;

?

namespace?Model

{

????//?實體類實質:實體類就是在完成數據庫與實體類對應的功能,1個類是一張表,一個屬性是一個字段

????///<summary>

????///實體類,僅用于數據的存儲(復雜的數據)

????///</summary>

????//public classusermodel

????//{

????//??? //

????//}

?

????public?class?UserInfo

??? {

????????///<summary>

????????///實體類用戶信息

????????///</summary>

????????publicUserInfo() { }

?

????????privatestring?userName;

?

????????public?string?UserName

??????? {

????????????get{?return?userName; }

????????????set{ userName =?value; }

??????? }

?

????????privatestring?passWord;

?

????????public?string?PassWord

??????? {

????????????get{?return?passWord; }

????????????set{ passWord =?value; }

??????? }

?

????????public?int?sex;

?

????????privatestring?birthday;

?

????????public?string?Birthday

??????? {

????????????get{?return?birthday; }

????????????set{ birthday =?value; }

??????? }

?

????????privatestring?email;

?

????????public?string?Email

??????? {

????????????get{?return?email; }

????????????set{ email =?value; }

??????? }

?

????????privatestring?qq;

?

????????public?string?QQ

??????? {

????????????get{?return?qq; }

????????????set{ qq =?value; }

??????? }

?

????????privatestring?mobilePhone;

?

????????public?string?MobilePhone

??????? {

????????????get{?return?mobilePhone; }

????????????set{ mobilePhone =?value; }

??????? }

??? }

}

?

ClassFactory

using?System;

using?System.Collections.Generic;

using?System.Linq;

using?System.Text;

?

namespace?ClassFactory

{

????public?class?Class1

??? {

??? }

}

IDAL數據庫訪問接口類

using?System;

using?System.Collections.Generic;

using?System.Linq;

using?System.Text;

?

namespace?IDAL

{

????interface?IUserDAL

??? {

??? }

}

?

UI層

?

?

三層架構的關系

?

上述代碼中DAL主要是對數據庫中的內容的操作,在這里就是向數據庫中添加用戶。BLL則主要是調用DAL層的操作,返回DAL層添加用戶的結果(true或者false)。這樣也就是在客戶端與數據庫中加了一個中間層,使得兩層的依賴性減小。UI層則主要完成響應用戶的需求,去調用BLL層實現的adduser方法,DAL層就是實實在在做這件事情的操作。

總結

以上是生活随笔為你收集整理的C#学习之三层架构实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。