亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ASP.NET的三層架構(gòu)信息傳遞策略解析與實現(xiàn)

        2020-05-21 05:54:57歐陽元東
        電腦知識與技術(shù) 2020年9期
        關(guān)鍵詞:三層架構(gòu)信息傳遞

        歐陽元東

        摘要:三層架構(gòu)開發(fā)模式不易理解,為解決學(xué)生掌握困難問題,筆者通過類比法講授三層架構(gòu)相關(guān)知識,把三層架構(gòu)的用戶界面層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層三層類比成飯店的用戶點菜,服務(wù)員處理菜單,廚師煮飯菜來講授三層架構(gòu)理論知識,通過在VisuaIStudi02013平臺下創(chuàng)建實例實現(xiàn)基于三層架構(gòu)間信息傳遞完成用戶登錄功能來講授三層軟件開發(fā)技能技術(shù)。

        關(guān)鍵詞:三層架構(gòu);信息傳遞;ASP.NET

        中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A

        文章編號:1009-3044(2020)09-0079-02

        1 問題

        目前,MVC是軟件開發(fā)使用的一種時髦框架,是web應(yīng)用程序的一種時尚開發(fā)方式,它將Web應(yīng)用程序大致分割成3個主要單元,用戶界面層,業(yè)務(wù)邏輯層,數(shù)據(jù)訪問層。但是,筆者在講授ASP.NET課程的MVC開發(fā)模式時,學(xué)生問我,老師能講解一下,在MVC模式中,信息是如何從數(shù)據(jù)庫被傳送到網(wǎng)頁,而網(wǎng)頁信息(如學(xué)生注冊信息)如何傳遞并寫人數(shù)據(jù)庫中的?為了解決學(xué)生的提問,我決定拋開MVC深奧理論知識的講解方式,而是從教學(xué)角度,采用類比方式,立足中職生的基礎(chǔ),通過手動編程實現(xiàn)三層架構(gòu)間的信息傳遞,盡量讓學(xué)生比較輕易理解三層架構(gòu)的設(shè)計思想,從而讓學(xué)生更好地掌握MVC的程序開發(fā)模式。

        2 三層架構(gòu)思想的理解

        三層架構(gòu)就是在系統(tǒng)開發(fā)過程中根據(jù)代碼的不同功能,分別對進(jìn)行數(shù)據(jù)信息存儲與類對象調(diào)用,對于開發(fā)復(fù)雜軟件系統(tǒng)具有分工明確,條理清晰,易于調(diào)試,可擴(kuò)展性強(qiáng)的優(yōu)點。它通常分為用戶界面層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層,有時還包括實體層和公共通用層。

        數(shù)據(jù)訪問層,一般在該層實現(xiàn)基本的數(shù)據(jù)庫增刪改查的方法,不會出現(xiàn)在業(yè)務(wù)邏輯代碼。也就是說不面向業(yè)務(wù)處理。它主要實現(xiàn)soL及SQL組合的類封裝。

        業(yè)務(wù)邏輯層,編寫業(yè)務(wù)邏輯代碼,根據(jù)用戶的需求決定如何調(diào)用數(shù)據(jù)訪問層的方法,不能出現(xiàn)任何soL語句及數(shù)據(jù)訪問代碼。它功能是處理業(yè)務(wù)邏輯,傳遞數(shù)據(jù)信息。它可以調(diào)用數(shù)據(jù)訪問層中類的方法,也可以調(diào)用用戶界面層類的方法。它是溝通數(shù)據(jù)訪問層與用戶界面層之間的橋梁。

        用戶界面層,編寫獲取用戶操作信息、數(shù)據(jù)驗證、數(shù)據(jù)展示代碼。只能調(diào)用業(yè)務(wù)邏輯層的類方法,不能調(diào)用數(shù)據(jù)訪問層類的方法。該層封裝的對象向業(yè)務(wù)邏輯層傳遞,解析對象后展示數(shù)據(jù)信息。

        根據(jù)系統(tǒng)的需求,往往需要開發(fā)公共通用層,該層一般是系統(tǒng)通用的輔助類和工具方法,如數(shù)據(jù)庫訪問工具方法,數(shù)據(jù)校驗方法,緩存處理、加密處理方法。

        實體層是面向每個數(shù)據(jù)庫的每個表編寫的類,類中往往只有對應(yīng)數(shù)據(jù)表中的字段的類屬性。一般是多少個數(shù)據(jù)表就對應(yīng)多少個實體類。

        三層架構(gòu)類似于飯店工作流程,顧客跟前臺服務(wù)員進(jìn)行點菜(即表現(xiàn)層與業(yè)務(wù)邏輯層的交互),服務(wù)員把菜單提交給廚師(即業(yè)務(wù)邏輯層與數(shù)據(jù)訪問層的交互)。廚師根據(jù)菜單去取食材并做菜(類似于數(shù)據(jù)訪問層讀寫數(shù)據(jù)庫),這中間顧客不與廚師直接發(fā)生關(guān)系。實體層類似于廚房做好的飯菜,會跟顧客、服務(wù)員、廚師和食物原材料發(fā)生關(guān)系。

        3 用戶登錄功能的ASP.NET三層架構(gòu)手動編程實現(xiàn)

        筆者手動編程實現(xiàn)用戶登錄功能來體驗ASP.NET三層架構(gòu)優(yōu)越和魅力。

        3.1 數(shù)據(jù)庫創(chuàng)建

        在sql server中創(chuàng)建userLoginDB。數(shù)據(jù)表userLoginTb有三個字段,分別是id,int類型,自動增長,主鍵。userName,nchar(20)類型,存放用戶姓名。Pwd,nchar(20)類型,存放用戶密碼。此操作類似于飯店準(zhǔn)備食物原材料。

        3.2 創(chuàng)建項目ModuleDemo.搭建三層基本結(jié)構(gòu)

        打開Visual Studi0 2010開發(fā)平臺,新建解決方案Modul-eDemo,同時添加數(shù)據(jù)訪問層類庫(存放類的文件夾)ModuleDe-moDAL。右擊解決方案ModuleDemo,添加業(yè)務(wù)邏輯層類庫ModuleDemoBLL。右擊解決方案ModuleDemo,添加用戶界面層ASP.NET空web應(yīng)用程序ModuleDemoUI。右擊解決方案ModuleDemo.添加實體層Moduel。右擊解決方案ModuleDemo,添加公共通用層Common。

        3.3 在Common層中添加公共數(shù)據(jù)訪問工具類

        把工具類SqlHelper復(fù)制到Common層中,并添加引用Sys-tem.Configuration和添加命名空間using System.Configuration,SqlHelper所在命名空間。最后在解決方案里找到Web.Config文件,增加連接數(shù)據(jù)庫字符串。

        3.4 在Model層中添加表實體類

        Model用于存放實體類的文件夾。在實際開發(fā)中有大量數(shù)據(jù)表,每個數(shù)據(jù)表需要進(jìn)行增刪改查操作,每個實體類對接著一個數(shù)據(jù)表,因此需要創(chuàng)建多個實體類,這些實體類放在數(shù)據(jù)庫實體模型層里。

        在Model層里添加“userLogin.cs”類文件,該類對接數(shù)據(jù)庫表userLoginTb,叫表實體類。實體類往往作為數(shù)據(jù)容器,在層間傳遞。實體類需要加public修飾符。

        3.5 實現(xiàn)數(shù)據(jù)訪問層功能

        添加ModuleDemoDAL層的引用,點擊添加引用,右側(cè)選擇解決方案,再選擇到Model。還要在ModuleDemoDAL層的類文件中添加相應(yīng)類所在的命名空間( Modle)。

        在ModuleDemoDAL中創(chuàng)建userLoginDal.cs類文件,為該類添加方法SelectUserLogin()方法。方法的關(guān)鍵代碼如下。

        string sql=”select*from UserLogin where serName=@userName";

        SqIParameter para= new SqlParameter(“@userName”, User-Name);

        SqlDataReader reader= SqlHelper.ExecuteReader(sql, pa-ra》

        如果reader.Read0結(jié)果為TRUE,則把結(jié)果取出來放在user對象中。既把ID號保存在user. ID中,用戶賬號保存在user.UserName中。

        SelectUserLogin()方法實現(xiàn)根據(jù)從用戶界面層的用戶姓名數(shù)據(jù)查詢對應(yīng)的數(shù)據(jù),把查詢到的數(shù)據(jù)保存在實體類對象中,返回值是實體對象類。

        3.5 實現(xiàn)業(yè)務(wù)邏輯層功能

        調(diào)用ModuleDemoDAL層中SelectUserLogin()方法獲取到數(shù)據(jù)庫中的數(shù)據(jù)后,接下來就可以在ModuleDemoBLL業(yè)務(wù)邏輯層來調(diào)用數(shù)據(jù)訪問層返回的數(shù)據(jù),并返回給用戶界面層。業(yè)務(wù)邏輯層要對數(shù)據(jù)訪問層進(jìn)行訪問,因此要在業(yè)務(wù)邏輯層添加對數(shù)據(jù)訪問層的引用,還要添加對Model層的引用。在邏輯業(yè)務(wù)層中添加類userLoginBIl。

        創(chuàng)建業(yè)務(wù)邏輯類:public class UserLoginBIl

        實例化數(shù)據(jù)訪問類:private UserLoginDal dal= new User-LoginDal0;

        創(chuàng)建方法:public UserLogin GetUserLogin(string UserName)返回值為

        return daI.SelectUserLogin(UserName).

        3.6 實現(xiàn)用戶界面層功能

        在用戶界面層ModuleDemoUI層中添加web窗體userLogin.aspx,設(shè)置好基本布局,css樣式。用戶界面層調(diào)用業(yè)務(wù)邏輯層,因此要先添加對業(yè)務(wù)層和實體模型層的引用及引入相應(yīng)的命名空間。

        在登錄按鈕中添加Client事件。事件關(guān)鍵代碼主要是完成界面用戶數(shù)據(jù)與業(yè)務(wù)邏輯層傳過來的數(shù)據(jù)比較,比較結(jié)果為TRUE這進(jìn)入下一個Web界面。否則重新刷新userLogin.aspx。實例化業(yè)務(wù)邏輯層的類,用來傳遞數(shù)據(jù)訪問層讀取的用戶姓名和用戶密碼的信息。在登錄點擊事件中,先接收用戶姓名,用戶密碼接著判斷用戶姓名和用戶密碼是否為空。若為空,則提示用戶名密碼不為空。然后判斷用戶名和密碼是否與業(yè)務(wù)邏輯層傳過來的用戶名密碼是否一致。是則保存用戶名保存在客戶端的Session中同時跳轉(zhuǎn)到下一個Web頁面。

        public UserLoginBlI bll= new UserLoginBIIO;

        string userName= txtUserName.Text.Trim0;

        string pwd= txtP,^rd.Text.Trim0;

        if (String.IsNullOrEmpty(userName)ll String.IsNullOrEmpty(pwd))

        Response.Write(”alert('用戶名密碼不為空1 ')”);

        elsef userLogin user= blI.GetUserLogin(userName);

        if (user!= null)( if (user.Pwd==pwd){

        Session[”UserName”]=user.UserName;

        Re-sponse. Redirect(”登錄成果后的web頁?UserName=”+user-Name);}

        把用戶界面層UI設(shè)置為啟動項,并設(shè)置相關(guān)頁為起始頁,最后右擊userLogin.aspx頁面,選擇在瀏覽器中查看。

        4 結(jié)束語

        通過上述實例可以讓我們知道,三層架構(gòu)中,層與層之間是層層調(diào)用的關(guān)系,用戶界面層調(diào)用業(yè)務(wù)邏輯層,通過業(yè)務(wù)邏輯層調(diào)用數(shù)據(jù)訪問層的方法返回數(shù)據(jù),在數(shù)據(jù)訪問層中從數(shù)據(jù)源獲取數(shù)據(jù)并封裝到實體類的對象中,依次將對象返回到用戶表現(xiàn)層。本實例具有普遍性,只需要在三層中任意增加類就能實現(xiàn)不同的功能,比如用戶信息修改,用戶信息刪除,用戶信息增加,用戶信息查詢等功能。當(dāng)然,筆者通過類比的方法,學(xué)生比較容易地理解了三層架構(gòu)理論知識,也為教師提供了一種可參考的講授課程思路。

        參考文獻(xiàn):

        [1]郭宏錦.基于B/S架構(gòu)的教師信息管理系統(tǒng)設(shè)計與實現(xiàn)[Jl-電腦編程技巧與維護(hù),2016(14):74-76.

        [2]陳煥彬.淺談.NET三層架構(gòu)在系統(tǒng)開發(fā)中的應(yīng)用[J].電腦與信息技術(shù),2016,24(5):45-47.

        [3]徐照興.ASP.NET就業(yè)實例教程[EB/OL].https://edu.csdn.net/combo/detail/721.

        【通聯(lián)編輯:光文玲】

        猜你喜歡
        三層架構(gòu)信息傳遞
        計算機(jī)網(wǎng)絡(luò)安全中存在的問題及防范對策
        基于“三層架構(gòu)”理論的教學(xué)設(shè)計案例分析
        新航行系統(tǒng)在空中交通管制中的運(yùn)用
        良好的信息系統(tǒng)體系結(jié)構(gòu)模式對網(wǎng)絡(luò)安全監(jiān)察與維護(hù)技術(shù)的方法的探討
        ASP.NET三層架構(gòu)體系分析與應(yīng)用
        基于SSH 的實驗室管理系統(tǒng)設(shè)計與實現(xiàn)
        新媒體視閾下青少年信息傳遞行為研究
        戲劇之家(2016年11期)2016-06-22 13:26:58
        記者在新聞采訪中溝通技巧的運(yùn)用
        亚洲色欲色欲www在线播放| 国产三级不卡一区不卡二区在线| 99国产精品久久久久久久成人热| 中文www新版资源在线| av在线色| 精品日产一区2区三区| 自拍视频在线观看首页国产| 天堂中文最新版在线中文| 无码毛片aaa在线| 日韩久久无码免费看A| 日本免费看片一区二区三区| 欧美xxxx做受欧美| 国产精品丝袜黑色高跟鞋| 亚洲一区二区三区在线观看蜜桃 | 国产精品美女久久久网站三级 | 91九色极品探花内射| 久久久久国产精品| 亚洲成a人片在线观看无码| 国产91在线|亚洲| 久久精品熟女亚洲av香蕉 | 国产在线精品一区二区| 国产高潮流白浆免费观看不卡| 久久婷婷综合色一区二区| 精品国产乱码久久久久久郑州公司| 亚洲 欧美 影音先锋| 日本一区二区三区啪啪| 国产极品大奶在线视频| 97精品国产97久久久久久免费| 中日韩欧美在线观看| 亚洲成人免费久久av| 久久久精品中文字幕麻豆发布| 精品无码中文视频在线观看| 国产精品女同久久免费观看| 东风日产车是不是国产的| 最新中文字幕av无码不卡| 午夜一级成人| 偷拍熟女露出喷水在线91| 成人麻豆日韩在无码视频| 免费特级黄毛片| 91麻豆精品一区二区三区| 亚洲精品国产精品乱码视色|