系統(tǒng)應用框架設計方案_第1頁
系統(tǒng)應用框架設計方案_第2頁
系統(tǒng)應用框架設計方案_第3頁
系統(tǒng)應用框架設計方案_第4頁
系統(tǒng)應用框架設計方案_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、系統(tǒng)應用框架1 引言1.1 概述在軟件系統(tǒng)的實現(xiàn)需要有一個完善和行之有效的框架,以實現(xiàn)我們開發(fā)的高質(zhì)量和高效率之目的。1.2 編寫目的 使得開發(fā)的系統(tǒng)可擴展性,可維護性,可理解性更好,性能、可靠性更高。 使開發(fā)更加快捷,輕松,方便、高效 指導項目設計、開發(fā),測試以及實施維護 為系統(tǒng)架構、軟件框架的實現(xiàn)提供指導。1.3 讀者對象 公司決策管理層 公司項目管理人員、質(zhì)量管理人員, 系統(tǒng)設計人員、程序開發(fā)人員 實施維護人員、測試人員1.4 背景國內(nèi)軟件行業(yè)仍受“作坊式”影響和制約,從而造成了資源的浪費,而從軟件企業(yè)發(fā)展來看,資源重復浪費,使得公司的發(fā)展缺少沉淀和積累,表現(xiàn)在項目僅僅是滿足功能要求,而

2、缺乏總體的設計和長遠的考慮,導致項目對以后的項目沒有重用性,每一個項目總是基本上從零開始,造成開發(fā)效率低下,相同的功能重復實現(xiàn)代碼,已實現(xiàn)的系統(tǒng)擴展性、維護性差和移植性很差,嚴重影響軟件的質(zhì)量和制約軟件企業(yè)的發(fā)展。系統(tǒng)框架是系統(tǒng)設計中重要的組成部分,系統(tǒng)框架是軟件系統(tǒng)中核心的、可復用,可移植的部分,系統(tǒng)框架可從根本上使資源得到充公利用,可以方便,快捷地實現(xiàn)可維護,可擴展性,可重用性,高質(zhì)量的軟件系統(tǒng)。1.5 適應范圍適用于企業(yè)所有基于J2EE或.Net平臺的B/S多層分布式系統(tǒng)。其系統(tǒng)架構的思想同樣可以應用到C/S,CBS,BCS等多種結(jié)構的系統(tǒng)架構中去。1.6 術語、定義u J2EEJ2EE

3、是一套全然不同于傳統(tǒng)應用開發(fā)的技術架構,包含許多組件,主要可簡化且規(guī)范應用系統(tǒng)的開發(fā)與部署,進而提高可移植性、安全與再用價值。J2EE核心是一組技術規(guī)范與指南,其中所包含的各類組件、服務架構及技術層次,均有共通的標準及規(guī)格,讓各種依循J2EE架構的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,導致企業(yè)內(nèi)部或外部難以互通的窘境。 u B/S結(jié)構B/S結(jié)構即Browser/Server瀏覽器/服務器模式是WEB興起后的一種網(wǎng)絡結(jié)構模式,WEB瀏覽器是客戶端最主要的應用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務器上,簡化了系統(tǒng)的開發(fā)、維護和使用。

4、客戶機上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務器安裝Oracle、Sybase、Informix或 SQL Server等數(shù)據(jù)庫。瀏覽器通過Web Server 同數(shù)據(jù)庫進行數(shù)據(jù)交互。B/S最大的優(yōu)點就是可以在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網(wǎng)的電腦就能使用,客戶端零維護。系統(tǒng)的擴展非常容易。B/S結(jié)構的使用越來越多,特別是由需求推動了AJAX技術的發(fā)展,它的程序也能在客戶端電腦上進行部分處理,從而大大的減輕了服務器的負擔;并增加了交互性,能進行局部實時刷新。u 系統(tǒng)架構系統(tǒng)架構就是我們通常

5、所說的軟件系統(tǒng)的架構,又有簡稱架構,系統(tǒng)架構是軟件系統(tǒng)的邏輯形態(tài),也是軟件體系結(jié)構,同時也是軟件的骨架,即軟件系統(tǒng)由幾部分組成,每一部分完成什么樣的功能,它們之間是如何互相交互合作。軟件架構通常與一定的技術相對應即采用什么樣的技術,那么就會采用與之相對應的系統(tǒng)架構。u 系統(tǒng)框架系統(tǒng)框架就是建立一個軟件功能支撐系統(tǒng),用于完成和驅(qū)動一些主要的穩(wěn)定的軟件功能??蚣苁前舜罅考軜嫷膶崿F(xiàn)代碼和組件,這些代碼和組件實現(xiàn)了軟件架構中的穩(wěn)定部分,從而形成了一個應用的支撐結(jié)構??蚣苁且粋€由很多軟件部件和模塊組成的穩(wěn)定的架構。也可以說系統(tǒng)框架是系統(tǒng)架構的一個子集。系統(tǒng)框架可以支持某類應用的快速開發(fā)和實現(xiàn)。u 應

6、用框架應用框架為開發(fā)者提供了結(jié)構和模板,開發(fā)者以此為基線,來快速構建它們的應用系統(tǒng),開發(fā)者在框架之上構建應用系統(tǒng),通過重用由框架提供的代碼和設計,以此來減少工作量、提高開發(fā)效率和整個軟件系統(tǒng)的質(zhì)量。軟件質(zhì)量來自于設計,而系統(tǒng)架構又在設計中占重要地位。而框架又是架構的核心和靈魂。應用框架采用面向?qū)ο蠹夹g和設計模式中的模板模式和MVC模式,采用繼承和引用在垂直和水平兩個方面上進行復用技術,框架提供一個重用機制,對應用部分公共部分上浮成為框架,非公共的部分下沉到具體應用中去,以實現(xiàn)最好的復用技術,這樣形成的一個框架結(jié)構合理,性能可靠,代碼復用性強,易擴充,易維護,使用非常簡單,開發(fā)效率高。1.7 參

