日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
三層架構(gòu):只說明較好,不是非用不可!

三層

創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設(shè)計師團隊。

三層只是一個比較好的軟件架構(gòu),不是非用三層不可。

  • 界面層UI;
  • 數(shù)據(jù)訪問層DAL(Data Access Layer);
  • 業(yè)務(wù)邏輯層BLL(business logic layer )。實體類就是Model;對數(shù)據(jù)進行操作的代碼寫在DAL中,一般就是SQL語句,DAL只有對數(shù)據(jù)的操作,沒有“如果金額大于20則不能刪除”這樣的邏輯;BLL調(diào)用DAL中的代碼進行邏輯操作,比如“如果金額大于20則不能刪除”。SQL語句、ADO.Net的類一般只應(yīng)該出現(xiàn)在DAL中。

先對比用SQLHelper和三層實現(xiàn)Age自增的區(qū)別。

我們先做個SQLHelper自增

一、設(shè)計好winform窗體

下面我們直接添加配置文件和SqlHelper

二、添加配置文件和SqlHelper

三、添加引用

四、添加配置文件

這樣的話配置文件和SqlHelper就都有了。

首先想一下,要寫之前還是要確定一下Sql語句。

五、確定Sql語句

六、VS代碼

七、SqlHelper執(zhí)行結(jié)果

#p#

接下來我們用三層實現(xiàn)年齡自動增長:

八、寫好winform窗體

按照上一題的方法添加配置文件和SplHelper并添加引用。

用三層寫必須分的清清楚楚的。

剛寫好的winform窗體就可以理解成界面層UI。當然,也可以用ASP.NET的web頁面來表現(xiàn),或者手機頁面。

還需要一個數(shù)據(jù)訪問層DAL,我們需要建個文件夾。

九、添加DAL文件夾

再建一個BLL凡是跟數(shù)據(jù)邏輯上有關(guān)系的都建在這里面。業(yè)務(wù)邏輯層BLL

十、業(yè)務(wù)邏輯層BLL

驗證數(shù)據(jù)是否存在就屬于業(yè)務(wù)邏輯。

SqlHelper跟數(shù)據(jù)庫打交道所以要把SqlHelper放到數(shù)據(jù)訪問層DAL里面。

十一、SqlHelper放到數(shù)據(jù)訪問層DAL里

接下來我要操作的是TblStudent這張表,我可能對這張表進行增刪查改各種操作。所以,我建個類,就是對TblStudent表進行的操作。它是對數(shù)據(jù)訪問層DAL,我們在TblStudent后面加個Dal。

十二、TblStudentDal類

十三、數(shù)據(jù)訪問層的代碼

再創(chuàng)建個類是業(yè)務(wù)邏輯層。

十四、業(yè)務(wù)邏輯層代碼

十五、界面層調(diào)業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層調(diào)數(shù)據(jù)訪問層

千萬不能界面層直接調(diào)數(shù)據(jù)訪問層,否則的話會造成很多的麻煩的。三層的目的就是分工明確,互不影響。

***,我們看下執(zhí)行的效果。

十六、執(zhí)行后的效果

先記?。号渲梦募呛?strong>界面層UI在一起的。等會我寫案例,給大家演示一下。

#p#

下面我們用三層校驗用戶名和密碼。

十七、設(shè)計好登錄界面

然后我們要確定Sql語句,怎么樣判斷用戶名是否存在,密碼是否正確呢?

根據(jù)用戶輸入的用戶名,找到密碼

如果找到密碼,說明用戶名存在;如果密碼不存在說明用戶名不存在。

如果找到密碼,驗證一下是否正確,就可以判斷是否登陸成功了。

 
 
 
 
  1. select     CC_AutoId,     CC_Loginpassword from T_Seats where CC_LoginId=@uid 

2.寫數(shù)據(jù)訪問層

想一下執(zhí)行完Sql語句返回的結(jié)果是什么呢?

怎么把一條記錄的多個列進行返回。

數(shù)據(jù)訪問層,返回一個對象。(需要用到Model)

十八、寫好Model

十九、寫好數(shù)據(jù)訪問層

數(shù)據(jù)訪問層,根據(jù)用戶名獲取當前用戶的基本信息。

