【文章內(nèi)容簡介】
家庭財(cái)務(wù)管理系統(tǒng) 的功能需求、主要用例圖、性能需求等。 第四章, 家庭財(cái)務(wù)管理系統(tǒng) 設(shè)計(jì) 與實(shí)現(xiàn) 。 首先在分析了其基本需求的基礎(chǔ)上,給出了系統(tǒng)的體系結(jié)構(gòu)和詳細(xì)的數(shù)據(jù)庫設(shè)計(jì)流程;之后詳細(xì)介紹了 家庭財(cái)務(wù)管理系統(tǒng) 各模塊的功能、設(shè)計(jì)與實(shí)現(xiàn)。 第五章, 家庭財(cái)務(wù)管理系統(tǒng)的 測(cè)試 ,給出了各個(gè)功能模塊的測(cè)試方法和測(cè)試結(jié)果 。 第六章,結(jié)束語??偨Y(jié)了論文 的研究 工作 ,并給出了下一步 的工作 。 第 二 章 相關(guān)理論及技術(shù)介紹 5 第二章 相關(guān)理論及技術(shù) 本課題所開發(fā)的 家庭財(cái)務(wù)管理系統(tǒng)是基于 B/S 的 WEB 系統(tǒng),可以通過網(wǎng)頁瀏覽器登錄系統(tǒng)并進(jìn)行管理和查詢等工作。該系統(tǒng) 涉及到的相關(guān)開發(fā)工具和關(guān)鍵技術(shù)主要有: .NET Framework , Visual Studio 2020, C, SQL SERVER 2020, 等,本章簡要介紹這些開發(fā)工具和關(guān)鍵技術(shù) 。 系統(tǒng)運(yùn)行模式 C/S模式 C/S(client/Server)模式,又叫客戶 /服務(wù)器模式。 在基于 C/S 的管理系統(tǒng)中,有兩個(gè)主體計(jì)算機(jī):客戶機(jī)和服務(wù)器。其中服務(wù)器是 C/S 模式的核心組成部分,服務(wù)器為客戶機(jī)提供網(wǎng)絡(luò)必須的資源,服務(wù)器負(fù)責(zé)處理數(shù)據(jù),客戶機(jī)負(fù)責(zé)和用戶交互,向后臺(tái)服務(wù)器發(fā)出請(qǐng)求。而客戶機(jī)是 C/S 模式的基礎(chǔ),客戶機(jī)依賴于服務(wù)器從而獲得所需要的資源 [5]。 C/S 模式的優(yōu)點(diǎn)是客戶端具有一定的處理能力,減輕了服務(wù)器的處理壓力。由于很多處理在客戶端執(zhí)行,因此客戶端響應(yīng)速度比較快。假如某些處理客戶端無法處理,再提交給服務(wù)器。 但是, C/S 模式也有較大的弊端: 隨著移動(dòng)辦公和分布式辦公的普及,系 統(tǒng)需要較強(qiáng)的擴(kuò)展性, C/S 模式很難滿足這種良好的擴(kuò)展性。 在 C/S 模式中,客戶端需要安裝專用的客戶端軟件,其安裝工作量、維護(hù)和升級(jí)成本比較高。 在 C/S 模式中,系統(tǒng)對(duì)客戶端的操作系統(tǒng)有可能會(huì)有限制,系統(tǒng)和操作系統(tǒng)的兼容性也是一個(gè)問題。 B/S模式 B/S (Browser/Server)模式,又叫瀏覽器 /且服務(wù)器模式。該模式是以 Web 技術(shù)為基礎(chǔ)的、不同于 C/S 模式的一種結(jié)構(gòu)模式, 在基于 B/S 的管理系統(tǒng)中, 瀏覽器替代了客戶端的一些功能。 在 B/S 模式中, 管理信息系統(tǒng)的核心功能大部分是 由服務(wù)器來完成的,瀏覽器端只負(fù)責(zé)和用戶的交互。目前基于大型數(shù)據(jù)庫的信息管理系統(tǒng)都是采用了 B/S 的技術(shù)模式,開發(fā)過程相對(duì)容易把握、易于使用。只要電腦上有瀏覽器客、開通網(wǎng)絡(luò),就可以與服務(wù)器端發(fā)生交互 [6]。 6 基于 ASP 的家庭財(cái)務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 在很多數(shù)據(jù)庫管理系統(tǒng)中,人們?cè)絹碓搅?xí)慣采用 B/S 體系結(jié)構(gòu)。 B/S 模式由三個(gè)層次組成: WEB 瀏覽器、 Web 服務(wù)器、數(shù)據(jù)庫服務(wù)器??蛻舳耸褂靡粋€(gè)通用的瀏覽器,用戶的所有操作都是通過瀏覽器和服務(wù)器進(jìn)行交互,瀏覽器端只進(jìn)行一些腳本的執(zhí)行,主要的處理功能是有服務(wù)器完成的。 B/S 結(jié)構(gòu)可以由 web 服務(wù)器能夠解釋的腳 本語言如 asp、 php 或 jsp 等編寫,也可以由 vb、 vc 等語言寫成形式。嚴(yán)格來說, B/S 結(jié)構(gòu)也是一種 C/S 結(jié)構(gòu)。 其結(jié)構(gòu)如圖 所示。 W E B 瀏 覽 器 顯 示邏 輯事 務(wù) 處 理 邏 輯數(shù)據(jù)庫數(shù) 據(jù) 處 理邏 輯客 戶 機(jī) W E B 服 務(wù) 器 數(shù) 據(jù) 庫 服 務(wù) 器 圖 B/S 模式結(jié)構(gòu)示意圖 B/S 模式結(jié)構(gòu)具有如下特點(diǎn)。 使用方法、維護(hù)和升級(jí)方式簡單。用戶只要會(huì)使用電腦、會(huì)使用電腦就可以操作。使用單一的 Browser 軟件,基本上無需培訓(xùn)即可使用;由于應(yīng)用程序都放在 Web 服務(wù)器上,軟件系統(tǒng)的改進(jìn)和升級(jí)只在服務(wù)器端進(jìn)行,減輕了開發(fā)維護(hù)工作量; B/S 架構(gòu)的產(chǎn)品明顯體現(xiàn)著更 為方便的特性 客戶端 成本降低,選擇更多。 對(duì)客戶端硬件要求低,客戶機(jī)只需要安裝Web 瀏覽器軟件就可以了。 資源共享性、獨(dú)立性高,系統(tǒng)擴(kuò)展性好。 應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較重。由于系統(tǒng)軟件安裝在服務(wù)器端,用戶界面主要事務(wù)邏輯在服務(wù)器端完全通過瀏覽器實(shí)現(xiàn),極少部分事務(wù)邏輯在瀏覽器端實(shí)現(xiàn),應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較重,一旦發(fā)生服務(wù)器 “崩潰 ”等問題,后果不堪設(shè)想。 綜上所述,本文建立的圖書管理系統(tǒng),選擇一個(gè)好的系統(tǒng)運(yùn)行模式非常的重要,這關(guān)系到系統(tǒng)的開發(fā)和維護(hù)性,也關(guān)系到系統(tǒng)的運(yùn)行狀況,所以 B/S 模式更加適合于 用作圖書管理系統(tǒng)的結(jié)構(gòu)模式 。 系統(tǒng)開發(fā)工具 .NET Framework .NET Framework 又叫 .Net 框架,它是由 Microsoft 推出的,用于快速進(jìn)行軟件開發(fā)的軟件平臺(tái)。在 .NET Framework 平臺(tái)下,可以進(jìn)行利用多種語言( C、 VB、 第 二 章 相關(guān)理論及技術(shù)介紹 7 C++、 Python 等)進(jìn)行軟件開發(fā),它是以一種采用系統(tǒng)虛擬機(jī)運(yùn)行的編程平臺(tái)和通用語言運(yùn)行庫( Common Language Runtime)為基礎(chǔ)的 [7]。 在 .NET Framework 平臺(tái)下進(jìn)行軟件開發(fā)有以下優(yōu)點(diǎn) [9]: (1).NET Framework 使應(yīng)用程序的開發(fā)簡單化、易學(xué)化。 (2).NET Framework 提供了一個(gè)面向?qū)ο蟮木幊汰h(huán)境,不管代碼是否本地存儲(chǔ)及執(zhí)行。 (3).NET Framework 的代碼執(zhí)行環(huán)境安全性較高。 (4).NET Framework 的代碼執(zhí)行環(huán)境軟件部署沖突較小。 (5).NET Framework 可以確?;?.Net 的代碼可與任何其他代碼集成。 (6)開發(fā)人員在 .NET Framework 環(huán)境下使可以實(shí)現(xiàn)語言上的跨平臺(tái)性。 .Net 框架可以為多種編程語言提供了統(tǒng)一的平臺(tái)和統(tǒng)一的 編程模型開發(fā)功能,比如, Visual J .Net, Visual C++ .Net, Visual C .Net, Visual Basic .Net 等。 .Net Framework 主要包含兩個(gè)組件: CLR 和 .Net 類庫。 CLR 是 .Net Framework 的基礎(chǔ) [11]。 CLR 可視為一個(gè)在程序執(zhí)行時(shí)管理代碼的代理,它提供核心服務(wù)如線程管理,內(nèi)存管理和遠(yuǎn)程處理,此外,根據(jù)嚴(yán)格的安全措施確保代碼的準(zhǔn)確性。事實(shí)上,運(yùn)行庫的基本原則是代碼的管理,以運(yùn)行庫為目標(biāo)的代碼稱為托管代碼,與此相對(duì)的是不以運(yùn)行庫 為目標(biāo)的代碼稱為非托管代碼。 .Net Framework 的另一個(gè)主要組件是 .Net 類庫,這是一個(gè)綜合的可重用的面向?qū)ο蟮念愋图?。它可用開發(fā)多種應(yīng)用程序,這些應(yīng)用程序包括傳統(tǒng)的命令行或圖形用戶界面 (GUI) 應(yīng)用程序,也包括基于 所提供的最新創(chuàng)新的應(yīng)用程序(如 XML Web services) [8]。 SQL SERVER 2020 SQL Server 2020 是 Microsoft 推出的,一個(gè)基于關(guān)系模型的數(shù)據(jù)庫管理系統(tǒng)。目前 SQL Server 2020 應(yīng)用比較廣泛 ,同 ORACLE、 SYBASE 相比, SQL Server 2020有著安裝簡便、易于使用、功能強(qiáng)大、兼容性強(qiáng)的優(yōu)點(diǎn) [12]。 8 基于 ASP 的家庭財(cái)務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 圖 SQL Server 2020 界面示意圖 對(duì)于使用者來說,它具有以下優(yōu)點(diǎn) [12]。 第一、 安裝簡單。 SQL Server 2020 的版本眾多,使用者可以根據(jù)自己的需要去安裝不同的版本。 SQL Server 2020 的安裝比較簡單,不需要過多的配置。 第二、 界面友好、使用簡單。 SQL Server 2020 與 Windows 系統(tǒng)界面風(fēng)格極為相似,有關(guān) SQL Server 的視 頻、使用方法隨處可得。 第三、 較好兼容性。個(gè)人 PC 上的操作系統(tǒng)基本上都是 Windows 操作系統(tǒng),選擇和 Windows 同出一門的 SQL Server2020 進(jìn)行 Windows 應(yīng)用程序的開發(fā),其兼容性一定會(huì)很好。 C C編程語言是一種目前應(yīng)用比較廣泛的面向?qū)ο蟮木幊陶Z言,是 .NET 平臺(tái)上最重要的語言之一。 C語言源于 C 語言和 C++語言,是微軟專門為 .NET 設(shè)計(jì)的編程語言 [12]。 簡單來說, C僅僅是 .NET 平臺(tái)上的一種開發(fā)語言。但事實(shí)上,目前人們也樂于使用 C語言在 .NET 平臺(tái)上進(jìn)行應(yīng)用程序的開發(fā)。 C繼承了 C++語言和 Java 眾多優(yōu)點(diǎn)。因而 C是一種使用簡單,功能強(qiáng)大,表達(dá)力豐富的全新語言 。 第 二 章 相關(guān)理論及技術(shù)介紹 9 系統(tǒng)關(guān)鍵技術(shù) ASP. NET ASP(Active Server Pages),又叫動(dòng)態(tài)服務(wù)器主頁。它和普通意義上的編程語言不一樣, ASP 允許使用 VBScript、 JavaScript 等腳本語言編寫 ASP 程序 [13]。 ASP. NET 是 ASP 的一個(gè)版本,它是一個(gè)已編譯的、基于 .NET 的編程環(huán)境,可以把諸如 VBScript、 JavaScript 等腳本語言編寫的程序在服務(wù)器上運(yùn)行。在 環(huán) 境下,可以用很多與 .NET 兼容的語言來創(chuàng)作應(yīng)用程序,比如 C、 JAVA等 [14]。 當(dāng)開發(fā)人員創(chuàng)建在 環(huán)境下創(chuàng)建應(yīng)用程序時(shí),開發(fā)人員可以使用 Web 窗體或 XML Web services,或以他們認(rèn)為合適的任何方式進(jìn)行組合。每個(gè)功能都能得到同一結(jié)構(gòu)的支持,使用戶能夠使用身份驗(yàn)證方案,緩存經(jīng)常使用的數(shù)據(jù),或者對(duì)應(yīng)用程序的配置進(jìn)行自定義。 圖 三層構(gòu)架 是一種實(shí)現(xiàn)跨平臺(tái)的數(shù)據(jù)訪問技術(shù),它允許不同類型的數(shù)據(jù)庫和數(shù)據(jù)源進(jìn)行數(shù)據(jù)交 互, 主要由兩個(gè)部分構(gòu)成 [15]。 10 基于 ASP 的家庭財(cái)務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 圖 的構(gòu)架 .NET Data Provider。 .NET Data Provider 包含 4 個(gè)主要組件, Connection、 Command、 DataReader、DataAdapter。 Connection 對(duì)象,主要用于和數(shù)據(jù)庫的交互。 Command 對(duì)象,成功的和數(shù)據(jù)連接后,可以用 Command 對(duì)象進(jìn)行對(duì)數(shù)據(jù)的相關(guān)操作,比如:檢索、查找、修改、刪除等等。 DataReader 對(duì)象,數(shù)據(jù)連接成功后從數(shù)據(jù)源中讀取數(shù)據(jù)。 DataAdapter 對(duì)象,主要用于執(zhí)行 SQL 命令的。其中, SQL Server .NET 數(shù)據(jù)提供程序包含 sql DataAdapter 對(duì)象, OLE DB .NET 數(shù)據(jù)提供程序包含 oledb DataAdapter 對(duì)象, ODBC .NET 數(shù)據(jù)提供程序包含 odbc DataAdapter 對(duì)象, Oracle .NET 數(shù)據(jù)提供程序包含 oracle DataAdapter 對(duì)象 [18]。 數(shù)據(jù)集 [16]( DataSet)。 DataSet 是支持 的斷開式、分布式數(shù)據(jù)方案的核心對(duì)象。 DataSet 是數(shù)據(jù)的內(nèi)存駐留表示形式,無論數(shù)據(jù)源是什么,它都會(huì)提供一致的關(guān)系編程模型 [19]。 第 二 章 相關(guān)理論及技術(shù)介紹 11 D a t a S e tD a t a R e l a t i o n C o l l e c i o nD a t a R e l a t i o n C o l l e c i o nD a t a R e l a t i o n C o l l e c i o nD a t a T a b l eD a t a R e l a t i o n C o l l e c i o nD a t a R e l a t i o n C o l l e c i o nE x t e n d e d P r o p e r t i e sD a t a R e l a t i o n C o l l e c i o nD a t a R e l a t i o n C o l l e c i o nD a t a T a b l e C o l l e c t i o nD a t a V i e wD a t a R e l a t i o n C o l l e c i o nD a t a R e l a t i o n C o l l e c i o nC h i l d R e l a t i o n sD a t a R e l a t i o n C o l l e c i o nD a t a R e l a t i o n C o l l e c i o nP a r e n t R e l a t i o n sP r i m a r y K e yD a t a R o wD a t a R o w C o l l e c t i o nD a t a R e l