7、考資料 Java與設計模式(電子工業(yè)出版社)1.8 版本信息 創(chuàng)建標志:張洪波 2009-10-25 當前版本:Ver 2.0 最新提交日期:2010-05-102 應用框架基礎2.1 框架涉及技術系統(tǒng)框架的設計,實現(xiàn)是細致而又復雜,需要有較為系統(tǒng)、全面的的計算機軟件技術,豐厚的設計、編碼經(jīng)驗,還要對面向?qū)ο蠹夹g,UML統(tǒng)一建模語言,設計模式,數(shù)據(jù)庫工程等諸技術綜合熟練應用,此外還需要有創(chuàng)造的能力。2.2 框架遵循的原則框架遵循的原則是好萊烏原則即:YouCannotCall Us,We will Call You!即在框架下所有代碼都被動地被框架所調(diào)用,而不是相反??蚣茉O計遵循的原則為:集中

8、的控制與管理,分布的職能與服務。從整個軟件系統(tǒng)來講:系統(tǒng)控制越集中越好,而系統(tǒng)的職能需要分布化,也就是說一部分修改更新不至于影響到其它部分,因此這一原則也可以看出可伸縮性和靈活性的體現(xiàn)。2.3 框架設計追求的目標u 穩(wěn)定和靈活穩(wěn)定是指整個框架不會有大的改動。靈活是指保證在軟件修改的時候框架不修改或做很少的修改。換句話說,在軟件系統(tǒng)改動的時候,我們做不做修改或少量的修改便可實現(xiàn)軟件的修改目的。u 重用性獲得和使用更多可重用的代碼單元,這種重用性不僅包括框架的類和代碼,而且包括框架的設計。大量重復的代碼和通用的解決方案從具體的應用提取到框中來,被充分共享!u 可擴展性,可維護性該原則往往與開發(fā)效率

9、,帶來的性能影響等因素綜合考慮??蚣苤械墓泊a使系統(tǒng)出現(xiàn)問題時只需要對框架一個地方修改即。此外框架設計中遵循“開閉原則”,即關閉修改,開放擴展,使得系統(tǒng)具備良好的擴展性和可維護性。u 功能由框架自動實現(xiàn) 模板模式將功能的實現(xiàn)進行分解為若干個步驟,而對每一個步驟中的公共部分用抽象或虛方法來實現(xiàn),并且具體實現(xiàn)中采用鉤子技術開放給子類,這樣我們在具體使用框架時,就只需要實現(xiàn)個性的那部分,大部分功能將由框架部分來實現(xiàn)。因此無論的設計、實現(xiàn)框架,還是在使用框架,我們需要做的是告訴框架做什么,而至于做什么,怎么做交由框架去實現(xiàn)。u 結(jié)構合理,清晰結(jié)構合理可使整個框架結(jié)構清晰,便于理解和使用,以保證整個框

10、架在穩(wěn)定正常的狀態(tài)下斷完善,不斷發(fā)展??蚣車栏癫捎梅謱铀枷耄俗裱萌R塢原則和開閉原則外,在在層內(nèi)部類之間的盡量采用單一的樹形結(jié)構,避免閉環(huán)、循環(huán)關系的出現(xiàn),使得框架內(nèi)部關系簡單,結(jié)構清晰,同時也便于理解和應用,此外對分層的設計上一般是3到4層為宜,過多的分層也會導致整個系統(tǒng)結(jié)構復雜,不易理解。2.4 應用框架考慮的因素2.4.1 高效率和高質(zhì)量高質(zhì)量和高效率是我們在整個軟件開發(fā)過程中追求的目標,其中高質(zhì)量主要包括:系統(tǒng)功能,系統(tǒng)性能,系統(tǒng)的可維護性(包括:可讀性,可移值性,可理解性,可靠性等),安全性等方面,而高效率主要指開發(fā)過程的開發(fā)效率。也就是說又快又好的實現(xiàn)我們軟件系統(tǒng)。在具體實現(xiàn)中

11、功能和性能是我們經(jīng)常考慮的關鍵因素,但同時這兩者又是互相矛盾和制約,這就需要我們在系統(tǒng)框架的設計和實現(xiàn)在功能和性能是進行平衡,也就是說我們經(jīng)常在需要綜合各種因素,找到功能和性能的平衡點。2.4.2 不斷修正、完善、提升在整個項目開發(fā)過程中,應用框架需要不斷完善,對出現(xiàn)問題及時進行修正,調(diào)整,盡可能早地解決掉,注意借簽和吸收那些先進和經(jīng)驗和思想,當今社會技術的發(fā)展日新月異,我們還應留意新的技術,使框架與新技術緊密結(jié)合,使框架具有更強的適應性和生命力。2.4.3 統(tǒng)一、協(xié)調(diào)一致分工明確,一般情況下:一事一人,即一個功能主要由一個人完成,并且在整個過程中負責到底,對于其中出現(xiàn)的各種問題也由該人主要負

12、責解決。此外對制定的各種規(guī)范、標準在制定過程中要嚴格遵循,使開發(fā)出來的程序有同樣的風格和外觀。同時開發(fā)團隊又需要一個整體,避免在程序開發(fā)中各自為政,從而出現(xiàn)無政府的混亂局面。對于共享資源訪問和使用問題等,涉及到共公共部分的問題則需要統(tǒng)一解決和使用。2.4.4 實用性,可行性原則在系統(tǒng)分析和設計中需要多種技術和技巧的綜合應用,并實際情況、因素進行綜合考慮和權衡,尤其是面對一些復雜和重要問題的時候,目前很多技術和工具已經(jīng)相當成熟,而這些每一種技術都有其應用的適應范圍和時機,應用環(huán)境及前提,優(yōu)勢及局限性等,采用這些技術也同時會帶來一定的風險,這就要求我們對每一個問題深入了解分析,綜合考慮各種因素以及