3.寫業(yè)務(wù)邏輯層。在年齡自動增長中的業(yè)務(wù)邏輯層就是個打醬油的。

這塊的業(yè)務(wù)邏輯層就得有東西了。

如何確定業(yè)務(wù)邏輯層的方法參數(shù)與返回值,根據(jù)表現(xiàn)層(調(diào)用者)的需求來確定。

二十、寫個枚舉

二十一、寫好MD5

二十二、寫好業(yè)務(wù)邏輯層

#p#

***我們寫界面層

二十三、寫好界面層

好,看下***的執(zhí)行結(jié)果。

二十四、***顯示效果

接下來我們實現(xiàn)修改密碼的功能:

修改密碼和我們ADO寫過的需求一模一樣。修改密碼的按鈕一開始是被禁用的。當成功之后,把登錄的id記下來,修改密碼按鈕可用。當點它的時候再彈出一個窗口來,這個窗口是用來修改密碼的。

二十五、寫好***個窗體

二十六、寫好第二個窗體

想想怎么實現(xiàn)這個功能?

登錄成功以后啟動修改密碼按鈕,記住用戶的id,得寫個靜態(tài)類。那么這個類寫入哪一層呢?接下來就該確定下Sql語句,首先驗證下輸入新密碼是否正確(與Sql無關(guān)),驗證舊密碼時與Sql有關(guān)。

在做這個功能之前我們再看下三層的具體寫法。

  • UI → 表現(xiàn)層,數(shù)據(jù)的采集,與數(shù)據(jù)的展示。
  • Bll → 業(yè)務(wù)邏輯層,與業(yè)務(wù)相關(guān)的所有邏輯判斷與處理。
  • Dal → 數(shù)據(jù)訪問層,只是操作數(shù)據(jù)庫的操作,把sql語句執(zhí)行,返回相應(yīng)的結(jié)果。(一般不建議做任何邏輯處理。)

Model

像上題中判斷文本框是否為空,不能輸入特殊的符號等要放在業(yè)務(wù)邏輯層。判斷的是取出的數(shù)據(jù)是不是為空,不是文本框本身不是為空。

寫在界面層也行,但是我現(xiàn)在要把wins窗體換成web頁面,界面層中的判斷還得再寫一遍。要是寫在業(yè)務(wù)邏輯層的話,就只寫界面層的代碼就行了。

像注冊郵箱的判斷都是JS的功勞,不是業(yè)務(wù)邏輯層的問題。

二十七、JS判斷

二十八、界面層邏輯

靜態(tài)類在表現(xiàn)層

二十九、把Id從業(yè)務(wù)邏輯層傳出來

三十、界面層代碼

運行看下現(xiàn)在的效果。這樣做的好處是,不要等都寫完再調(diào)試。誰都不是神,這樣分步寫,容易找出自己寫的代碼的錯誤。

三十一、顯示***部分成果

修改密碼操作首先是要確定Sql語句執(zhí)行過程,思路:兩次輸入的新密碼是否一致,舊密碼是否正確,然后修改密碼。判斷一致不需要Sql語句,判斷舊密碼是否正確需要我們寫Sql語句。修改密碼也要寫Sql語句。

1.確定舊密碼是否正確的Sql語句

 
 
 
 
  1. autoId,oldpwd  
  2.  
  3. "select count(*) from T_Seats where cc_autoId=@autoid and cc_loginPassword=@pwd" 

下面我們寫數(shù)據(jù)訪問層,由于還是操作那張表,不需要新建一個類。

三十二、數(shù)據(jù)訪問層代碼

修改密碼的操作也是一條Sql語句,

三十三、數(shù)據(jù)訪問層-修改密碼代碼

#p#

好了數(shù)據(jù)訪問層中的代碼寫完了,現(xiàn)在我們開始寫業(yè)務(wù)邏輯層中的代碼。

三十四、業(yè)務(wù)邏輯層用到的枚舉

三十五、業(yè)務(wù)邏輯層中的代碼

三十六、三層架構(gòu)圖

三十七、兩個案例的流程圖


當前文章:三層架構(gòu):只說明較好,不是非用不可!
文章位置:http://www.dlmjj.cn/article/dpojhoo.html