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