13、系統(tǒng)實現(xiàn)目標,對方案進行選擇、使用。也就是說我們選用的方案不一定是最好的,但卻一定是最合適和最實用的。3 應用框架Java實現(xiàn)關于系統(tǒng)架構前面有說明這里就不再多說了,這里只對框架核心機制和思想進行介紹和說明?,F(xiàn)在我們以項目中的工種維護對框架有一個直觀認識和了解。3.1 應用框架實現(xiàn)環(huán)境系統(tǒng)框架采用目前流行的J2EE + Struts + Hibernet + Ext + JavaScript + Xml + Oracle技術來進行系統(tǒng)框架的實現(xiàn),系統(tǒng)框架實現(xiàn)基于的實現(xiàn)。針對主管版開發(fā)和運行環(huán)境均采用JAVA實現(xiàn),這樣系統(tǒng)的部暑支持跨平臺,數(shù)據(jù)庫采用Oracle 9i數(shù)據(jù)庫,使得系統(tǒng)性能得到保證

14、。 Web應用服務器:Tomcat 5.5 開發(fā)環(huán)境:Eclipse 3.5 + Tomcat + Struts 2.0 + Hibernet3.0 + Ext2.1 + Json-lib- + jdk15.jar 數(shù)據(jù)庫:Oracle 9i 操作系統(tǒng):Windows 2000或Windows XP或 Liniux 操作系統(tǒng)。3.2 系統(tǒng)框架3.3 框架組件圖3.3.1 總體組件圖 組件圖 組件圖描述整個框架為分層結(jié)構,分為界面層(又名展現(xiàn)層),業(yè)務邏輯層,數(shù)據(jù)訪問層,數(shù)據(jù)實體類,通用層,數(shù)據(jù)庫對象。層次之間的依賴關系組件圖中所示。3.3.2 界面層組件圖3.3.2

15、.1 組件圖 組件圖描述用戶界面層負責與用戶進行交互即接受用戶輸入或操作,調(diào)用業(yè)務邏輯層進行處理,并將處理后的結(jié)果呈現(xiàn)給用戶。用戶界面層只可以調(diào)用業(yè)務邏輯層。3.3.3 業(yè)務邏輯組件圖 組件圖 組件圖描述業(yè)務邏輯層主要功能是實現(xiàn)業(yè)務功能,除些之外業(yè)務邏輯層還負責在框架中擔當控制器即MVC中的C的功能。業(yè)務邏輯層為界面層服務,業(yè)務邏輯層調(diào)用通用層,數(shù)據(jù)實體層和數(shù)據(jù)訪問層,業(yè)務邏輯層不能直接對數(shù)據(jù)庫進行訪問。3.3.4 數(shù)據(jù)訪問層組件圖 組件圖 組件圖描述數(shù)據(jù)訪問層主要職責是實現(xiàn)對數(shù)據(jù)庫的訪問,其可以直接訪問數(shù)據(jù)庫即在該層可以出

16、現(xiàn)SQL語句或直接調(diào)用SQL的過程,數(shù)據(jù)訪問層既可以通過數(shù)據(jù)庫對象中的HibernateDB對數(shù)據(jù)庫進行操作。對HibernateDB我們通過接口支持多種數(shù)據(jù)庫設計。3.3.5 數(shù)據(jù)庫對象類組件圖 組件圖 組件圖描述數(shù)據(jù)庫對象是對數(shù)據(jù)庫公共操作進行封裝,主要有兩個方面功能:一是對會話進行管理(包括連接池),二是:對數(shù)據(jù)庫進行操作的封裝,這一層需要考慮兩個主要因素:一是即支持Hibernate的持久化,同時也適應傳統(tǒng)的數(shù)據(jù)庫持久化,二是:傳統(tǒng)的數(shù)據(jù)庫持久化方式需能夠支持各種不同的數(shù)據(jù)庫,采用工廠模式進行實現(xiàn)。3.3.6 數(shù)據(jù)實體層組件圖 組件圖3.3.6

17、.2 組件圖描述數(shù)據(jù)實體層我們對其時行了弱化,即只建立對數(shù)據(jù)庫之間的映射,除些之外不提供其它功能,這樣的目的一來是Hibernate和Struts需要,二來使該實體層作在整個系統(tǒng)中更加通用。3.3.7 通用層組件圖 組件圖 組件圖描述通用層是整個系統(tǒng)的公共部分,也是整個框架的核心之一(框架主要核心:一是通用層,二:數(shù)據(jù)庫對象),該層不能訪問數(shù)據(jù)庫。該層分為個部分一是:底層的支持函數(shù),二是:公共的應用部分。3.4 系統(tǒng)類視圖類是面向?qū)ο笾饕秃诵?這里僅對系統(tǒng)中關鍵的類用類圖進行描述。側(cè)重于描述類之間的關系統(tǒng)。3.4.1 通用層類圖 類圖

18、類圖描述通用層又稱公共層,主要是一些公共類,公共方法,公共服務等一些實現(xiàn),目前該部分主要有幾個部分,上面左邊的包中的是底層的公共服務(包括:公共函數(shù),系統(tǒng)環(huán)境和系統(tǒng)常量,數(shù)據(jù)格式化,數(shù)據(jù)有效性檢驗),公共類(這些類一般來講主要是體現(xiàn)數(shù)據(jù)結(jié)構,一般來講不提供具體服務),公共應用類(系統(tǒng)一些公共服務主要包括:WHERE條件生成類,公共業(yè)務類,郵件發(fā)送,文件管理,對頁面操作,系統(tǒng)安全類等)。它們之間的關系統(tǒng)如圖所示。3.4.2 數(shù)據(jù)庫對象類圖 類圖 類圖描述類圖主要用于對數(shù)據(jù)庫對象進行描述。采用抽象工廠和單例模式的實現(xiàn)。在具體實現(xiàn)中會在接口和其實現(xiàn)的類之間加上一個抽象類,

