劉 濤
(阜陽職業技術學院 安徽 阜陽 236031)
隨著計算機網絡技術的發展與應用領域的滲透,采用信息化管理技術已經成為了一個企業和部門提高工作效率,解決實際問題的必由之路。本文正是從這一著眼點出發,立足實際應用中的需求設計并開發了基于MVC架構的信息管理系統。系統的開發過程使用了MVC架構下的相關典型技術,諸如ASP.NET、SQL Server數據庫訪問技術、C#網絡編程技術等等。
所謂MIS(管理信息系統——Management Information System),是一個由人、計算機及其他外圍設備等組成的能進行信息的收集、傳遞、存貯、加工、維護和使用的系統。現代化的企業需要計算機的幫助對內管理日常業務,對外開展電子商務;事業單位以及政府部門則需要利用計算機實現信息管理和事務處理的信息化,提高工作效率。
ASP.NET技術是一種用于創建WEB應用程序的編程模型。運行時可以和.NET Framework類庫集一起配合用于創建動態WEB頁,ASP.NET在WEB服務器的環境中運行,頁面的最后生成是由許多不同的指令和/或數據源構造的。
基于B/S模型的WEB應用程序結構可以概括為MVC結構,M(Model)即模型層/與數據庫交互;V(View)即視圖/與用戶交互;C(Controller)控制/根據用戶的請求與模型層交互,并返回結果視圖給用戶。
三種之間的關系可以用下圖來表示[1]:

圖1 MVC結構示意圖
對MVC參考模型中的功能模塊分別介紹如下[2]:
1.1 視圖:視圖是用戶看到并與之交互的界面。對老式的Web應用程序來說,視圖就是由HTML元素組成的界面,在新式的WEB應用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術已層出不窮,它們包括Macromedia Flash和像 XHTML,XML/XSL,WML等一些標識語言和Web services。
1.2 模型:模型表示企業數據和業務規則。在MVC的三個部件中,模型擁有最多的處理任務。例如它可能用諸如EJBs和ColdFusion Components這樣的構件對象來處理數據庫。被模型返回的數據是中立的,就是說模型與數據格式無關,這樣一個模型能為多個視圖提供數據。由于應用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。
1.3 控制器:控制器接受用戶的輸入并調用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調用哪個模型構件去處理請求,然后確定用哪個視圖來顯示模型處理返回的數據。
建立物資管理系統主要目的是幫助企業或個人降低管理物資人員的工作強度,提高物資管理水平。這就要求物資管理系統基本涵蓋企業物資管理的全過程。經過與企業的深度走訪與協商,同時分解MVC的視
圖結構,本系統主要功能模塊設計如下:
2.1 用戶管理:實現添加用戶,修改當前用戶密碼2個模塊。
2.2 單據管理:實現登記入庫單、登記出庫單、登記退庫單、登記盤點單、登記維修單、登記付款單、登記收款單等模塊。
2.3 固定資產管理:固定資產登記、固定資產查詢、固定資產維修統計等模塊。
2.4 通用查詢:單據查詢、入庫物資統計、出庫物資統計、退庫物資統計、應付賬款統計等模塊。
2.5 系統維護:主要是基本數據維護模塊。
物資管理系統流程圖可見下圖所示:

圖2 物資管理系統流程圖
系統框架主要架構在ASP.NET和.NET Framework 2.0基礎之上,因此在開發.NET程序時,首先要創建很多Web頁(擴展名.aspx的頁面文件)、用戶控件以及類,來完成基本的功能操作,為了體現MVC結構,同時規范系統的整體架構,在開發時應先把系統中可能用到的文件夾創建出來(例如,創建一個名為images的文件夾,用于保存系統頁面中需要的圖片文件),在開發時只需將相應文件保存到對應文件夾下即可。下圖列出了物資管理系統的ASP.NET頁文件夾及文件架構。

圖3 物資管理系統文件結構架構圖
對數據庫的設計應先明確企業物資管理業務流程,下圖是利用可視化表示形式為本系統繪制的業務流程圖。

