基于ASP.NET AJAX的OA系統(tǒng)設(shè)計(jì)策略
掃描二維碼
隨時(shí)隨地手機(jī)看文章
辦公自動(dòng)化(Office Automation,OA)系統(tǒng),是指利用計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù),使辦公室部分工作逐步物化于各種現(xiàn)代化設(shè)備中,由辦公室人員與設(shè)備共同構(gòu)成服務(wù)于某種目標(biāo)的人機(jī)信息處理系統(tǒng)。辦公自動(dòng)化已經(jīng)成為現(xiàn)代企事業(yè)單位實(shí)現(xiàn)管理現(xiàn)代化的一個(gè)重要途徑。
辦公自動(dòng)化系統(tǒng)的開(kāi)發(fā)技術(shù)主要分為三大類:基于C/S結(jié)構(gòu)的應(yīng)用程序、結(jié)合C/S結(jié)構(gòu)和Web技術(shù)的復(fù)合應(yīng)用程序、基于B/S結(jié)構(gòu)的’Web應(yīng)用程序。B/S結(jié)構(gòu)下,用戶界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在客戶機(jī)前端實(shí)現(xiàn),大部分事務(wù)邏輯在服務(wù)器端(后端)實(shí)現(xiàn),相關(guān)系統(tǒng)數(shù)據(jù)存在系統(tǒng)數(shù)據(jù)庫(kù)中,形成一個(gè)三層結(jié)構(gòu)。在網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā)、配置以及軟件的移植性方面,B/S結(jié)構(gòu)比C/S結(jié)構(gòu)具有更大的優(yōu)點(diǎn)。
在此設(shè)計(jì)一個(gè)采用B/S結(jié)構(gòu),基于ASP.NETAJAX框架的通用辦公自動(dòng)化系統(tǒng)。
1 AJAX與ASP.NET AJAX
1.1 AJAX概述
AJAX(Asynehronous JavaScript and XML)是多種技術(shù)的綜合,它打破了頁(yè)面刷新的范式,使用戶快速方便地與Web應(yīng)用程序交互。
使用AJAX以后,相當(dāng)于在客戶端和服務(wù)器之間加了一個(gè)中間層即AJAX引擎。AJAX提供與服務(wù)器異步通信的能力,使用戶從請(qǐng)求/響應(yīng)的循環(huán)中解脫出來(lái)。借助AJAX,可以在用戶單擊按鈕時(shí),使用JavaScript和DHTML立即更新用戶界面,并向服務(wù)器發(fā)出異步請(qǐng)求,以執(zhí)行更新或查詢數(shù)據(jù)庫(kù)。當(dāng)請(qǐng)求返回時(shí),就可以使用JavaScript和CSS相應(yīng)地更新用戶界面,而不是刷新整個(gè)頁(yè)面。整個(gè)過(guò)程就像操作本地應(yīng)用程序響應(yīng)一樣,用戶甚至不知道瀏覽器正在與服務(wù)器通信。AJAX的工作原理如圖1所示。
AJAX的核心包括:
(1)基于XHTML和CSS標(biāo)準(zhǔn)的表示;
(2)使用Document Object Model進(jìn)行動(dòng)態(tài)顯示和交互;
(3)用XMLHttpRequest與服務(wù)器進(jìn)行異步通信;
(4)使用JavaScript操作XMLHttpRequest來(lái)與數(shù)據(jù)庫(kù)進(jìn)行交互。
1.2 ASP.NET AJAX概述
ASP.NET AJAX是微軟公司推出與ASP.NET緊密集成的AJAX框架。依托.NET平臺(tái)與Visual Studio的強(qiáng)大功能,并基于ASP.NET AJAX,可以很方便地創(chuàng)建兼容絕大多數(shù)瀏覽器的Web應(yīng)用程序。
ASP.NET AJAX的核心部分包括核心AJAX類型系統(tǒng)、網(wǎng)絡(luò)協(xié)議層(Networking Stack)、組件模型、擴(kuò)展器(Extender)基類以及與ASP.NET集成的服務(wù)器端功能等。
ASP.NET AJAX服務(wù)器端控件有ScriptManager,ScriptManagerProxy,UpdatePanel,Update Progress和Timer控件。
ScriptManager控件用來(lái)處理頁(yè)面上的所有組件及頁(yè)面局部更新,生成相關(guān)的客戶端代理腳本,以便能夠在JavaScript中訪問(wèn)Web服務(wù)。所有需要支持ASP.NET AJAX的ASP.NET頁(yè)面上有且只能有一個(gè)ScriptManager控件。
ScriptManagerProxy控件在ASP.NET AJAX中,由于一個(gè)ASPX頁(yè)面上只能有一個(gè)ScriptManager控件,所以在有MasterPage的情況下,如果需要在MasterPage和ContentPage中引入不同的腳本時(shí),就要在ContentPage中使用ScriptManagerProxy。
UpdatePanel控件用來(lái)創(chuàng)建局部更新Web應(yīng)用程序,不用編寫(xiě)任何客戶端腳本,只要在頁(yè)面上添加UpdatePanel控件和ScriptManager控件就可以自動(dòng)實(shí)現(xiàn)局部更新。
UpdageProgress控件用來(lái)顯示UpdatePanel控件更新的進(jìn)度信息。當(dāng)頁(yè)面上有多個(gè)UpdatePanel控件時(shí),updateProgress控件可以指定顯示某個(gè)UpdatePanel控件的更新進(jìn)度。
Timer控件 設(shè)置進(jìn)行異步或同步刷新頁(yè)面的時(shí)間間隔。
ASP.NET AJAX架構(gòu)大大減少了開(kāi)發(fā)者所需的代碼量,提高了開(kāi)發(fā)效率。這種架構(gòu)將頁(yè)面中的內(nèi)容、樣式、行為和代碼清晰地分開(kāi)。典型的ASP.NETAJAX應(yīng)用程序設(shè)計(jì)模式是直接在客戶端調(diào)用Web服務(wù)的,而無(wú)需通過(guò)中介層,避免了使用中介層對(duì)通信效率的影響,同時(shí)也避免了增加中介層對(duì)應(yīng)用程序設(shè)計(jì)、實(shí)現(xiàn)和部署帶來(lái)的復(fù)雜性。
1.3 ASP.NET AJAX的安裝與配置
安裝Visual Studio 2008后,ASP.NET AJAX直接包含在ASP.NET 3.5框架中,如果要在安裝.NET 2.0框架上進(jìn)行ASP.NET AJAX的應(yīng)用開(kāi)發(fā),需在ASP.NET官方網(wǎng)站下載相關(guān)組件進(jìn)行安裝。
安裝ASP.NET AJAX后,在Visual Studio 2008中新建Web Site,則項(xiàng)目模板中會(huì)出現(xiàn)“ASP.NET網(wǎng)站”選項(xiàng),選擇該項(xiàng)創(chuàng)建新網(wǎng)站即可。新建完成的項(xiàng)目中會(huì)自動(dòng)在Web.config中做好相關(guān)的配置。
2 通用辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)
通用辦公自動(dòng)化系統(tǒng)采用基于B/S結(jié)構(gòu)實(shí)現(xiàn),具有簡(jiǎn)單,操作方便,易于使用的特點(diǎn),且可以顯著降低維護(hù)費(fèi)用;整個(gè)系統(tǒng)采用模塊化設(shè)計(jì)與實(shí)現(xiàn),使系統(tǒng)具有很強(qiáng)的穩(wěn)定性、可擴(kuò)充等性能。系統(tǒng)主要包括3大模塊,如圖2所示。
[!--empirenews.page--]
(1)個(gè)人事務(wù)。個(gè)人事務(wù)包括個(gè)人郵件管理、內(nèi)部信息管理、工作事務(wù)管理(查看、發(fā)送、接收、審批)、個(gè)人信息管理等。個(gè)人事務(wù)只面向系統(tǒng)中有使用權(quán)限的最終工作人員,其中在審批功能為有權(quán)限的管理層人員,其他人員只有接收領(lǐng)導(dǎo)批示的權(quán)利。
(2)公文管理。公文管理主要針對(duì)有流程的公文進(jìn)行管理,包括公文起草與提交(系統(tǒng)提供各種類型公文模板,可以在線或下載后起草提交)、公文審批(根據(jù)流程進(jìn)行公文的流轉(zhuǎn))、歸檔公文查詢(所有公文流轉(zhuǎn)后都要進(jìn)行歸檔處理,可以對(duì)歸檔的公文進(jìn)行查詢)、公文流轉(zhuǎn)流程維護(hù)(公文流轉(zhuǎn)流程可以由用戶自定義管理,包括流程的建立,已有流程的修改、刪除)。
(3)系統(tǒng)管理。系統(tǒng)管理內(nèi)容包括系統(tǒng)維護(hù)(系統(tǒng)基本信息設(shè)置、啟用與暫停、系統(tǒng)界面樣色、數(shù)據(jù)庫(kù)備份與回復(fù)等功能)、權(quán)限設(shè)置、人事管理(人事檔案管理、部門(mén)管理)、事務(wù)類別管理、角色管理等。
3 ASP.NET AJAX在系統(tǒng)中的應(yīng)用
在Web網(wǎng)站應(yīng)用程序中應(yīng)用ASP.NET AJAX技術(shù)能使頁(yè)面實(shí)現(xiàn)無(wú)刷新更新,使系統(tǒng)響應(yīng)速度加快,服務(wù)器負(fù)荷有效降低,并使用戶有較好體驗(yàn)。ASP.NET AJAX在通用辦公自動(dòng)化系統(tǒng)中的應(yīng)用包括登陸界面、日歷控件、查看事務(wù)等所有需要交互的大部分操作。
以在頁(yè)面中添加日歷控件為例,說(shuō)明ASP.NETAJAX在系統(tǒng)中的應(yīng)用。在Visual Studio 2008的網(wǎng)站項(xiàng)目中,直接添加“ASP.NET AJAX窗體”項(xiàng)目(該項(xiàng)目已內(nèi)置“ScriptManager”控件);然后在該網(wǎng)頁(yè)的設(shè)計(jì)視圖中,添加AJAX Extensions下的“UpdatePanel”控件,再把日歷控件“Calendar”拖放到設(shè)計(jì)視圖中“UpdatePanel"容器中。這樣,不需要編寫(xiě)額外代碼,就可以輕松實(shí)現(xiàn)頁(yè)面日歷部分的局部刷新。該部分的關(guān)鍵代碼如下:
4 結(jié)語(yǔ)
這里主要完成一個(gè)基于ASP.NET AJAX的通用辦公自動(dòng)化系統(tǒng)設(shè)計(jì),完成了系統(tǒng)的個(gè)人事務(wù)管理、公文管理、系統(tǒng)管理等三大模塊功能。其中,大部分涉及到交互的操作都結(jié)合了ASP.NET AJAX技術(shù),實(shí)現(xiàn)了數(shù)據(jù)的異步請(qǐng)求操作。在企事業(yè)單位的實(shí)際使用中,該系統(tǒng)運(yùn)行穩(wěn)定,系統(tǒng)響應(yīng)速度快,執(zhí)行效率高,用戶體驗(yàn)良好。