19、以供以后擴展更加靈活和方便。3.4.3 系統(tǒng)分層實現(xiàn)類圖 類圖 類圖描述上面類主要分為三層,業(yè)務邏輯層,數(shù)據(jù)訪問層,在業(yè)務邏輯層需要根據(jù)系統(tǒng)配置來確定產(chǎn)生具體的抽象工廠,而在數(shù)據(jù)訪問層每種數(shù)據(jù)庫只需要直接采用對應的抽象工廠就可以了。每一層的具體業(yè)務實現(xiàn)中除了繼承父類外,還要包括該層公共操作,這樣可以最大限度地保證重用性和靈活性。3.5 項目文件組織針對以上系統(tǒng)框架構建,對項目文件(或資源)進行設,該文件結(jié)構設計基于開發(fā)環(huán)境進行,同時再對框架各部分進一步具體詳細地描述及說明。項目文件組織所屬部分文件名文件描述(格式)類型包含主要內(nèi)容備注Java ResourcesJa

20、va 源文件文件夾Src 資源文件數(shù)據(jù)庫對象 Hibernate配置文件XML文件實體層DataEntity 數(shù)據(jù)實體層文件夾實體層Data_BsDatM 基礎數(shù)據(jù)維護包整個系統(tǒng)中的數(shù)據(jù)實體,包括:(1)數(shù)據(jù)實體類 (2)數(shù)據(jù)實體對應的映射XML實體層Data_ArchvM 檔案管理包以應模塊中的實體類及其對應的XML映射文件實體層Data_DissCM 疾病控制包以應模塊中的實體類及其對應的XML映射文件實體層Data_DisseM 疾病管理包以應模塊中的實體類及其對應的XML映射文件實體層Data_WmnHCM 婦女保健包以應模塊中的實體類及其對應的XML映射文件實體層Data_ChdHC

21、M 兒童保健包以應模塊中的實體類及其對應的XML映射文件實體層Data_MdclSR 醫(yī)療服務包以應模塊中的實體類及其對應的XML映射文件實體層Data_OthrBM 其它業(yè)務包以應模塊中的實體類及其對應的XML映射文件實體層Data_SysApM 系統(tǒng)管理包以應模塊中的實體類及其對應的XML映射文件實體層Data_Common 公共部分包數(shù)據(jù)實體中的公共部分實體層ParentDataEntity.java 實體父類類數(shù)據(jù)實體的父類數(shù)據(jù)訪問層DataAccess 數(shù)據(jù)實體層文件夾實現(xiàn)對數(shù)據(jù)庫的訪問數(shù)據(jù)訪問層DA_BsDatM 基礎數(shù)據(jù)維護包對應模塊的DA數(shù)據(jù)訪問層DA_ArchvM 檔案管理包

22、對應模塊的DA數(shù)據(jù)訪問層DA_DissCM 疾病控制包對應模塊的DA數(shù)據(jù)訪問層DA_DisseM 疾病管理包對應模塊的DA數(shù)據(jù)訪問層DA_WmnHCM 婦女保健包對應模塊的DA數(shù)據(jù)訪問層DA_ChdHCM 兒童保健包對應模塊的DA數(shù)據(jù)訪問層DA_MdclSR 醫(yī)療服務包對應模塊的DA數(shù)據(jù)訪問層DA_OthrBM 其它業(yè)務包對應模塊的DA數(shù)據(jù)訪問層DA_SysApM 系統(tǒng)管理包對應模塊的DA數(shù)據(jù)訪問層DA_Common 公共部分包對應模塊的DA數(shù)據(jù)訪問層ParentDataAccess.java 實體父類類對應模塊的DA數(shù)據(jù)訪問層ICommonDA.java 公共數(shù)據(jù)訪問接口接口公共數(shù)據(jù)訪問接口

23、數(shù)據(jù)訪問層AbstCommonDA.java 公共數(shù)據(jù)訪問抽象類類公共數(shù)據(jù)訪問抽象類數(shù)據(jù)訪問層CommonDAForOracle.java 具體公共訪問類類具體公共訪問類數(shù)據(jù)訪問層IAbstractFactoryOfDB.java 抽象工廠接口類抽象工廠接口數(shù)據(jù)訪問層AbstractFactoryOfDB.java 抽象工廠的抽象類類抽象工廠的抽象類數(shù)據(jù)訪問層AbstractFactoryForOracleOfDB.java 具體數(shù)據(jù)庫的抽象工廠類具體數(shù)據(jù)庫的抽象工廠數(shù)據(jù)訪問層AbstParentDataAccess.java 數(shù)據(jù)訪問層抽象父類類數(shù)據(jù)訪問層抽象父類數(shù)據(jù)訪問層ParentDat

24、aAccessForOracle.java 具體數(shù)據(jù)訪問層父類類具體數(shù)據(jù)訪問層父類業(yè)務邏輯BnsLogic 業(yè)務邏輯層文件夾系統(tǒng)業(yè)務邏輯業(yè)務邏輯BL_BsDatM 基礎數(shù)據(jù)維護包對應部分的業(yè)務邏輯業(yè)務邏輯BL_ArchvM 檔案管理包對應部分的業(yè)務邏輯業(yè)務邏輯BL_DissCM 疾病控制包對應部分的業(yè)務邏輯業(yè)務邏輯BL_DisseM 疾病管理包對應部分的業(yè)務邏輯業(yè)務邏輯BL_WmnHCM 婦女保健包對應部分的業(yè)務邏輯業(yè)務邏輯BL_ChdHCM 兒童保健包對應部分的業(yè)務邏輯業(yè)務邏輯BL_MdclSR 醫(yī)療服務包對應部分的業(yè)務邏輯業(yè)務邏輯BL_OthrBM 其它業(yè)務包對應部分的業(yè)務邏輯業(yè)務邏輯BL

