999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ASP.NET三層構架解析

2016-08-06 09:15:08于海霞王昊
農業科技與裝備 2016年3期

于海霞 王昊

摘要:在解析ASP.NET三層構架具體概念的基礎上,通過實例介紹ASP.NET三層構架的具體應用及各層的主要功能,為初學者更加了解ASP.NET三層構架提供理論參考。

關鍵詞:ASP.NET;表示層;業務邏輯層;數據訪問層

中圖分類號:TP311 文獻標識碼:A 文章編號:1674-1161(2016)03-0038-02

1 ASP.NET三層構架概述

ASP.NET三層構架分別是表示層、業務邏輯層和數據訪問層。表示層(USL)以WEB,WINFORM方式表示。如果邏輯層相當強大和完善,無論表現層如何定義和更改,邏輯層都能提供完善的服務。業務邏輯層(BLL)主要是針對具體問題的操作,也可以理解成對數據層操作,對數據業務進行邏輯處理。如果說數據層是積木,則邏輯層就是對積木進行搭建。數據訪問層(DAL)主要是原始數據(數據庫或者文本文件等存放數據形式)操作層,而不是指原始數據,為業務邏輯層或表示層提供數據服務。

簡單的三層結構程序一般包括DAL,BLL,WEB,Model幾個項目,它們的相互引用關系為:WEB引用BLL,Model;BLL引用DAL,Model;DAL引用Model;Model無引用。

為使用戶實現簡單管理,應先建立一個空白解決方案,然后添加如下項目及文:1) 添加ASP..NET Web Application項目,命名為UI,新建Web Form類型文件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。

2 文件在各層的應用方法

2.1 User.aspx文件和User.aspx.cs文件都屬于表現層

User.aspx更容易理解,因為它就是顯示頁面。一般情況下,User.aspx.cs不應在表現層,而應該屬于業務邏輯層。但如果不進行具體分層,User.aspx.cs處理業務歸屬邏輯層乃至操作數據庫都可以;但如果進行分層,則應在分層結構中,User.aspx.cs只會處置與顯示有關的部分,其它內容不應觸及。

若要實現用列表方式顯示用戶的功能,則提取信息工作由BLL完成。UI(本例中是User.aspx.cs)調用BLL得到UserInfo后,通過代碼綁定到User.aspx數據控件上,實現列表表現。在此過程中,User.aspx.cs對UI不起主要作用,只是用來傳遞數據。由于現實編碼大多采用此方法實現,因此感覺User.aspx.cs不應該屬于UI,而是應該并入BLL負責邏輯處理。這就提出一個新要求,在每個用戶前面加一個相應圖標,直接表示出用戶性別,其中不滿18歲的用戶用兒童圖標表示。這個需求的實現,需要User.aspx.cs來完成。

2.2 NewBLL.cs添加方式

public IList GetUsers()public UserInfo GetUser(int UserId):返回指定用戶的具體信息public bool AddUser(UserInfo User):新增用戶信息public bool ChangeUser(UserInfo User):更新用戶信息public void RemoveUser(int UserId):移除用戶信息后,此文件屬于營業邏輯層,專門用來處置與營業邏輯有關的操縱。

有很多人把表示層傳過來的數據轉發到數據層,說明項目較為簡單或項目本身沒有與業務緊密結合,導致業務層沒有操作,只起到轉發作用。但這不代表營業層無關緊要,隨著項目增大或業務關系復雜化,業務層的作用將凸顯。此外,很多人容易把數據操作代碼劃分到業務層,并且把數據庫作為數據訪問層,造成錯誤。例如,有些人覺得BLL層意義不大,將DAL的數據提上來處未作任何處理就轉發給UI。BLL層SelectUser(UserInfo userInfo)根據傳入的username或email得到用戶詳細信息;IsExist(UserInfo userInfo)判斷指定的username或email是否存在;然后,DAL相應提供方法供BLL調用SelectUser(UserInfo userInfo)IsExist(UserInfo userInfo),這樣BLL確實只起傳遞作用。但如果這樣做,BLL.IsExist(Userinfo userinfo) { UerInfo user = DAL.SelectUser(User);return (userInfo.Id != null); },DAL無法實現IsExist()方法,BLL中有邏輯處理代碼。

2.3 UserModel.cs實體

Model在三層架構中的位置和int,string等變量一樣,只用于數據存儲,但它存儲比較復雜的數據。所以,若項目中都是比較簡單的對象,則不用model,直接傳遞參數也可以做三層架構。

