高洪濤
摘 要:.NET軟件環(huán)境融合3層架構(gòu)和復(fù)用技術(shù),成為開發(fā)分布式軟件應(yīng)用系統(tǒng)的主流。文章通過對.NET軟件3層框架思想的探析,以某員工信息管理系統(tǒng)設(shè)計為例,來介紹和實現(xiàn)各模塊功能的方法。
關(guān)鍵詞:.NET;分布式軟件;體系結(jié)構(gòu);設(shè)計應(yīng)用
從現(xiàn)代軟件復(fù)用技術(shù)、構(gòu)件化編程思想的廣泛應(yīng)用,對于現(xiàn)代管理信息系統(tǒng)的設(shè)計,更多的是通過軟件框架與業(yè)務(wù)流程,融入分布式軟件體系結(jié)構(gòu)來滿足對復(fù)雜、龐大數(shù)據(jù)的快速、高效處理。在軟件系統(tǒng)設(shè)計中,各個對象之間的相互協(xié)作來實現(xiàn)對業(yè)務(wù)流程的交互應(yīng)用,為了提升軟件設(shè)計的復(fù)用力度,從提升軟件的可靠性上,有研究者提出在領(lǐng)域框架下,將每一行代碼轉(zhuǎn)移至大力度體系結(jié)構(gòu)中,形成與應(yīng)用框架相對立的構(gòu)件,來提升編程的便捷性、靈活性水平,也增強了應(yīng)用軟件的代碼復(fù)用使用性。所以,本文結(jié)合.NET軟件基礎(chǔ)框架,介紹一種基于分布式應(yīng)用程序設(shè)計模型的企業(yè)員工信息管理系統(tǒng),來驗汪這種設(shè)計模式的科學性。
1 .NET框架及三層架構(gòu)設(shè)計思想
.NET是微軟推出的軟件設(shè)計產(chǎn)品,其能夠滿足微軟平臺的組件技術(shù)、數(shù)據(jù)庫技術(shù)。整個體系結(jié)構(gòu)以互聯(lián)網(wǎng)為基礎(chǔ),融入分布式設(shè)計思想。通常而言,對于.NET體系架構(gòu)主要包括公共語言運行庫、統(tǒng)一類庫等內(nèi)容。同時,.NET框架完全支持可擴展的標記語言( Extensible Markup Language,XML),能夠滿足Web服務(wù)應(yīng)用。當然,對于任何一個軟件開發(fā)設(shè)計項目,從提升軟件質(zhì)量上都需要相應(yīng)的支持平臺。.NET支持面向?qū)ο蠹夹g(shù),更適宜開發(fā)結(jié)構(gòu)靈活、功能強大的信息管理系統(tǒng)。比如在企業(yè)管理架構(gòu)中,企業(yè)組織之間往往以分層思想來實現(xiàn)管理應(yīng)用,而企業(yè)分層又將企業(yè)員工組織起來,圍繞企業(yè)目標來協(xié)同合作。同樣,在.NET軟件平臺設(shè)計中,也需要利用分層結(jié)構(gòu)來組織軟件框架的部署。不過,不同的分層結(jié)構(gòu),與其所對應(yīng)的設(shè)計任務(wù)具有對應(yīng)性,以求有效合理地組織相關(guān)構(gòu)件,來實現(xiàn)高效協(xié)同管理。我們從.NET 3層架構(gòu)設(shè)計基礎(chǔ)上來看,自下而上分為數(shù)據(jù)訪問層(Data Access Layer, DAL)、業(yè)務(wù)邏輯層(Business LogicLayer,BLL)和表示層。在進行軟件系統(tǒng)開發(fā)時,也會根據(jù)設(shè)計需要來設(shè)置相應(yīng)的通用輔助類及方法。如事務(wù)管理類、數(shù)據(jù)庫訪問類等,以實現(xiàn)軟件系統(tǒng)各模塊數(shù)據(jù)訪問時的相互復(fù)用需要。另外,在關(guān)于企業(yè)的信息管理系統(tǒng)軟件中,其操作對象主要為數(shù)據(jù)庫中的表、視圖等內(nèi)容,這些內(nèi)容在設(shè)計時可以根據(jù)需要將其抽象為共用實體類模塊。
2 .NET3層框架的設(shè)計與實現(xiàn)
從.NET分布式應(yīng)用軟件設(shè)計框架模型來看,其3層結(jié)構(gòu)的協(xié)作來實現(xiàn)對用戶請求的反饋。數(shù)據(jù)訪問層直接訪問底層數(shù)據(jù)庫,并對相關(guān)數(shù)據(jù)進行存儲;業(yè)務(wù)邏輯層是整個分布式軟件設(shè)計的核心,以滿足不同數(shù)據(jù)業(yè)務(wù)間的調(diào)度與管理。如可以實現(xiàn)對不同業(yè)務(wù)組件的打包,并按照業(yè)務(wù)類型進行連接數(shù)據(jù)庫與網(wǎng)絡(luò),業(yè)務(wù)邏輯層與數(shù)據(jù)庫之間通過API來實現(xiàn)通信。
2.1數(shù)據(jù)訪問層的設(shè)計
.NET 3層架構(gòu)的數(shù)據(jù)訪問層,主要是面向數(shù)據(jù)庫來完成業(yè)務(wù)邏輯層提交的各項操作任務(wù)。如對數(shù)據(jù)庫進行插入數(shù)據(jù)、刪減數(shù)據(jù)、更新數(shù)據(jù)等操作。通常,在管理信息系統(tǒng)軟件設(shè)計中,用戶通過操作界面來完成對不同業(yè)務(wù)流程的操作,而這些業(yè)務(wù)流程本身,都需要轉(zhuǎn)換到數(shù)據(jù)訪問層,以實現(xiàn)對數(shù)據(jù)庫相關(guān)數(shù)據(jù)表單的修改和操作。所以,我們通過對軟件框架數(shù)據(jù)訪問對象進行抽象處理,來實現(xiàn)數(shù)據(jù)庫的查詢、插入、修改、刪除等操作。同樣,在對不同數(shù)據(jù)表或視圖進行操作時,其需要通過軟件設(shè)計指令來完成。如在結(jié)構(gòu)化查詢語言( Structured Query Language,SQL)關(guān)系數(shù)據(jù)庫系統(tǒng)中,為了減少程序代碼編寫的繁復(fù)性,以微軟的靜態(tài)類SqHelper來進行設(shè)計。我們可以將數(shù)據(jù)訪問功能封裝在SqHelper靜態(tài)類中,利用程序指令來調(diào)用SqHelper靜態(tài)方法來完成數(shù)據(jù)庫的交互操作。如ExecuteNonQuery方法主要用于執(zhí)行不返回任何行或值的指令;對于ExecuteReader方法用于返回SqIDataReader對象,其對象包含某一指令返回的結(jié)果集;ExecuteDataset方法主要用于返回DataSet對象;ExecuteScalar方法主要返回一個值,其值為指令返回的第一行的第一列。同時,所有SqHepler靜態(tài)類指令,在執(zhí)行時都可以添加相應(yīng)的參數(shù),且需要通過SqICommand指令來完成。針對數(shù)據(jù)訪問層的查詢運算,可以根據(jù)實體類常見查詢字符串strSQL,然后調(diào)用ExecuteReader方法來進行數(shù)據(jù)查詢,將查詢結(jié)果返回。同樣,插入運算也是調(diào)用ExecuteScalar方法,來進行插入運算參數(shù)配置,并對插入的ID號返回。
2.2業(yè)務(wù)邏輯層的設(shè)計
在.NET 3層框架中,業(yè)務(wù)邏輯層主要負責不同的數(shù)據(jù)業(yè)務(wù)流程,其內(nèi)容主要與管理信息系統(tǒng)相關(guān)聯(lián),并從軟件的上下層交互邏輯處理中完成具體業(yè)務(wù)目標。由于該層數(shù)據(jù)交互與具體業(yè)務(wù)邏輯有關(guān),所以,在進行軟件設(shè)計時,可以利用通用業(yè)務(wù)接口來訪問數(shù)據(jù)訪問層。當然,對于特殊的業(yè)務(wù)流程訪問時,也可以直接對BLL層中相關(guān)類進行繼承,然后重載相關(guān)操作。業(yè)務(wù)層軟件設(shè)計時,可以根據(jù)操作表、視圖等內(nèi)容,來生成不同的表的業(yè)務(wù)層通用操作代碼。如Publicclass Purchase ApplicationBLL {Pubic static<參數(shù)>業(yè)務(wù)功能()…..Public static<參數(shù)>業(yè)務(wù)功能(n))。
2.3表示層的設(shè)計
表示層主要包括界面層和實體類。對于界面層,主要是完成人機交互,向用戶提供業(yè)務(wù)操作的相關(guān)界面和結(jié)果的展示。根據(jù)用戶所操作的不同控件,其在界面層的顯示往往通過GET或SET方法來實現(xiàn)。因此,利用界面層設(shè)計,可以對相關(guān)的數(shù)據(jù)庫操作對象進行選擇,也可以對各數(shù)據(jù)字段進行屬性設(shè)置。如利用操作界面來完成增加、刪除、修改、審核等功能。當然,在界面層設(shè)計上,可以根據(jù)業(yè)務(wù)操作菜單的變化,對應(yīng)具體的業(yè)務(wù)流程,來實現(xiàn)與業(yè)務(wù)層進行有效對接。對于實體類,主要是數(shù)據(jù)庫中抽象后的對象類。這些實體類,也是軟件設(shè)計時操作的對象實例。所以,在設(shè)計上,要根據(jù)數(shù)據(jù)庫的表、視圖等所映射的對象類,利用GET或SET方法來完成對象屬性的設(shè)置,就可以將數(shù)據(jù)庫與具體的信息管理業(yè)務(wù)建立連接。
3應(yīng)用實例開發(fā)
通過對.NET 3層框架軟件各層功能及設(shè)計要求的分析,我們可以結(jié)合某具體管理信息系統(tǒng)軟件設(shè)計項目,來通過配置數(shù)據(jù)庫,以實現(xiàn)對某企業(yè)人力資源系統(tǒng)的動態(tài)管理。
3.1分布式人力資源管理軟件設(shè)計的可行性
從現(xiàn)代企業(yè)發(fā)展來看,人力資源管理占據(jù)重要地位,而隨著企業(yè)戰(zhàn)略的推進,處于不同地域下的人力效率管理一直是難點。我們借助于NET分布式軟件設(shè)計特點,將之與企業(yè)人力資源管理相融合,來實現(xiàn)對多地域企業(yè)員工的網(wǎng)絡(luò)化管理。在分布式軟件設(shè)計模型中,數(shù)據(jù)庫統(tǒng)一用來存儲、維護員工信息,管理人員可以通過網(wǎng)絡(luò)來訪問遠程數(shù)據(jù)庫,還可以結(jié)合不同業(yè)務(wù)來管理和更新數(shù)據(jù)庫,實現(xiàn)各地域人力的協(xié)作管理。當然,借助于分布式人力資源管理項目,還可以對員工進行動態(tài)管理,員工也可以登錄系統(tǒng),對自己的業(yè)務(wù)進行操作和存儲。
3.2分布式人力系統(tǒng)管理軟件設(shè)計框架結(jié)構(gòu)
結(jié)合某企業(yè)人力資源管理需要,從提升人力管理動態(tài)化、跨區(qū)域管理水平上,引入分布式軟件設(shè)計體系?;赩isual Studio .NET來開發(fā),選用SQL Server數(shù)據(jù)庫,采用BlS3層主體結(jié)構(gòu),各功能子模塊共用統(tǒng)一的數(shù)據(jù)庫,以滿足不同地域條件下各人力資源管理的協(xié)同,提升軟件管理效率。其基本結(jié)構(gòu)為:表示層包括人力資源系統(tǒng)用戶交互界面;邏輯應(yīng)用層包括通用數(shù)據(jù)查詢模塊、通信報表模塊,以及員工數(shù)據(jù)檔案管理模塊;數(shù)據(jù)訪問層包括用戶界面與數(shù)據(jù)實體類,利用XML來實現(xiàn)對數(shù)據(jù)庫的直接訪問。
3.3各主要模塊及實現(xiàn)方法
在軟件項目設(shè)計應(yīng)用中,首先是系統(tǒng)登錄模塊的設(shè)計。登錄模塊參照一般流程,由用戶輸入賬戶信息、密碼等,來調(diào)用用戶信息表格進行查詢,當輸入正確時,進入人力系統(tǒng)操作主界面;當輸入用戶不存在時,返回錯誤信息,并轉(zhuǎn)向重新輸入。在員工信息錄入與修改模塊,該模塊主要完成員工基本信息的錄入管理。由于考慮到對傳統(tǒng)員工檔案信息格式及內(nèi)容的兼容性,我們可以利用軟件設(shè)計來優(yōu)化傳統(tǒng)檔案數(shù)據(jù)向分布式軟件數(shù)據(jù)庫的導(dǎo)入方式。當然,為了確保檔案信息的正確性、準確性,我們在數(shù)據(jù)庫轉(zhuǎn)換設(shè)計上,還要增加信息糾錯與數(shù)據(jù)保障功能。在本模塊,主要記錄了員工的基本信息,如姓名、性別、年齡、參加工作時間、職務(wù)信息等。管理人員也可以根據(jù)查詢模塊來對相關(guān)組合條件進行綜合查詢,以便于對員工的有效管理。對于分布式軟件設(shè)計,在滿足查詢條件時,需要考慮多種查詢方式的兼容性。如滿足任意條件查詢、擬定條件查詢等。在任意查詢時,可以根據(jù)檢索字段信息,展開任意組合條件的查詢。如根據(jù)年齡、性別進行查詢,根據(jù)工作年限、職稱情況進行查詢;在擬定查詢方案時,可以將某次查詢方式進行設(shè)置,并保存到菜單內(nèi),便于后續(xù)直接查詢,提升企業(yè)人力管理有效性。對于分布式軟件設(shè)計中的報表生成模塊,應(yīng)該是實現(xiàn)人力資源管理軟件設(shè)計的重要內(nèi)容。報表是記錄管理業(yè)務(wù)的重要方式,其輸出形式可以與Microsoft Excell表格進行對接,將之生成電子表格方式來便于打印、輸出;也可以將報表導(dǎo)出成報表模板,以滿足其他輸出需要。
[參考文獻]
[1]周德賢.現(xiàn)代分布式軟件工程架構(gòu)分析與探討[J]信息技術(shù)與信息化,2014 (11):108-109
[2]朱煥亮,張佩民.企業(yè)數(shù)據(jù)架構(gòu)規(guī)劃和治理淺析[J]中國信息化,2016 (7):76-81