25、_Common 公共部分包業(yè)務邏輯的公共部分業(yè)務邏輯ConstBLPrs.java 業(yè)務邏輯中常用服務類常用一些需要訪問數(shù)據(jù)庫的業(yè)務邏輯如:取得當前會計期間,取得當前系統(tǒng)時間,取得流水碼等業(yè)務邏輯GenerialAction.java 一般Action的父類類提供一些業(yè)務邏輯通用服務或類子類公共部分業(yè)務邏輯ParentDispatchAction.java 分發(fā)Action的父類類提供一些業(yè)務邏輯通用服務或類子類公共部分通用層Comm 系統(tǒng)管理文件夾系統(tǒng)公共操作部分通用層CommApp 公共應用包公共應用部分通用層ClientInPage.java 在頁面中的客戶端類包括:(1)生成客戶端一些

26、腳本或直接在客戶端運行腳本通用層CommBNS.java 業(yè)務常用類類與業(yè)務有關公共類,如取得倉庫類型,取得供應商類型等,與業(yè)務有關,但不需要訪問數(shù)據(jù)庫,并且該部分由于涉及具體業(yè)務日后移植性較差。通用層EmailManage.java 電子郵件服務類電子郵件收發(fā)通用層FileManage.java 文件管理類文件管理,主要包括:文件創(chuàng)建,修改,刪除,上傳,下載,文件夾創(chuàng)建,修改,刪除等。通用層CommCls 公共類包一些公共類,該包屬于公共應用部分通用層ColumnInfo 表示列的類類列信息通用層CustomWhereElement 典型的查詢條件類類典型的查詢條件類通用層DefineWhe

27、reElement 定制的查詢條件類類定制的查詢條件類通用層ProcParamInfo 存儲過程參數(shù)類類存儲過程參數(shù)類通用層CommFun 公共函數(shù)包底層的公共部分通用層Functions.java 公共方法類為最底層的公共方法(服務)。通用層Security.java 系統(tǒng)安全類類包括:數(shù)據(jù)加密,數(shù)據(jù)解密。通用層SysEnvironment.java 系統(tǒng)環(huán)境類類系統(tǒng)一些配置數(shù)據(jù),系統(tǒng)當前用戶登陸信息等。通用層TheConsts.java 系統(tǒng)常量類類系統(tǒng)中一些常量,在這里進行統(tǒng)一配置。通用層ValidityVerify 數(shù)據(jù)是否有效驗證類對數(shù)據(jù)有效性進行驗證和檢驗通用層FormatData

28、 數(shù)據(jù)格式化類類數(shù)據(jù)格式轉(zhuǎn)換類數(shù)據(jù)庫對象DataBase 數(shù)據(jù)庫庫對象文件夾數(shù)據(jù)庫訪問對象數(shù)據(jù)庫對象DB 數(shù)據(jù)庫包包數(shù)據(jù)庫數(shù)據(jù)庫對象IHibernateDB.java 數(shù)據(jù)庫對象接口 接口會話管理數(shù)據(jù)庫對象AbstHibernateDB.java 抽象數(shù)據(jù)庫類類訪問各種數(shù)據(jù)庫的公共方法數(shù)據(jù)庫對象HibernateDBForOracle.java 具體數(shù)據(jù)庫類類對Oracle數(shù)據(jù)庫訪問數(shù)據(jù)庫對象HibernateSessionFactory.java 會話管理的類類主要是會話管理有關服務Libraries 庫JavaScript ResourcesJava腳本資源Build生成的二進制類代碼界面

29、層WebContentWEB 的相關內(nèi)容文件夾用戶界面層發(fā)布時只需這部分即可。界面層Ext Ext 框架部分文件夾Ext的框架包界面層Include 頁面中包含部分文件夾界面層CssFiles 樣式文件文件夾CSS文件界面層JsFiles JavaScript腳本文件夾JavaScript文件界面層Images 系統(tǒng)圖片文件夾系統(tǒng)圖片界面層Imag 用戶圖片文件夾用戶圖片界面層Meta-INF 媒體信息文件夾界面層UserInterface 用戶界面文件夾用戶界面層界面層BsDatM 基礎數(shù)據(jù)維護文件夾對應模塊的界面界面層ArchvM 檔案管理文件夾對應模塊的界面界面層DissCM 疾病控制文

30、件夾對應模塊的界面界面層DisseM 疾病管理文件夾對應模塊的界面界面層WmnHCM 婦女保健文件夾對應模塊的界面界面層ChdHCM 兒童保健文件夾對應模塊的界面界面層MdclSR 醫(yī)療服務文件夾對應模塊的界面界面層OthrBM 其它業(yè)務文件夾對應模塊的界面界面層SysApM 系統(tǒng)管理文件夾對應模塊的界面界面層UserControls 用戶控件文件夾用戶控件或第三方控件界面層CommPages 公共頁面文件夾系統(tǒng)公共頁面界面層TempFolder 臨時文件夾文件夾對應模塊的界面界面層TmpFiles 臨時文件文件夾對應模塊的界面界面層TestPages 測試頁面文件夾對應模塊的界面界面層Com

