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