国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LINQ與Ajax技術(shù)的辦公自動(dòng)化系統(tǒng)

2013-04-29 00:44:03陳焜
電腦知識(shí)與技術(shù) 2013年7期
關(guān)鍵詞:辦公自動(dòng)化

陳焜

摘要:論文應(yīng)用三層架構(gòu)的開發(fā)思想提出了系統(tǒng)架構(gòu)方案,分析并完成了辦公自動(dòng)化系統(tǒng)的功能設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì),著重闡述了LINQ 及Ajax技術(shù)在系統(tǒng)中的作用和用法,對(duì)類似的系統(tǒng)開發(fā)有一定的參考價(jià)值。

關(guān)鍵詞:辦公自動(dòng)化;LINQ;Ajax

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)07-1476-02

傳統(tǒng)的三層架構(gòu)被廣泛的應(yīng)用與.NET平臺(tái)下的WEB開發(fā)和WINFORM開發(fā),以前的數(shù)據(jù)訪問層需要開發(fā)者自己手工編寫業(yè)務(wù)實(shí)體及業(yè)務(wù)實(shí)體方法,里面夾雜著大量的SQL語(yǔ)句,微軟的LINQ技術(shù)改進(jìn)現(xiàn)有開發(fā)模式下面向數(shù)據(jù)庫(kù)操作的問題,使得面向?qū)ο蠛蛿?shù)據(jù)庫(kù)完美結(jié)合。

1 辦公自動(dòng)化系統(tǒng)需求分析及數(shù)據(jù)庫(kù)設(shè)計(jì)

辦公自動(dòng)化系統(tǒng)是一個(gè)基于Web的三層結(jié)構(gòu)應(yīng)用系統(tǒng),它采用了LINQ和Ajax技術(shù),是從性能和伸縮性角度著重考慮如何合理組合技術(shù),優(yōu)化各個(gè)功能模塊的設(shè)計(jì)。辦公自動(dòng)化系統(tǒng)共分為4個(gè)功能模塊:a.管理特區(qū),b.個(gè)人辦公室,c.信息共享區(qū),d.人力資源管理。

根據(jù)上述模塊的功能設(shè)計(jì)數(shù)據(jù)庫(kù),應(yīng)該包括如下13張表:短信息表、用戶基本信息表、日程安排表、考勤時(shí)間設(shè)置表、考勤表、部門表、公告表、績(jī)效表、招聘管理表、培訓(xùn)管理表、工資公式設(shè)置表、工資管理表、郵件服務(wù)器設(shè)置表。另外本系統(tǒng)使用了.NET提供的幾個(gè)功能:個(gè)性化設(shè)置、用戶角色設(shè)置等,這些功能由系統(tǒng)自帶的數(shù)據(jù)庫(kù)ASPNETDB保存所需要的數(shù)據(jù)。

2 系統(tǒng)具體實(shí)現(xiàn)

2.1 系統(tǒng)總體架構(gòu)

系統(tǒng)分三層:數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、表示層。其中數(shù)據(jù)訪問層包括實(shí)體類和Data Context類,通過Data Context類操作實(shí)體類而達(dá)到操作表的目的,數(shù)據(jù)訪問層通過LINQ技術(shù)實(shí)現(xiàn)。業(yè)務(wù)邏輯層通過引用數(shù)據(jù)訪問層實(shí)現(xiàn)業(yè)務(wù)邏輯并處理表示層的輸入[1]。表示層負(fù)責(zé)與用戶交互,運(yùn)用了Ajax技術(shù)。在visual studio2010中具體實(shí)現(xiàn)這三層結(jié)構(gòu),可以這樣做:在空白解決方案中分別添加名為BLL、DAL的兩個(gè)類庫(kù)項(xiàng)目,然后再添加一個(gè)ASP.NET web應(yīng)用程序的項(xiàng)目,命名為WebUI,其中DAL為數(shù)據(jù)訪問層,BLL為業(yè)務(wù)邏輯層,WebUI為表示層。最后在解決方案資源管理器中,添加各項(xiàng)目間的引用。

2.2 DAL層的實(shí)現(xiàn)

本系統(tǒng)使用LINQ to SQL技術(shù)來實(shí)現(xiàn)數(shù)據(jù)訪問層,因此在項(xiàng)目中必須添加一個(gè)數(shù)據(jù)庫(kù)連接,當(dāng)創(chuàng)建好連接后,應(yīng)該將數(shù)據(jù)表的信息映射到程序中來,可以向本項(xiàng)目中添加LINQ to SQL Classes項(xiàng),然后將上面建立的13張表拖到設(shè)計(jì)界面,最后在App _Code目錄下的DataClasses.design.cs文件,該文件中包含DataClassesDataContext類的定義,此類稱為“數(shù)據(jù)連接上下文”,它包括所有所有的映射實(shí)體類,對(duì)應(yīng)每個(gè)表的每個(gè)字段,還包括提交數(shù)據(jù)實(shí)體的方法,在添加數(shù)據(jù)時(shí),使用InsertOnSubmit方法將新數(shù)據(jù)添加到實(shí)體中,使用SubmitChanges方法提交數(shù)據(jù)發(fā)生的變化。

2.3 BLL層的實(shí)現(xiàn)