31、mAppTool 公共應用工具文件夾公共應用工具主要應于測試,方便或提高開發(fā)效率而開的工具。界面層Web-INF Web 信息文件夾WEB一些信息界面層LIB JAVA類庫文件夾Web的類庫界面層Web.xml Web的XML配置文件XML文件WEB的XML配置文件界面層Struts-config.xml Struts配置文件XML文件對Struts的配置界面層index.jsp 登陸進入頁面JSP頁面頁面進入的主頁面頁面名字可以自定4 應用框架C#實現(xiàn)4.1 系統(tǒng)框架在架構中作用框架灰色部分為框架核心部分,白色部分框架也對公共應用部分進行了集成?,F(xiàn)在對業(yè)務部分左側(cè)的方框部分是直接提供給用戶或

32、程序開發(fā)人員的功能,本部分只對該部分進行進一步描述。u 遠程管理:主要針對系統(tǒng)進行遠程維護功能。u 備份恢復:主要針對數(shù)據(jù)庫的備份的恢復。u 權限應用:主要考慮目前的用戶組,用戶權限,系統(tǒng)資源權限(不同的用戶,用戶組,部門,工作組等看到系統(tǒng)不同的數(shù)據(jù))。權限管理的范圍:菜單,數(shù)據(jù),按鈕。u 工作流:首先考慮工作流開庫配置,后期將實現(xiàn)圖形化方式給用戶開放自定義工作流配置。u 幫助平臺:主要提供在線互動幫助和傳統(tǒng)的在線幫助。u 短信平臺:首先考慮用短信貓實現(xiàn),后期可考慮與通信遠營商合作實現(xiàn)自己的底層實現(xiàn),最后實現(xiàn)產(chǎn)品化。u 工作組:對于系統(tǒng)中臨時或跨部門,或協(xié)作等需要組織在一起的人員集合的臨時機機

33、構,框架提供該部分功能。u 會計期間:主要針對財務,進銷存核算部分常用的會計期間。u 工廠日歷:主要針對生產(chǎn)制,加工行業(yè),在進行計劃時需要考慮工作時間的休息,假日等時間跳過。u 委托:某個可以將自己的權限或任務授予另一個人或另幾個人,這種授權在某個時間段時有效。u 組織機構:一般用戶都有一定的組織機構,這里包括組織(主要指人員),機構(主要指部門)。u 表單設計:實現(xiàn)表單設計器,表單設計器主要實現(xiàn)功能是數(shù)據(jù)實體層代碼生成,界面層代碼生成以及其它相關一些代碼自動生成功能。4.2 應用框架實現(xiàn)環(huán)境u 開發(fā)環(huán)境: .Net FramWork 3.5 + Ajax + JavaScript;u 數(shù)據(jù)庫

34、環(huán)境:Oracle10G或其以上版本u 操作系統(tǒng):Windows 操作系統(tǒng) 具體的應用環(huán)境也是在該環(huán)境下運行。4.3 C#頁面生命周期在應用框架的界面部分需要考慮的是UI分步操作,那么在UI分步操作的實現(xiàn)時,我們就需要了解頁面的生命周期,這里針對DotNet3.5頁面中的ASPX頁面生命周期進行說明,至于ASCX頁面這里不再具體敘述,請參考相關資料。這里需要說明的是,用戶控件與一般頁面在一起時默認的加載順序為:頁面初始化用戶控件初始化用戶控件載入頁面載入頁面顯示用戶控件顯示頁面事件用戶控件事件頁面呈現(xiàn)用戶控件呈現(xiàn)。這種順序也是我們在應用框架時需要考慮的。階段編碼階段代碼階段名稱階段描述執(zhí)行時機

35、對應方法備注S00Structor構造函數(shù)在服務器端首先執(zhí)行該方法,在該方法中可以調(diào)用QueryString或者Request對象。XXX(),其中XXX為頁面類名S01初始化階段S0101OnPreInit預初始化引發(fā)OnPreInit事件OnPreInit()S0102OnInit初始化控件初始化處理及視圖跟蹤OnInit()S0103OnInitComplete初始化完成控件已初始化完成。OnInitComplete()S0104LoadControlState載入控件狀態(tài)頁面遞歸調(diào)用Control集合中控件的LoadControlState方法,這些控件已經(jīng)調(diào)用了Page類的Regis

36、terRequiresControlState方法,以使用它們的控件狀態(tài)。PostBack OnlyLoadControlStateS0105LoadViewState載入視圖狀態(tài)頁面首先調(diào)用自身的LoadViewState方法,接著遞歸調(diào)用Controls集合控件的LoadViewState方法,以允許它們加載它們的已經(jīng)保存的視圖狀態(tài)。PostBack OnlyLoadViewStateS0106Load Post Data加載回傳數(shù)據(jù)頁面調(diào)用實現(xiàn)IPostBackDataHandler接口的控件的LoadPostData方法,并將回傳數(shù)據(jù)傳遞給該方法。每個控件的LoadPostDate方法

37、都必須訪問回傳數(shù)據(jù),并據(jù)此更新相應的控件屬性。例如:TextBox控件的LoadPostData方法將文本框的新值設置為TextBox控件的Text屬性值。PostBack Only Second TryS02加載SO201OnPreLoad預加載頁面調(diào)用OnPreLoad方法以引發(fā)PreLoad事件。該事件表示頁面生命周期將進入加載階段OnPreLoadSO202Page_Load加載頁面首先調(diào)用自身的OnLoad方法以引發(fā)自身的Load事件,接著遞歸調(diào)用Controls集合中控件的OnLoad方法以引發(fā)它們的Load事件。頁面開發(fā)人員可以為Load事件注冊回調(diào),那么就可以通過編程將子控件添