圖4 物資管理系統業務流程圖
針對物資管理系統的功能結構圖可繪制出數據流圖,下圖為本系統的數據流圖簡圖。

圖5 物資管理系統數據流圖
在數據流圖的基礎上,可以分析和設計本系統的數據庫系統。為了更為清晰的明確本系統中數據庫中數據表的結構,將數據表以樹型結構圖展示如下,該結構圖包含了系統數據庫中的所有數據表。

圖6 物資管理系統數據表樹型結構圖
4.1 Web.config 文件配置
由于Web.config文件對于訪問本系統的用戶來說是不可見的,也是不可以訪問的。作為MVC結構中控制器的重要文件,同時為了系統數據的安全和易操作,可以在配置文件(Web.config)配置一些參數,主要配置參數是數據連接字符串,根據SQL數據庫連接技術的要求,其具體配置如下:

這里除了可以手動編輯此文件以外,還可以使用Web管理工具來配置應用程序的設置。設置和注釋的完整列表在machine.config.comments中, 該文件通常位于 WindowsMicrosoft.NetFrameworkv2.xConfig中。
4.2 數據庫操作類的編寫
在系統的開發中,良好的類設計能夠使系統結構更加清晰,并且可以加強代碼的重用性和易維護性。本系統中也建立了一個公共類DB.cs,用來執行各種數據庫操作。 由于在 ASP.NET 2.0 中,App_Code文件夾專門用來存放應用程序中一些通用的類,這些類完成了MVC結構中模型(Model)與控制器(Controller)之間的“數據交流”,如果沒有,在添加類時會彈出消息框,新建該文件夾。
由于對數據庫操作需要頻繁地連接數據庫,如果每次連接都寫一遍代碼會很麻煩。所以這里把數據庫的連接語寫在一個方法GetCon中,通過調用GetCon方法來連接數據庫。該方法的代碼如下:

除了GetCon方法外,DB.cs類中還包含其他4個方法來對數據庫進行操作,分別為ExSql方法、reDs方法、reDr方法和ExcuteDataTable方法,下面分別對這4個方法進行簡單的介紹[3-4]。
(1)ExSql方法
Exsql方法用于執行數據庫操作,首先調用GetCon方法建立與數據源的連接,然后將執行作為參數的SQL語句,完成相應的數據庫操作。
(2)reDS 方法
reDS方法是一個靜態方法。形參str是一條SQL語句。此方法通過SQL語句來查詢數據庫中的數據,并將查詢結果存儲在DataSet數據集中。最終,返回一個DataSet(數據集)對象。
(3)reDr方法
reDr方法的形式參數str是一條用于查詢的SQL語句,該方法將執行此語句的結果存儲在一個SqlDataReader對象。最后,將這個SqlDataReader對象返回到調用處,并對其值進行操作。
(4)ExcuteData Table 方法
ExcuteDataTable方法的參數也是一條用于查詢的SQL語句,它將執行的結果存儲在Data Table對象中,并將此DataTable對象返回到調用處。
綜上所述,本系統架構在MVC工作結構的基礎之上,開發過程中主要使用了ASP.NET技術同時結合了SQL Server數據庫開發方法。系統開發的過程中深入到了企業和學校的第一線,了解用戶對系統的實際需求,盡量按照實際環境去開發系統,在系統開發成功后也進行了程序員和用戶等不同角色的測試。
[1]ASP 與 ASP.NET 之間的差異.w3school,http://www.w3school.com.cn/aspnet/aspnet_vsasp.asp,2009-7-6.
[2]陳超.基于J2EE平臺和MVC模式的物資管理系統的設計與實現[D].南京航空航天大學,2004.
[3][意]Alessandro Gallo,[美]David Barkol,[美]Rama Krishna Vavilala.ASP.NET AJAX 實戰[M].蘇金國,等,譯.北京:人民郵電出版社,2008.
[4][美]考夫曼,肖奕譯.ASP.NET 數據庫入門經典[M].北京:清華大學出版社,2007.