現舉例說明model在各層參數傳遞中的作用。在各層間傳遞參數時,可以設置為AddUser(userId,userName,userPassword,…,),也可以設置為AddUser(userInfo),但第二種方法更好。

應用model和普通變量時,SelectUser(int UserId)SelectUserByName(string username)SelectUserByName(string username,string password)SelectUserByEmail(string email)SelectUserByEmail(string email,string password),可以概括為SelectUser(userId) SelectUser(user)。這里用user的Model工具包括username,password,email這3個參數的4種組合模式。UserId也可以合并到user中,但項目中別的BLL都實現id參數接口,故也留下這項。

傳入userInfo的處理,需要依照前后次序用詳細代碼決定。UserDALcs public IList SelectUsers():返回全部的用戶信息列表public UserInfo SelectUser(int UserId):返回指定用戶的信息 public bool InsertUser(UserInfo User):新增用戶信息public bool UpdateUser(UserInfo User):更新用戶信息public void DeleteUser(int UserId):移除用戶信息 。

許多人對數據訪問層比較迷糊:有一部分人不清楚定義,認為數據庫是訪問層,其實DAL是數據訪問層,而不是數據存儲層,故數據庫不是這一層的;也有人把SQLHelper(或其同類作用組件)作為數據訪問層。SQLHelper的作用是削減重復性編碼,提高編碼效率,所以在注重效率或利用非數據庫數據源時,可以拋棄SQLHelper。和數據源操作相對應的代碼,屬于數據訪問層。

此外,能夠另一個判斷三層架構是否標準的方法就是,改變三層架構中任何一層時,是否會影響其它兩層。例如:把項目從C/S改成B/S(或相反),這樣除UI之外,BLL與DAL都不需要改變。

主站蜘蛛池模板: 青草娱乐极品免费视频| 国内毛片视频| 国产日韩欧美黄色片免费观看| 久久久国产精品无码专区| 国产一级毛片高清完整视频版| 日本成人福利视频| 久久人搡人人玩人妻精品| 国产91九色在线播放| 午夜a级毛片| 四虎永久在线精品影院| 日韩国产另类| 久久久精品无码一区二区三区| www欧美在线观看| 一本二本三本不卡无码| 欧美翘臀一区二区三区| 看你懂的巨臀中文字幕一区二区| 日本在线国产| 日韩精品毛片人妻AV不卡| 日韩午夜伦| 亚洲精品欧美重口| 日韩免费毛片| 国产黑人在线| 亚洲天堂自拍| 亚洲天堂伊人| 日韩精品一区二区三区大桥未久| 亚洲狠狠婷婷综合久久久久| 又黄又湿又爽的视频| 91精品啪在线观看国产| 青青久久91| 特级欧美视频aaaaaa| 精品偷拍一区二区| 久久中文字幕不卡一二区| 成人欧美在线观看| 精品色综合| 色综合成人| 亚洲欧洲日产无码AV| 视频二区欧美| 国产成人精品18| 欧美成人一级| 一级在线毛片| 无码中文字幕加勒比高清| 日韩精品无码一级毛片免费| 高清无码一本到东京热| 一级成人a做片免费| 亚洲天堂福利视频| 国产区网址| 亚洲AⅤ无码日韩AV无码网站| 国产极品粉嫩小泬免费看| 欧美一级一级做性视频| 经典三级久久| 国产美女叼嘿视频免费看| 亚洲人成网7777777国产| 欧美翘臀一区二区三区| 亚洲日韩精品欧美中文字幕| 91久久偷偷做嫩草影院精品| 亚洲婷婷在线视频| 综合社区亚洲熟妇p| 亚洲全网成人资源在线观看| 中文字幕亚洲无线码一区女同| 亚洲综合专区| 成人夜夜嗨| 亚洲Aⅴ无码专区在线观看q| 91免费片| 激情五月婷婷综合网| 成人在线天堂| 青青草原国产| 91久久国产综合精品女同我| 亚洲无限乱码一二三四区| 又黄又湿又爽的视频| 久久亚洲日本不卡一区二区| 国产乱人激情H在线观看| 超清无码一区二区三区| 中文无码精品A∨在线观看不卡| 久久人人妻人人爽人人卡片av| 精品久久综合1区2区3区激情| 色综合久久综合网| 国产视频 第一页| 欧美在线观看不卡| 成人在线综合| 久久综合伊人77777| 啦啦啦网站在线观看a毛片| 亚洲a级在线观看|