王鵬躍
摘要:在信息化、無紙化就業(yè)見習管理背景下,結合用戶需求設計并實現(xiàn)了基于ASP.NET技術的就業(yè)見習管理信息系統(tǒng),提供了一種B/S模式下的三層架構系統(tǒng)解決方案。
關鍵詞:信息化;無紙化;三層結構;ASP.NET技術;B/S模式
DOIDOI:10.11907/rjdk.161522
中圖分類號:TP319
文獻標識碼:A文章編號文章編號:16727800(2016)009007504
基金項目基金項目:
作者簡介作者簡介:王鵬躍(1990-),男,陜西西安人,西安工程大學計算機科學學院碩士研究生,研究方向為信息系統(tǒng)設計與軟件開發(fā)。
0引言
就業(yè)見習是指政府有關部門對離校后未就業(yè)畢業(yè)生到企事業(yè)單位實踐訓練的就業(yè)扶持措施,這項措施為高校畢業(yè)生由校園走向社會帶來了良好的過渡效果。就業(yè)見習信息管理隨著時間的累積產(chǎn)生了數(shù)量龐大的繁雜數(shù)據(jù),因其格式不一等原因,很大程度上降低了就業(yè)見習管理效率。設計并實現(xiàn)一個就業(yè)見習管理信息系統(tǒng),通過信息的規(guī)范管理、快速查詢等來實現(xiàn)就業(yè)見習管理的信息化、自動化和無紙化。
1相關技術介紹
1.1ASP.NET及其三層架構
ASP.NET是微軟推出的網(wǎng)絡編程開發(fā)框架,它是.NET框架中的重要成員。ASP.NET 采用結構化的網(wǎng)頁,為了將邏輯代碼和表現(xiàn)代碼分開而引入了Code Behind技術,通過使用這項技術,可以使邏輯代碼和表現(xiàn)代碼互不影響。因此,利用ASP.NET可以方便快速地開發(fā)功能強大的網(wǎng)絡應用程序[1]。
ASP.NET的三層架構,層與層互相獨立,不管哪一層發(fā)生變化,只需更改該層中的代碼即可,提高了代碼的可讀性和功能的擴展性,有利于項目開發(fā)后的變更、維護和升級,在各種項目中應用廣泛。三層架構自底向上分別是數(shù)據(jù)訪問層(DAL)、業(yè)務邏輯層(BLL)、表示層(PL)。
數(shù)據(jù)訪問層(DAL):對數(shù)據(jù)進行增加、刪除、修改、査閱、存儲等操作。
業(yè)務邏輯層(BLL):在數(shù)據(jù)訪問層和表示層之間起重要的銜接作用,提供所有與數(shù)據(jù)庫有關的操作。
表示層(PL):位于最外層展現(xiàn)界面。用于用戶輸入數(shù)據(jù)、顯示輸出結果等操作。
在三層構架中,數(shù)據(jù)訪問層通過業(yè)務邏輯層來連接及操作,表示層給中間的業(yè)務邏輯層傳遞參數(shù),并接受業(yè)務邏輯層參數(shù)[2]。
1.2ADO.NET
無論是簡單文件或相關數(shù)據(jù)庫亦或是其它存儲類型都需要查詢和更新數(shù)據(jù)。服務框架中的ActiveX Data Object+(ADO.NET)類庫提供數(shù)據(jù)的簡單訪問功能,也就是使用相對容易的類來描述關系數(shù)據(jù)庫中的表、列、行。ADO.NET是一組用于和數(shù)據(jù)源進行交互的面向?qū)ο箢悗?。?shù)據(jù)源可以是數(shù)據(jù)庫、文本文件、文件或者其它新的數(shù)據(jù)源。不同的數(shù)據(jù)源使用與之相應的協(xié)議,如ODBC協(xié)議、OLE DB協(xié)議。這些數(shù)據(jù)源都可以通過ADO.NET類庫進行數(shù)據(jù)交互[2]。
1.3瀏覽器/服務器(Browser/Server,簡稱B/S)模式
B/S模式是一種以Web技術為基礎的系統(tǒng)平臺模式,它把傳統(tǒng)C/S模式中的服務器分解為一個數(shù)據(jù)庫服務器與一個或多個應用服務器(Web 服務器),從而構成一個三層結構的客戶服務器體系,如圖1所示。在這種模式下,用戶端只需一個通用瀏覽器,如Chrome或Explore,便代替了各種應用軟件,瀏覽器和Web服務器之間通過TCP/IP通訊協(xié)議進行連接。瀏覽器發(fā)出數(shù)據(jù)請求,由Web服務器向后臺取出數(shù)據(jù)并計算,并將計算結果返回給瀏覽器[1]。
2系統(tǒng)需求及用例分析
就業(yè)見習系統(tǒng)用戶有3類,分別是畢業(yè)生用戶、企事業(yè)單位用戶、政府就業(yè)見習管理人員用戶。
(1)畢業(yè)生用戶需求及用例分析。
畢業(yè)生在就業(yè)見習系統(tǒng)中注冊基本信息后,可以登錄系統(tǒng)進而查看見習崗位信息以及企事業(yè)單位發(fā)送來的見習邀請。
畢業(yè)生用戶用例分析如圖2所示。
(2)企事業(yè)單位用戶需求及用例分析。
企事業(yè)單位用戶(以下稱為見習基地用戶)在就業(yè)見習系統(tǒng)中注冊基本信息并通過審核后,可以發(fā)布見習崗位(見習崗位同樣需要審核)以便申報畢業(yè)生見習,通過審核后便可前往見習基地進行就業(yè)見習。見習基地需為見習生申報保險和補貼。另外,見習基地用戶還可以邀請未申報的畢業(yè)生前來見習。見習基地用戶用例分析如圖3所示。
(3)政府就業(yè)見習管理人員用戶需求及用例分析。
政府就業(yè)見習管理人員用戶(以下稱就業(yè)見習管理用戶)登錄系統(tǒng)后,對見習基地用戶注冊的基本信息、發(fā)布的崗位信息、申報的畢業(yè)人員信息以及保險和補貼信息進行審核。同時,還需對畢業(yè)生信息、見習基地信息和崗位信息進行管理,對見習畢業(yè)生、見習基地、保險、補貼等信息進行統(tǒng)計分析。就業(yè)見習管理用戶用例分析如圖4所示。
3系統(tǒng)設計
3.1系統(tǒng)架構設計
就業(yè)見習管理信息系統(tǒng)采用B/S模式,省去了畢業(yè)生用戶和見習基地用戶重復搭建客戶端環(huán)境的麻煩,并在Web服務器端采用了ASP.NET的三層架構,在提高代碼重用率的基礎上更好地適應了高內(nèi)聚低耦合的設計原則。系統(tǒng)整體架構如圖5所示。
為了提高服務器端三層架構之間的數(shù)據(jù)交互效率,本文根據(jù)面向?qū)ο蟮脑O計方法使用了業(yè)務實體類和通用類庫來封裝三層之間的數(shù)據(jù)交流,從而提高數(shù)據(jù)的隱秘性并方便系統(tǒng)開發(fā),其結構如圖6所示。
3.2系統(tǒng)功能設計
根據(jù)系統(tǒng)需求分析及系統(tǒng)架構設計,就業(yè)見習系統(tǒng)總體功能模塊設計如圖7所示。
3.2.1申報模塊
申報模塊包括發(fā)布崗位功能、申報畢業(yè)生見習功能、申報保險功能、申請補貼功能,其功能流程如圖8所示。
3.2.2審核模塊
審核模塊包括見習基地審核功能、畢業(yè)生見習申報審核功能、保險申報審核功能以及補貼申請審核功能,每個功能都可以見習基地名稱作為條件進行數(shù)據(jù)篩選,從而方便就業(yè)見習管理用戶進行信息查詢并審核。
3.2.3管理信息模塊
管理信息模塊包括學生信息、見習基地信息、崗位信息、保險信息以及補貼信息的查看編輯功能,每個功能載入時都會進行用戶類型判斷,從而限制用戶所能查看或編輯的信息范圍。例如畢業(yè)生用戶只能查看自己的信息,就業(yè)見習管理用戶則可查看所有注冊了的學生信息。
3.2.4統(tǒng)計分析模塊
統(tǒng)計分析模塊在為就業(yè)見習管理用戶統(tǒng)計歷史數(shù)據(jù)的同時也為相關決策提供數(shù)據(jù)支持。該模塊主要包括見習畢業(yè)生統(tǒng)計功能、見習基地統(tǒng)計功能、保險信息統(tǒng)計功能、補貼信息統(tǒng)計功能。其中因保險信息與補貼信息的統(tǒng)計分析數(shù)據(jù)會涉及到金錢,所以相關數(shù)據(jù)格式均保留到小數(shù)點后兩位。
3.3系統(tǒng)數(shù)據(jù)庫設計
根據(jù)以上需求分析及系統(tǒng)功能設計,通過UML建立數(shù)據(jù)庫模型,主要類的類圖如圖9所示。
由于每個類的屬性字段過多,這里僅列出重要的屬性字段。有了類圖便可以設計相應的數(shù)據(jù)庫表,包括用戶信息表、畢業(yè)生信息表、見習基地信息表、見習崗位信息表、保險信息表、補貼信息表。
4系統(tǒng)實現(xiàn)
4.1實現(xiàn)環(huán)境
操作系統(tǒng):Windows 10專業(yè)版,開發(fā)工具:Microsoft Visual Studio 2013,Web服務器:IIS Express,數(shù)據(jù)庫:SQL Server 2008R2。
4.2見習基地用戶發(fā)布崗位功能實現(xiàn)
4.2.1表現(xiàn)層實現(xiàn)
就業(yè)見習系統(tǒng)中崗位發(fā)布功能的人機交互界面由aspx文件結合css 層疊樣式表實現(xiàn),使用JavaScript進行前臺數(shù)據(jù)驗證。
4.2.2業(yè)務邏輯層實現(xiàn)
見習基地用戶一旦確認申請發(fā)布崗位,系統(tǒng)后臺便會將用戶所輸入的信息封裝進崗位信息業(yè)務實體類的一個實例對象中,再以參數(shù)的形式傳遞到系統(tǒng)業(yè)務邏輯層進行相關業(yè)務操作,例如在插入數(shù)據(jù)前檢查崗位名稱是否重復等。在業(yè)務邏輯執(zhí)行完畢后再調(diào)用數(shù)據(jù)訪問層進行數(shù)據(jù)插入操作,相關代碼如下:
int AddBiaoShi = 0;
//創(chuàng)建崗位信息業(yè)務實體類實例
XABYS.Model.JianXi_JiDiFaBuGangWei FaBuGangWeimod =
new Model.JianXi_JiDiFaBuGangWei();
//檢查數(shù)據(jù)庫表中是否已經(jīng)存在擁有該崗位名稱的崗位信息
DataTable dt = FaBuGangWeibll.GetList("_DanWeiMingCheng = " + (string)RequestSession.GetSessionUser().Name + " AND _GangWeiMingCheng = " + this.MingCheng.Value + " AND _GangWeiShiJian = " + Convert.ToInt32(DateTime.Now.ToString("yyyy"))).Tables[0];
//判斷是否符合添加條件
if (dt == null || dt.Rows.Count == 0)
{//符合條件
//將就業(yè)見習用戶所填寫的崗位信息封裝進崗位信息業(yè)務實體類的實例中
FaBuGangWeimod._JiDiID = JiDibll.SelectJiDiID(
(string)RequestSession.GetSessionUser().Name);
FaBuGangWeimod._DanWeiMingCheng = (string)RequestSession.GetSessionUser().Name;
FaBuGangWeimod._DanWeiQuXian = JiDibll.SelectJiDiDanWeiQuXian(
(string)RequestSession.GetSessionUser().Name);
FaBuGangWeimod._GangWeiMingCheng = this.MingCheng.Value;
FaBuGangWeimod._ZhuanYeXuQiu = this.ZhuanYe.Value;
FaBuGangWeimod._ZhaoShouRenShu = this.RenShu.Value;
FaBuGangWeimod._SuoShuHangYe = JiDimod._SuoShuHangYe;
FaBuGangWeimod._DanWeiXingZhi = JiDimod._DanWeiXingZhi;
FaBuGangWeimod._GangWeiMiaoShu = this.MiaoShu.Value;
FaBuGangWeimod._BeiZhu = this.BeiZhu.Value;
FaBuGangWeimod._GangWeiShiJian = Convert.ToInt32(
DateTime.Now.ToString("yyyy"));
FaBuGangWeimod._GangWeiZhuangTai = "未審核".Trim();
//在業(yè)務邏輯層調(diào)用添加崗位信息的方法以崗位信息實體類實例作為參數(shù)
//從中最終調(diào)用數(shù)據(jù)訪問層的添加崗位信息方法插入數(shù)據(jù)
AddBiaoShi = FaBuGangWeibll.Add(FaBuGangWeimod);
//插入成功AddBiaoShi > 0 ;插入失敗AddBiaoShi = 0
return AddBiaoShi;}
else {
//不符合條件
//不符合條件,則AddBiaoShi < 0
AddBiaoShi = -1;
return AddBiaoShi;}
public int Add(XABYS.Model.JianXi_JiDiGangWei model){
//調(diào)用數(shù)據(jù)訪問層的添加崗位信息的方法
return dal.Add(model);}
4.2.3數(shù)據(jù)訪問層實現(xiàn)
數(shù)據(jù)訪問層在被業(yè)務邏輯層調(diào)用后,首先會將崗位信息實例對象拆分成單個數(shù)據(jù)并對應數(shù)據(jù)庫表中相應的字段,完成SQL語句的拼接,接著使用DbHelperSQL等通用類庫中早已封裝好的ADO.NET類的實例進行數(shù)據(jù)庫訪問及數(shù)據(jù)插入操作,完成數(shù)據(jù)庫服務器崗位信息的存儲,相關代碼如下:
public int Add(XABYS.Model.JianXi_JiDiGangWei model){
//SQL語句的拼接
StringBuilder strSql = new StringBuilder();
trSql.Append("insert into Tb_JianXiGangWei("); strSql.Append("_JiDiID,_DanWeiMingCheng,_DanWeiQuXian,_GangWeiMingCheng,_Zh aoShouRenShu,_ZhuanYeXuQiu,_ShiFouQuanZhi,_YouWuYeBan,_JianXiDiDian,_BeiZhu, _GangWeiShiJian,_YiJianXiRenShu,_GangWeiZhuangTai,_ShenHeRen,_SHenHeShiJian) ");
……
SqlParameter[] parameters = {
new SqlParameter("@_JiDiID",SqlDbType.Int,4),
……
new SqlParameter("@_SHenHeShiJian",SqlDbType.NVarChar,100)};
parameters[0].Value = model._JiDiID;
……
//以ADO.NET的方式訪問數(shù)據(jù)庫
object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);
//返回數(shù)據(jù)插入的結果
if (obj == null)
{return 0;}
else
{return Convert.ToInt32(obj);}}
5結語
本就業(yè)見習系統(tǒng)已經(jīng)在某市人才中心應用,使用效果表明:系統(tǒng)減少了就業(yè)見習管理工作人員的工作量,對畢業(yè)生、就業(yè)見習基地等信息的管理質(zhì)量顯著提高。系統(tǒng)統(tǒng)計分析功能可為人才中心各部門的業(yè)務決策提供一定的數(shù)據(jù)支持?;贏SP.NET就業(yè)見習管理信息系統(tǒng)在信息化、自動化、無紙化方面取得了良好效果。
參考文獻參考文獻:
[1]唐偉.基于.NET的管理信息系統(tǒng)設計及開發(fā)技術研究[D].南京:東南大學,2005.
[2]梁國平.基于ASP.NET成人教育教務管理系統(tǒng)的設計與實現(xiàn)[D].上海:復旦大學,2013.
[3]陸瑋.高校畢業(yè)生就業(yè)信息管理系統(tǒng)的分析與設計[D].昆明:云南大學,2013.
[4]李娟娟.基于B_S的庫存管理信息系統(tǒng)的研究和開發(fā)[D].西安:西北工業(yè)大學,2005.
[5]黃剛,趙校.B_S和C_S模式在MIS中的比較[J].鐵路計算機應用,2004,13(4):5051.
責任編輯(責任編輯:杜能鋼)