業(yè)務(wù)邏輯層一般是編寫若干個(gè)業(yè)務(wù)類,然后在各個(gè)業(yè)務(wù)類中添加業(yè)務(wù)方法來實(shí)現(xiàn)。比如績(jī)效管理子模塊的實(shí)現(xiàn),就可以通過添加一個(gè)類CheckM,在該類中添加若干實(shí)現(xiàn)績(jī)效管理功能的業(yè)務(wù)方法。限于篇幅,以下只以查詢員工考核記錄這個(gè)功能的實(shí)現(xiàn)為例,來介紹BLL層及WebUI層的實(shí)現(xiàn)。查詢員工考核記錄可以按輸入的姓名進(jìn)行模糊查詢,故在CheckM類中添加如下業(yè)務(wù)方法:

其中,IQueryable是LINQ查詢結(jié)果的返回類型,表示對(duì)未指定數(shù)據(jù)類型的特定數(shù)據(jù)源的查詢進(jìn)行計(jì)算[2]。IQueryable接口可實(shí)現(xiàn)查詢結(jié)果集的遍歷,可以直接綁定在ObjectDataSource數(shù)據(jù)源控件上。Check是對(duì)應(yīng)Check表的實(shí)體類,而Checks則為Check類的集合。SqlMethods.Like方法是用來模糊查詢的,其第二個(gè)參數(shù)為查詢關(guān)鍵詞。

此外,WebUI層要實(shí)現(xiàn)自動(dòng)輸入姓名功能,需要在CheckM類中再添加如下業(yè)務(wù)方法,根據(jù)參數(shù)使用模糊查詢?cè)谟脩艋拘畔⒈碇胁樵兂鏊蟹蠗l件的用戶姓名:

public string[] GetNameList(string name){……}

2.4 WebUI層的實(shí)現(xiàn)

要實(shí)現(xiàn)查詢考核記錄的功能,要在頁(yè)面上添加一個(gè)文本框控件(用來輸員工姓名的)、一個(gè)查詢按鈕、和一個(gè)GridView控件(用來顯示考核記錄的)。為了能夠無代碼實(shí)現(xiàn)查詢操作,需為GridView建立對(duì)象數(shù)據(jù)源,數(shù)據(jù)源選擇上述CheckM的GetChecksbyName方法,參數(shù)值為文本框的Text屬性值。

另外為了查詢時(shí)頁(yè)面無刷新,可以講上述控件都放到UpdatePanel里面,這是用得非常多的Ajax控件。在查詢時(shí)有可能由于網(wǎng)絡(luò)問題導(dǎo)致查詢有點(diǎn)慢,為了不讓用戶干著急,可以向頁(yè)面添加一個(gè)UpdateProgress控件,然后再該控件中添加一個(gè)進(jìn)度動(dòng)畫[3]。最后為了提高用戶輸入姓名的效率,可以讓輸入姓名的文本框具備自動(dòng)輸入完成的功能,也就是用戶在輸入某個(gè)詞句時(shí),與已經(jīng)輸入的前綴或詞首相符的詞句就會(huì)自動(dòng)列出來讓您選取,此功能與百度和谷歌的搜索界面非常相似。Ajax Control Toolkit提供了“自動(dòng)輸入完成”擴(kuò)展器(AutoCompleteExtender)可以完成此功能。將此擴(kuò)展器從工具箱中拖到頁(yè)面上的搜索文本框中,然后設(shè)置它的ServicePath屬性為AutoComplete.asmx,ServiceMethod屬性為GetCompletionList, 其中ServicePath屬性用于指定Web服務(wù)的位置路徑與文件名,ServiceMethod屬性用于指定您要調(diào)用Web服務(wù)的那個(gè)方法,該方法用于從數(shù)據(jù)庫(kù)中提取員工姓名來加以比較,它以prefixText作為參數(shù)調(diào)用業(yè)務(wù)邏輯層中CheckM類的GetNameList方法。此Web服務(wù)的方法必須符合下列簽名格式:

參考文獻(xiàn):

[1] 陳作聰. Web程序設(shè)計(jì)——ASP.NET網(wǎng)站開發(fā)[M].北京.清華大學(xué)出版社,2012.

[2] 王巖.精通ASP.NET 3.5企業(yè)級(jí)開發(fā)[M].北京:人民郵電出版社,2008.

[3] 鄧麗. ASP.NET 2.0 Ajax應(yīng)用程序設(shè)計(jì)[M] .北京.清華大學(xué)出版社,2009.

猜你喜歡
辦公自動(dòng)化
淺談辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)與應(yīng)用
活力(2019年21期)2019-04-01 12:17:06
辦公自動(dòng)化中的計(jì)算機(jī)應(yīng)用
辦公自動(dòng)化系統(tǒng)軟件教學(xué)探索
辦公室自動(dòng)化、辦公自動(dòng)化與OA
滬蘇浙高速公路辦公自動(dòng)化系統(tǒng)設(shè)計(jì)
利用辦公自動(dòng)化進(jìn)行圖書館管理
河南科技(2014年22期)2014-02-27 14:18:25
连江县| 抚顺县| 新昌县| 长垣县| 黑龙江省| 饶平县| 闵行区| 宜川县| 铁岭县| 甘谷县| 锦州市| 宁乡县| 凤翔县| 平定县| 菏泽市| 神农架林区| 杂多县| 定兴县| 文水县| 普兰店市| 桐乡市| 巢湖市| 天祝| 繁峙县| 大安市| 若羌县| 婺源县| 乌拉特后旗| 牙克石市| 永川市| 东明县| 祁连县| 自治县| 东辽县| 唐河县| 洛川县| 张家口市| 钟祥市| 郧西县| 桓台县| 江陵县|