38、加到頁面的Controls集合中Page_LoadS0203Load Post Data加載回傳數(shù)據(jù)頁面調(diào)用控件的LoadPostBack方法。這些控件如果實現(xiàn)了IPostBackDataHandler接口,那么在加載階段,它們已通過編程添加到Controls集合中。PostBack Only Second TryS0204Raise Post Data Changed Event引發(fā)回傳數(shù)據(jù)修改事件頁面調(diào)用控件的RaisePostDataChangeEvent方法,這些控件的LoadPostData方法返回true。RaisePostDataChangeEvent方法引發(fā)了回傳數(shù)據(jù)修改事件。

39、例如:當文本框的新值與舊值不同時,那么TextBox控件將引發(fā)該事件。PostBack OnlyS0205Raise PostBack Event引發(fā)回傳事件頁面調(diào)用控件的RaisePostEvent方法,這些控件相關的Html元素用于提交表單。例如,Button控件的相關Html元素將頁面回傳到服務器??丶腞aisePostBackEvent方法必須將回傳事件映射到一個或多個服務器事件。例如,Button控件的RaisePostBackEvent方法將事件映射到了服務器端事件Command和Click上。PostBack OnlyS0206Load Complete加載完成頁面調(diào)用OnLo

40、adComplete方法來引發(fā)LoadComplete事件,這表示所有加載活動,包括加載回傳數(shù)據(jù),以及引發(fā)回傳數(shù)據(jù)修改事件,并以更新控件自身的活動都完成了。OnLoadComplete()S0207Raise CallBack Event引發(fā)回調(diào)事件頁面調(diào)用控件的RaiseCallBackEvent方法。該控件可使用AspNet客戶端回調(diào)機制來允許客戶端方法(例如JavaScript函數(shù))調(diào)用服務器端方法,而無需將整個頁面回傳給服務器。RaiseCallBackEvent方法必須調(diào)用服務器端方法。如果頁面的回傳使用了客戶端回調(diào)機制,那么頁面將不會執(zhí)行剩余的頁面生命周期階段。XX_Event()

41、事件處理S03預呈現(xiàn)SO301PreRende預呈現(xiàn)在頁面生命周期這個階段執(zhí)行一下操作。a:調(diào)用EnsureChildControls方法來確保在頁面進入呈現(xiàn)階段之前,創(chuàng)建其子控件。b:調(diào)用自身的OnPreRender方法來引發(fā)PreRender事件。c:遞歸調(diào)用Controls集合中控件的OnPreRender方法,以引發(fā)它們的PreRender事件。OnPreRenderSO302PreRender Complete預呈現(xiàn)完成頁面調(diào)用OnPrerenderComplete方法來引發(fā)PreRenderComplete事件,這表示所有預呈現(xiàn)活動完成了。PreRender CompleteSO3

42、03Save Control State保存控件狀態(tài)頁面遞歸調(diào)用Controls集合中控件的SaveControlState方法。這些控件已經(jīng)調(diào)用了Page類的RegisterRequiresControlState方法來保存它們的控件狀態(tài)Save Control StateSO304Save View State保存視圖狀態(tài)頁面首先調(diào)用自身的SaveViewState方法,然后調(diào)用Controls集合中的SaveViewState方法,以允許它們來保存其視圖狀態(tài)。Save View StateSO305Save View Complete保存視圖完成頁面調(diào)用OnSaveStateComple

43、te方法以引發(fā)SaveStateComplete事件,這表示所有狀態(tài)保存活動都完成了Save View CompleteS03Show及釋放呈現(xiàn)S0301Render呈現(xiàn)a:創(chuàng)建一個HtmlTextWriter類實例,該實例封裝了輸出響應流b:調(diào)用RenderCOntrol方法,并將HtmlTextWriter實例傳遞給該方法。RenderControl方法遞歸調(diào)用子控件的RenderControl方法,以便允許每個控件能夠呈現(xiàn)其Html標記文本。子控件的Html標記文本組成了最終發(fā)送給客戶端瀏覽器的Html標記文本。Render()S0302OnUnload反加載OnUnloadS0303D

44、ispose釋放Dispose4.4 框架組件圖4.4.1 系統(tǒng)總體組件圖4.4.2 界面層組件圖4.4.3 業(yè)務邏輯層組件圖4.4.4 數(shù)據(jù)訪問層組件圖4.4.5 通用層組件圖4.5 項目類圖4.5.1 公共層類圖4.5.2 數(shù)據(jù)庫相關類圖4.5.3 系統(tǒng)分層框架5 框架支持的典型應用通過對系統(tǒng)中功能進行分析,系統(tǒng)需要實現(xiàn)幾種常用的界面,為整個系統(tǒng)框架的實現(xiàn)服務,同時也為具體功能頁面提供模板和參考。這幾種典型的界面,覆蓋了業(yè)務大部分的業(yè)務,這幾種模板將由系統(tǒng)框架統(tǒng)一支持,對于以后若有其它界面需要系統(tǒng)支持,那么會根據(jù)需要再對其進行具體描述和實現(xiàn)。5.1 列表頁面 功能描述:列表頁面在系統(tǒng)經(jīng)常用

45、到,一般用于數(shù)據(jù)只是單表的情況,因此數(shù)據(jù)在網(wǎng)絡控件展示。 實現(xiàn)功能:選擇。查詢,新增,刪除,修改功能。 處理過程:u 選擇:用戶鼠標移至該記錄上時,該條記錄會變?yōu)榧炊ǖ念伾?,如果用戶鼠標單擊該行記錄,那么鼠標移至該記錄上的顏色便會定格到該記錄上,至到用戶用鼠標單擊其它記錄或該頁面被關閉為至。u 查詢:直接根據(jù)用戶輸入(或選擇)的條件,從數(shù)據(jù)庫中檢索出符合條件的記錄并在網(wǎng)絡控件中顯示。u 新增:用戶進接點擊新增按鈕,彈出該維護頁面中該頁面進行新增記錄,新增完畢后進行保存。u 刪除;選中一條或多條需要刪除的記錄,直接點擊刪除按即可進行刪除,也可點擊維護彈出維護頁面,點擊維護頁面中的刪除按鈕進行刪除

