• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    大型應(yīng)用軟件的多層體系框架的設(shè)計與實現(xiàn)*

    2013-07-31 08:27:08丁純立
    湖北科技學(xué)院學(xué)報 2013年2期
    關(guān)鍵詞:用戶界面控件頁面

    丁純立

    (福建信息職業(yè)技術(shù)學(xué)院,福建 福州 350003)

    一、引 言

    隨著企業(yè)對信息化產(chǎn)品的依賴越來越強,相關(guān)的軟件產(chǎn)品的功能也越來越強大,軟件結(jié)構(gòu)越來越復(fù)雜,對于大型復(fù)雜的軟件系統(tǒng)來說,開發(fā)、維護成本高、重復(fù)開發(fā)率高、開發(fā)效率低越來越困擾著軟件開發(fā)者,尤其在進行團隊開發(fā)時情況更是嚴重。在此背景下,人們認識到對總體的系統(tǒng)結(jié)構(gòu)設(shè)計比起對計算的算法和數(shù)據(jù)結(jié)構(gòu)的選擇已經(jīng)變得更加重要。

    為了克服上述問題,人們總結(jié)程序開發(fā)的經(jīng)驗,提出采用分層的方式進行處理,在分層軟件框架設(shè)計中最成熟的就是三層架構(gòu)的分層方案,即把系統(tǒng)從應(yīng)用邏輯上對其進行抽象細分用戶界面層(UI),業(yè)務(wù)邏輯層(BLL),數(shù)據(jù)訪問層(DAL)三個層次,同時再加上共用實體類和一些通用輔助類,如數(shù)據(jù)庫訪問類、事務(wù)處理類等。以上的設(shè)計提高了軟件代碼的復(fù)用質(zhì)量,但還存在許多問題,如缺乏安全管理,缺乏用戶登錄日志管理,各層之間的耦合度不能讓人滿意;在數(shù)據(jù)訪問層還是存在冗余代碼,工作重復(fù)現(xiàn)象,因此必須對三層架構(gòu)進行有效擴充才能滿足用戶需求。

    文中將結(jié)合.NET平臺所提供的相關(guān)技術(shù),構(gòu)建出一個基于三層架構(gòu)設(shè)計思想、面向?qū)ο蟆⒖蓮?fù)用的信息系統(tǒng)軟件開發(fā)框架,下面進行具體分析。

    二、設(shè)計與實現(xiàn)

    1.用戶界面層:直接和用戶進行交互,把數(shù)據(jù)內(nèi)容呈現(xiàn)給用戶或接收用戶輸入的數(shù)據(jù)的部分。在一般的分層架構(gòu)解決方案中,表示層的設(shè)計是根據(jù)用戶所選的不同控件,將實體類的值綁定到對應(yīng)控件的屬性上,以完成數(shù)據(jù)的自動獲得與顯示。這種方法的缺點是,大型應(yīng)用程序都有非常多的頁面,對每個頁面進行控件與實體類屬性的對應(yīng),代碼量大且重復(fù)率高,隨著需求的變化,調(diào)整就更加繁瑣,為了解決上述問題,框架將用戶界面層分成了UI和UI控制邏輯層,在UI層設(shè)計了界面頁面的基類PageBase.cs,系統(tǒng)中的每個UI界面類都從PageBase.cs繼承,在 PageBase.cs中,定義了 ErrorMsg出錯提示,ErrorState出錯狀態(tài),ActionPage動作頁面,Action執(zhí)行動作等公共變量,讓每一個表示層頁面的操作與邏輯層的操作都有返回信息與狀態(tài),這樣不僅可以更好的控制和判斷程序,同時通過記錄每個頁面的公共變量值還可以實現(xiàn)應(yīng)用程序的異常管理,用戶登錄日志管理等功能,這些功能也是一個成功的框架中必不可少的重要組成部分。在UI控制邏輯層設(shè)計了一個公共類DORM.CS,用以將web頁面控件的值自動賦值到哈希表中,主要的設(shè)計思路是,通過獲取頁面上以“UI_”這個命名的控件,取相應(yīng)的控件名和值,分別保存在哈希表里面對應(yīng)的KEY、values里面,然后返回哈希表,以此來解決繁瑣的頁面控件與實體類屬性對應(yīng)操作的問題。

    2.業(yè)務(wù)邏輯層:主要是處理業(yè)務(wù)方面的邏輯。在這一層中,框架將BLL層細分為業(yè)務(wù)邏輯接口層和業(yè)務(wù)邏輯實現(xiàn)層,在業(yè)務(wù)邏輯接口層抽象出了用戶界面層所需要用到的功能,并將這些接口統(tǒng)一放在DAO_Interface接口文件中,主要接口如圖1所示

    圖1 業(yè)務(wù)邏輯接口

    這一層可以讓團隊成員獨立開發(fā)而減少相互間的依賴性。就是說業(yè)務(wù)邏輯實現(xiàn)層里還沒寫實現(xiàn)過程的時候,項目組的其它成員,可以先調(diào)用而不用管它是怎么實現(xiàn)的,從而提高協(xié)同效率。業(yè)務(wù)邏輯實現(xiàn)層繼承業(yè)務(wù)邏輯接口層,然后根據(jù)具體不同的要求來實現(xiàn)。

    3.數(shù)據(jù)訪問層:

    這一層用于實現(xiàn)信息系統(tǒng)對數(shù)據(jù)庫的操作,完成業(yè)務(wù)流程對數(shù)據(jù)庫中數(shù)據(jù)的插入、更新等操作。在這一層中,框架封裝了所有BLL層需要用到的數(shù)據(jù)庫操作,并將其放入DALCommon類文件,以保證數(shù)據(jù)訪問層只有單一訪問接口,減少各層之間的耦合性。

    在傳統(tǒng)的數(shù)據(jù)訪問層中,一般采用輔助類,如SqlHelper通過一組靜態(tài)的重載方法來封裝數(shù)據(jù)訪問功能,開發(fā)時可以通過調(diào)用輔助類的靜態(tài)方法來對數(shù)據(jù)庫進行操作,這種方法雖然解決了部分代碼復(fù)用問題,但還是存在當需求變化時,需對一系列相關(guān)模塊進行修改的問題,而且在團隊開發(fā)中極易出現(xiàn)開發(fā)代碼重復(fù)現(xiàn)象,為了解決上述問題,在本框架的數(shù)據(jù)訪問層引入Ibatis開源框架。IBatis.net具有完全由開發(fā)者掌控Mapping規(guī)則?;赬ML配置,開發(fā)者可掌控底層,傳入?yún)?shù)支持 Hashtable、EntityObje,Dictionary等.可將離散參數(shù)封裝為單一參數(shù)傳入等優(yōu)點;這樣當需求變化時,只需修改相應(yīng)Xml文件中的SQl語句即可,其它部分都可以不用改動,以保證接口穩(wěn)定度。

    IBatis DataMapper的工作原理如圖2所述。

    圖2 Ibatis實現(xiàn)原理

    properties.config:數(shù)據(jù)庫配置信息(包含數(shù)據(jù)名、用戶名、密碼、地址)

    proivders.config數(shù)據(jù)庫驅(qū)動(包含.Net所有的數(shù)據(jù)庫驅(qū)動)

    Maps文件夾:包含整個數(shù)據(jù)庫各表和各模型的關(guān)系.(主要是包含SQL語句)

    Model文件夾:包含各個表的模型

    在DALCommon類文件中數(shù)據(jù)訪問層通過Map ID和Hashtable對進行執(zhí)行操作,在本層中,日志記錄采用Log4net技術(shù),下面通過查詢操作來展示軟件框架代碼的具體實現(xiàn)。

    public DataSet Select(Hashtable hTable,ref string errMsg,ref bool errState,ref string ActionPage,string MapID)//帶參數(shù)的查詢

    最后形成的框架如圖3所示:

    圖3 軟件框架結(jié)構(gòu)圖

    三、應(yīng)用和總結(jié)

    在大型應(yīng)用軟件中一個面向?qū)ο蟮摹⒖蓮?fù)用的信息系統(tǒng)軟件框架已經(jīng)成為一個軟件開發(fā)團隊的核心物質(zhì)資本,而且更重要的是軟件框架將是一個系統(tǒng)的開發(fā)周期、開發(fā)成本及軟件維護的核心影響因子。本文所設(shè)計的框架具有以下特點:(1)在用戶界面層使用UI控制邏輯層,解決對頁面控件的煩瑣的操作,并且配合業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層的操作;(2)使用業(yè)務(wù)邏輯接口層和業(yè)務(wù)邏輯實現(xiàn)層,來實現(xiàn)項目各模塊的獨立開發(fā)和共享功能;(3)使用IBatis技術(shù)作為數(shù)據(jù)訪問層解決了項目各模塊對數(shù)據(jù)頻繁操作及維護困難的問題;(4)通過記錄每個頁面的公共變量值以實現(xiàn)應(yīng)用程序的異常管理,用戶登錄日志管理等功能。在有關(guān)學(xué)校的信息管理系統(tǒng)中得到成功應(yīng)用,實踐證明,應(yīng)用本框架省略了很多基礎(chǔ)性的工作,開發(fā)周期大大縮短,同時大大降低了各層之間耦合度和減少了軟件的冗余代碼,極大的提高了軟件生產(chǎn)率。

    猜你喜歡
    用戶界面控件頁面
    大狗熊在睡覺
    自然用戶界面在智能家居系統(tǒng)中的應(yīng)用路徑創(chuàng)新研究:生成式人工智能技術(shù)的調(diào)節(jié)作用
    包裝工程(2023年16期)2023-08-25 11:40:58
    刷新生活的頁面
    基于CiteSpace的國外用戶界面體驗圖譜量化分析
    關(guān)于.net控件數(shù)組的探討
    軟件(2018年7期)2018-08-13 09:44:42
    UI用戶界面色彩設(shè)計研究
    流行色(2017年12期)2017-10-26 03:08:44
    基于B/S的跨平臺用戶界面可配置算法研究
    就這樣玩會VBA中常見的自定義控件
    電腦迷(2012年24期)2012-04-29 00:44:03
    同一Word文檔 縱橫頁面并存
    淺析ASP.NET頁面導(dǎo)航技術(shù)
    莱阳市| 太仆寺旗| 任丘市| 东辽县| 滦平县| 仲巴县| 新巴尔虎右旗| 于都县| 沁水县| 灵川县| 都昌县| 沧源| 县级市| 健康| 闻喜县| 林芝县| 临沭县| 玛纳斯县| 珲春市| 曲靖市| 山阳县| 新宁县| 资源县| 丰宁| 绍兴市| 同江市| 綦江县| 福贡县| 当阳市| 凉山| 佛学| 齐齐哈尔市| 师宗县| 铜川市| 新沂市| 印江| 博罗县| 南昌市| 新安县| 永年县| 南宫市|