46、該記錄。u 修改:選擇該記錄點擊維護鏈接彈出維護頁面對該記錄進行修改,并保存。 操作流程: 界面示意圖: 附注說明:維護頁面即可以直接彈出,也可以由進入到維護頁面。5.2 列表、明細頁面 功能描述:這種頁面是即有列表又有明細的頁面,明細可以有一個明細也可以有多個明細。 實現(xiàn)功能:查詢,增加,刪除,修改。 處理過程:u 查詢查詢分為對列表查詢和明細內(nèi)容查詢。對列表查詢與列表頁面中的查詢一樣,這里就不重復敘述,查詢具體操作:點擊詳細鏈接按鈕進入明細頁面,在明細頁面中輸入明查詢條件,點擊查詢,即可查詢出符合條件的記錄。u 增加:點擊列表界面上的新增按鈕,進入家庭檔案維護頁面,錄入列表信息點擊列表信息

47、上方的新增按鈕,保存列表信息。選擇要增加的明細頁面,然后點擊新增按鈕,在彈出維護面輸入該明細信息,按保存按鈕進行明細信息保存。u 刪除:刪除分為對列表數(shù)據(jù)刪除和對明細數(shù)據(jù)的刪除。對列表數(shù)據(jù)的刪除:直接在列表界面上選擇要刪除的記錄,然后點刪除即可刪除該記錄。也可進入列表維護頁面,點擊列表信息上方的刪除按鈕進行刪除該列表數(shù)據(jù)。需要說明的是:對列表記錄(列表記錄即主表記錄)刪除時,將邊同主表下的對應的明細一并刪除。對明細記錄的刪除:對明細記錄的刪除,進入明細頁面并選擇該明細所在的頁面,然后選擇要刪除的一條或多條明細記錄,然后點刪除按鈕,即可刪除相應的明細記錄。u 修改點擊列表界面上的維護鏈接按鈕,進

48、入維護頁面,對列表信息進行修改,點列表信息上方的保存銨鈕將修改保存到數(shù)據(jù)庫。選擇要修改的明細頁面,選擇記錄點擊該明細頁面中的修改按鈕彈出明細維護頁面,進行修改并點保存銨鈕對該明細進行保存。 操作流程: 界面示意: 附注說明:u 刪除列表信息時,將邊同該列表信息下的所有明細一并刪除,刪除操作是不可恢復操作。5.3 樹形界面 功能描述:樹形頁面一般在系統(tǒng)中使用也是比較多的。 實現(xiàn)功能:對某一結(jié)點信息查看及維護,對某一結(jié)點(包含該結(jié)點在內(nèi)的)以下級別結(jié)點,進行查詢,新增同級結(jié)點,新增下級結(jié)點,刪除結(jié)點,維護修改結(jié)點信息。 處理過程:u 查詢相關結(jié)點:選擇某一結(jié)點(可選擇包括根結(jié)點在內(nèi)的所有結(jié)點),在

49、相關結(jié)點頁面內(nèi)會顯示該結(jié)點以及該結(jié)點以下所有結(jié)點,用戶可輸入(或選擇)查詢條件,點擊查詢按鈕,即可查詢出符合條件的數(shù)據(jù)。u 維護結(jié)點信息用鼠標選擇中某一結(jié)點,在結(jié)點信息中可看到該結(jié)點對應的信息,如果點擊保存按鈕,可對該記錄的修改進行保存。u 對記錄明細維護用鼠標選中某一結(jié)點,在部門人員的明細頁面可看到該結(jié)點對應的明細數(shù)據(jù),可對該明細數(shù)據(jù)進行維護和查詢。u 新增同級結(jié)點用鼠標選中某一結(jié)點,點擊樹形面板上的新增同級結(jié)點,便彈出結(jié)點維護界面,然后輸入你要新增的結(jié)點的信息,點擊保存即可保存。u 新增下級結(jié)點用鼠標選中某一結(jié)點,點擊樹形面板上的新增下級結(jié)點,便彈出結(jié)點維護界面,然后輸入你要新增的結(jié)點的信

50、息,點擊保存即可保存。u 刪除結(jié)點用鼠標選中某一結(jié)點,然后直接點頁面樹形面板中的刪除當前結(jié)點按鈕,即可刪除該結(jié)點,也可用鼠標選中某一結(jié)點,進行該結(jié)點維護頁面點擊刪除按鈕刪除該結(jié)點。 操作流程: 界面示意: 附注說明:u 結(jié)點刪除時將連同結(jié)點下的所有子結(jié)點一并被刪除。u 該框架同時持是否允許刪除有子結(jié)點的結(jié)點,通過對樹的配置進行來決定。在展示其明細數(shù)據(jù)時同時也支持是否對列表信息維護的支持,通過用用戶配置來決定是否折疊(折壘起來的列表結(jié)點信息的維護界面用戶仍可通過展開按鈕進行展開)。6 附錄6.1 面向?qū)ο笤O計原則6.1.1 類設計原則u SRP單一職責原則:一個類應該有且只有一個改變的理由。 u OCP原則即開封閉原則一個模塊在擴展性方面應該是開放的而在更改性方面應該是封閉的,開閉原則換句話就是說系統(tǒng)發(fā)生變化時應對修改關閉,才擴展開放。在進行面向?qū)ο笤O計時要盡量考慮接口封裝機制、抽象機制和多態(tài)技術。該原則同樣適合于非面向?qū)ο笤O計的方法,是軟件工程設計方

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論