U8二次開發(fā)規(guī)范.doc_第1頁
U8二次開發(fā)規(guī)范.doc_第2頁
U8二次開發(fā)規(guī)范.doc_第3頁
U8二次開發(fā)規(guī)范.doc_第4頁
U8二次開發(fā)規(guī)范.doc_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

U8二次開發(fā)規(guī)范1. 背景目前U8產(chǎn)品越來越龐大,提供的應用與服務也越來越多樣化。公司整體的發(fā)展戰(zhàn)略要求U8要成為一個能支持規(guī)?;桓兜漠a(chǎn)品。為了達到這樣的目標,僅僅通過我們的水平產(chǎn)品是無法滿足客戶的行業(yè)化、個性化的要求的。所以二次開發(fā)就成為一個能滿足可以要求的填充劑,填補水平產(chǎn)品與客戶的需求中的差異的空隙。2. 二次開發(fā)定義及范疇二次開發(fā)是與一次開發(fā)是相對應的,所以凡是由U8產(chǎn)品開發(fā)部提供的U8產(chǎn)品、套件以外的都應屬于二次開發(fā)的產(chǎn)品。從這個定義出發(fā)以下行為屬于開發(fā)開發(fā)范疇。n 分公司、大區(qū)的基于U8的開發(fā)行為。n 第三方合作伙伴的基于U8的開發(fā)行為。n 行業(yè)開發(fā)本部基于U8產(chǎn)品的開發(fā)行為。3. U8ERP二次開發(fā)模式分析目前我們的二次開發(fā)處于缺乏管理狀態(tài)。由于U8軟件缺乏足夠的開放性,導致二次開發(fā)人員能利用的手段和方法非常有限。同時由于U8每年都需要年結,造成二次開發(fā)的數(shù)據(jù)需要手工結轉。甚至有些是利用原代碼進行的修改,這種方式會因為版本升級而造成功能失效。以下列出了主要的開發(fā)模式。1. 獨立開發(fā)模式,獨立于產(chǎn)品l 模式描述:在開發(fā)過程中基本不利用U8產(chǎn)品的構件(只利用登錄構件),開發(fā)成果形成單獨的可執(zhí)行文件及動態(tài)庫,模塊不需要與U8門戶程序集成,二次開發(fā)模塊的權限設置、功能升級、部署均獨立于產(chǎn)品。l 優(yōu)點:對產(chǎn)品的影響小,產(chǎn)品可升級性強,不受產(chǎn)品功能制約。模塊功能靈活度大,能夠實現(xiàn)很復雜的功能。l 缺點:二次開發(fā)的模塊產(chǎn)品風格與U8 產(chǎn)品風格差距較大,產(chǎn)品中一些很完善的功能(權限、打印、格式設置、輸出等)不能被二次開發(fā)利用,打印、輸出等基礎功能需要重新開發(fā),開發(fā)效率低。l 注意問題:如果使用了U8登錄構件,在產(chǎn)品升級后,應測試登錄構件是否向下兼容,如果不兼容要根據(jù)新版登錄構件的使用文檔對二次開發(fā)程序的登錄部分作修改。l 禁止行為:為最大限度的保證產(chǎn)品的可升級性,禁止直接修改產(chǎn)品的系統(tǒng)數(shù)據(jù)表、視圖、存儲過程等數(shù)據(jù)庫對象。l 適用需求:與產(chǎn)品關聯(lián)度小,二次開發(fā)的功能與產(chǎn)品相對獨立,屬單獨的功能需求,不影響產(chǎn)品的業(yè)務流程,但允許由產(chǎn)品中取數(shù)。例如:在U8ERP產(chǎn)品的基礎上增加提成管理系統(tǒng)。2. 通過產(chǎn)品插件接口開發(fā)模式l 模式描述:此模式的開發(fā)是利用產(chǎn)品開放的插件接口對原產(chǎn)品模塊做功能擴展。開發(fā)成果形成單獨的動態(tài)鏈接庫,模塊功能不能單獨使用,一般由產(chǎn)品模塊通過插件接口依據(jù)插件注冊信息自動調(diào)用。二次開發(fā)模塊的權限設置、功能升級、部署均獨立于產(chǎn)品。l 優(yōu)點:利用插件方式開發(fā),對產(chǎn)品影響小,產(chǎn)品可升級性強。插件機制可以規(guī)范二次開發(fā)模塊的開發(fā)方式,插件產(chǎn)品重用性強,功能配置靈活。l 缺點:受產(chǎn)品插件接口開放程度的限制,目前只有庫存模塊提供了二次開發(fā)插件接口,其他模塊還未提供,而庫存模塊也只提供了單據(jù)保存、審核、明細行雙擊等部分事件的插件接口,面對用戶多種多樣的二次開發(fā)需求,產(chǎn)品的插件接口開放程度還很不夠。l 注意問題:插件開發(fā)應完全符合U8產(chǎn)品提供的插件二次開發(fā)規(guī)范,盡量采用與產(chǎn)品一致的開發(fā)語言(VB6.0)做插件,保證插件數(shù)據(jù)庫操作與產(chǎn)品的數(shù)據(jù)庫操作在同一事務中。l 禁止行為:l 適用需求:客戶需求與產(chǎn)品模塊結合緊密,需要基于某一產(chǎn)品模塊做功能擴展,盡量采用插件方式。3. 利用產(chǎn)品提供的工具、服務的開發(fā)模式l 模式描述:利用產(chǎn)品提供的二次開發(fā)工具、二次開發(fā)服務實現(xiàn)客戶的個性化需求的開發(fā)模式。l 優(yōu)點:基本不用或只做少量的編碼工作、開發(fā)效率高、與原產(chǎn)品風格一致、集成度高、易部署。l 缺點:產(chǎn)品提供的開發(fā)工具能夠解決的問題有限,特別是針對二次開發(fā)常涉及的供應鏈、財務等模塊,目前只提供了自定義報表的二次開發(fā)工具。l 注意問題:l 禁止行為:l 適用需求:能夠利用產(chǎn)品提供的二次開發(fā)工具開發(fā)的需求盡量采用二次開發(fā)工具實現(xiàn)。例如:為客戶定制開發(fā)的業(yè)務報表,一般的業(yè)務報表利用產(chǎn)品的自定義報表功能都可以實現(xiàn)。4. 申請產(chǎn)品源碼做修改、替換原產(chǎn)品模塊或新增模塊節(jié)點的開發(fā)模式l 模式描述:向集團申請源碼直接修改產(chǎn)品功能模塊的方式。l 優(yōu)點:基于原產(chǎn)品模塊的代碼進行二次開發(fā)可以實現(xiàn)很復雜的功能,開發(fā)靈活性、與產(chǎn)品集成度高。l 缺點:如果需要以這種模式進行二次開發(fā),必須首先向集團伙伴開發(fā)部申請開放部分源碼,由伙伴開發(fā)部提供二次開發(fā)環(huán)境,分公司程序員不得將源碼帶回分公司。如果采用新增模塊的方式,產(chǎn)品可以做補丁升級;如果采用替換原產(chǎn)品模塊的方式導致產(chǎn)品不能進行升級,否則產(chǎn)品升級后會覆蓋二次開發(fā)的模塊,一定要升級需要二次開發(fā)人員對升級的安全性做測試,確認產(chǎn)品升級后不會影響二次開發(fā)模塊的功能。l 注意問題:應慎重選擇此種開發(fā)模式,這種模式最大的問題就是嚴重影響產(chǎn)品的數(shù)據(jù)安全性、影響產(chǎn)品的正常升級。l 禁止行為:沒有二次開發(fā)程序員的指導,不能由用戶自行進行產(chǎn)品補丁升級工作。l 適用需求:適用于不能利用插件接口、外掛模塊、二次開發(fā)工具的開發(fā)的需求,且此類需求的實現(xiàn)必須基于產(chǎn)品模塊做修改。5. 行業(yè)插件的開發(fā)模式l 模式描述:行業(yè)本部針對某個行業(yè)的行業(yè)特點對產(chǎn)品局部功能做行業(yè)化改造或開發(fā)新模塊的開發(fā)模式,最終形成行業(yè)插件產(chǎn)品。l 優(yōu)點:開發(fā)規(guī)范遵循U8產(chǎn)品的開發(fā)規(guī)范,與產(chǎn)品開發(fā)過程一致。行業(yè)插件產(chǎn)品經(jīng)過嚴格、專業(yè)的測試,保證開發(fā)質量。l 缺點:l 注意問題:行業(yè)插件產(chǎn)品要注明適用的產(chǎn)品版本,提供詳盡的聯(lián)機幫助、使用說明、升級方法。同時要考慮能夠隨產(chǎn)品的升級而升級。l 禁止行為:禁止隨意占用產(chǎn)品的模塊編號做單據(jù)模板、報表模板的預置工作,行業(yè)本部增加模塊前需向產(chǎn)品管理部申請全套模塊代碼及相關標識。l 適用需求:行業(yè)插件產(chǎn)品的開發(fā)。4. U8ERP二次開發(fā)行為規(guī)范針對目前的開發(fā)現(xiàn)狀現(xiàn)我們分幾個方面制定開發(fā)行為規(guī)范,以此規(guī)范開發(fā)人員的行為,告訴二次開發(fā)人員哪些行為是安全的,哪些行為是危險的。4.1. 獨立模塊開發(fā)規(guī)范。利用VB或其他開發(fā)工具開發(fā)獨立的模塊是目前一般的開發(fā)行為,這種開發(fā)方式對U8的依賴最低,藕合度小,受到的升級的影響也最小。在目前U8開發(fā)性比較低的情況下這是一種合理的選擇。但是這種方式無法做到與系統(tǒng)的無縫結合。在UI的風格上也有可能造成較大的差異。開發(fā)分以下階段進行。l 需求調(diào)研階段:調(diào)研規(guī)范:二次開發(fā)調(diào)研不同于產(chǎn)品功能調(diào)研,客戶提出的需求有可能代表一類行業(yè)的應用方式,但也有可能為該客戶獨有的需求。要求二次開發(fā)人員必須仔細分析客戶提出需求的原因,首先確定是否可以通過軟件以變通的方式實現(xiàn)用戶的需求,確認沒有其他解決方案后才可定義為二次開發(fā)需求。需求規(guī)范:對于典型行業(yè)的二次開發(fā)的需求,且符合集團行業(yè)開發(fā)部做行業(yè)項目支持的條件,需要遵循行業(yè)開發(fā)部提供的二次開發(fā)需求模板編寫二次開發(fā)需求文檔。需求文檔要嚴格按照模板內(nèi)容逐項編寫,特別要注意業(yè)務算法、數(shù)據(jù)精度、效率要求等設計相關的內(nèi)容一定要作深入調(diào)研。對于分公司負責開發(fā)的項目,也可以參照行業(yè)開發(fā)部提供的二次開發(fā)需求模版進行需求編寫,作為下一步設計、研發(fā)的指導性文檔。二次開發(fā)需求完成后,首先要經(jīng)過用戶確認,然后提交項目組召集相關需求、設計、研發(fā)人員進行需求評審,需求確認后即可進行設計、研發(fā)工作。l 設計階段:設計原則:1) 需求設計一致性:二次開發(fā)模塊設計必須滿足軟件需求說明書的所有要求,包括所有功能要求、性能要求和其它要求。軟件需求說明的變化與軟件設計說明書的變化必須保持一致。變化不能隨意進行,應置于嚴格的配置管理之下,對于軟件需求確認后的變更要嚴格控制,避免二次開發(fā)周期過長。2) 數(shù)據(jù)結構獨立性:對于二次開發(fā)的模塊禁止修改產(chǎn)品系統(tǒng)表數(shù)據(jù)結構及相關視圖、存儲過程、觸發(fā)器等數(shù)據(jù)對象,最大限度的保證產(chǎn)品的可升級性。二次開發(fā)新建數(shù)據(jù)對象的命名規(guī)則應遵從二次開發(fā)數(shù)據(jù)對象命名規(guī)范。3) 數(shù)據(jù)一致性、合法性:設計過程中要考慮二次開發(fā)模塊與相關產(chǎn)品模塊數(shù)據(jù)的一致性。首先要保證產(chǎn)品的數(shù)據(jù)安全,盡量避免直接新增或修改系統(tǒng)數(shù)據(jù)表的記錄。如果確實需要維護系統(tǒng)數(shù)據(jù)表的記錄,盡量采用產(chǎn)品開放的業(yè)務組件操作數(shù)據(jù)庫記錄,保證數(shù)據(jù)的完整性、合法性。4) 產(chǎn)品化原則:對于有可能產(chǎn)品化或插件化的二次開發(fā)需求,在設計時要考慮二次開發(fā)模塊的通用性、可推廣性。二次開發(fā)模塊要達到易安裝、易使用、易維護的設計要求。盡量使用U8產(chǎn)品使用的構件,需要向集團申請模板編號、模塊編號,避免和產(chǎn)品沖突。l 編碼階段:1) 盡量采用與產(chǎn)品模塊開發(fā)語言一致的開發(fā)語言。2) 首先VB語言編碼規(guī)范遵循U8產(chǎn)品使用的VB編碼規(guī)范,見附件。利于二次開發(fā)模塊的產(chǎn)品化。其他開發(fā)語言編碼規(guī)范也可參照VB的編碼規(guī)范執(zhí)行。3) 其次,作如下補充:注釋規(guī)范:模塊開頭說明:增加“相關產(chǎn)品模塊及本模塊與產(chǎn)品模塊的關系”、“作者單位”、“作者電子郵箱”、“適用產(chǎn)品版本”4) 配置管理工具可采用SourceSafe作配置管理。4.2. 第三方集成開發(fā)規(guī)范EAI二次開發(fā)可分為兩種模式:一、直接利用EAI管理工具。利用EAI工具可以將U8數(shù)據(jù)以標準XML文件的形式導出U8數(shù)據(jù)庫或將標準XML數(shù)據(jù)文件導入U8系統(tǒng)。二次開發(fā)程序員需要編寫一個工具將標準XML數(shù)據(jù)文件進行適當轉換寫入外部系統(tǒng)或取出外部系統(tǒng)數(shù)據(jù)寫成標準XML數(shù)據(jù)文件。數(shù)據(jù)流程如下:EAI工具導出數(shù)據(jù)Xml文件數(shù)據(jù)寫入外部系統(tǒng)U8Xml文件從外部系統(tǒng)讀出數(shù)據(jù)EAI工具寫入數(shù)據(jù)外部系統(tǒng)EAI工具完成EAI二次開發(fā)的工作優(yōu)點:這種開發(fā)模式比較簡單,充分利用EAI工具提供的功能,編程簡單;缺點:只能提供批量導入導出功能。二、利用EAI提供的組件,進行靈活的二次開發(fā)。包括兩種方式:本地COM方式、Internet方式。1)本地COM方式:U8數(shù)據(jù)處理外部系統(tǒng)EAI組件調(diào)用接口二次開發(fā)出的軟件二次開發(fā)的工作功能:這種方式可根據(jù)開發(fā)者的需要批量處理或者實時處理。優(yōu)點:接口調(diào)用非常簡單,簡化了編程,開發(fā)者只需將標準數(shù)據(jù)傳入接口即可。2)Internet方式:U8外部系統(tǒng)IIS服務器二次開發(fā)模塊SOAP協(xié)議二次開發(fā)工作功能:這種方式可根據(jù)開發(fā)者的需要對數(shù)據(jù)進行實時處理,可實現(xiàn)遠程數(shù)據(jù)導出導入。優(yōu)點:接口調(diào)用簡單,適用于遠程調(diào)用方式。缺點:不能適于大數(shù)據(jù)量數(shù)據(jù)的導入。EAI應用開發(fā)規(guī)范:n EAI工具目前不適用于大數(shù)據(jù)量的一次性導入,否則會導致導入時間過長甚至造成不能導入的問題,在數(shù)據(jù)量較大時最好拆分成多個小文件,再做導入。n 目前EAI不支持對業(yè)務單據(jù)的刪除、修改功能,要求第三方軟件的業(yè)務單據(jù)導出數(shù)據(jù)后不能再在原系統(tǒng)中修改造成系統(tǒng)間業(yè)務數(shù)據(jù)不一致。在從第三方軟件導出業(yè)務單據(jù)前,要保證業(yè)務單據(jù)上涉及的基礎檔案在U8系統(tǒng)內(nèi)已存在,否則應連帶先將關聯(lián)基礎檔案導出,向U8系統(tǒng)導入相關基礎檔案后,再導業(yè)務單據(jù),保證業(yè)務數(shù)據(jù)的完整性。4.3. 二次開發(fā)項目命名規(guī)范U8中使用的產(chǎn)品有自己的規(guī)范,產(chǎn)品以大寫的英文字母表示如AR應收系統(tǒng),該產(chǎn)品下的子產(chǎn)品用產(chǎn)品的字母開頭后面接字母或數(shù)字AR101設置,AR10101初始設置,在門戶的中的顯示為樹的形式,其中AR為AR101的父節(jié)點,AR101為的父節(jié)點。其他新產(chǎn)品的起名,或二次開發(fā)的產(chǎn)品的起名必須遵循上面的規(guī)則,并不能和已有的產(chǎn)品名稱相重,下面是在U8ERP中以使用的產(chǎn)品名稱及相應的對應的關鍵字。序號關鍵字產(chǎn)品名稱 1AR應收系統(tǒng)2AP應付系統(tǒng)3BM預算管理4BO物料清單5CA成本管理6CM合同管理7CO網(wǎng)上結算8CP產(chǎn)能管理9CR合并報表10CSCRM系統(tǒng)11DA企業(yè)營運分析12EA企業(yè)應用集成13EC工程變更14EQ設備管理15EX出口管理16FA固定資產(chǎn)17FC車間管理18FD結算中心19FM資金管理20GF集團財務21GL總賬22GR公司對賬23GSGSP質量管理24HBHR基礎設置25HM人事管理26HT人事合同管理27IA系統(tǒng)菜單28MC經(jīng)理查詢29MO生產(chǎn)訂單30MP主生產(chǎn)計劃31MQ需求規(guī)劃32NB網(wǎng)上銀行33NE網(wǎng)上報銷34OM委外管理35PA售前分析36PM項目管理37POWEB財務38PP采購計劃39PS管理駕駛艙40PU采購管理41QM質量管理42RT招聘管理43SA銷售管理44SG專家財務評估45SOWEB購銷存46ST庫存管理47TM考勤休假管理48TR培訓管理49WA工資管理50WH報賬中心51WM保險福利管理對于二次開發(fā)項目需要確認項目編號,在以后定義菜單、組件名稱、數(shù)據(jù)庫命名時必須在相關的位置遵循此規(guī)范。規(guī)范如下:客戶化開發(fā)項目的開頭必須是EF,然后是項目名,如EFNF表示是二次開發(fā)南孚項目。此長度不能超過6位。插件產(chǎn)品的開頭必須是PF,然后是插件名,如服裝插件表示為PFFZ,總長度不得超過6位。標準插件產(chǎn)品好將占用以下編號,這些編號與標準產(chǎn)品一樣不允許使用4.4. 二次開發(fā)菜單命名規(guī)范 二次開發(fā)項目的菜單命名開頭是項目名如:EFNF。 一級產(chǎn)品名稱長度為2位,如:EFNF01。 二級產(chǎn)品名稱長度為2位, 如:EFNF0101。 三級產(chǎn)品名稱長度為2位, 如:EFNF010101。 無論是獨立的二次開發(fā)子產(chǎn)品還是在標準產(chǎn)品下增加二次開發(fā)菜單都要求遵循此規(guī)范。 總長度為不能超過14位。4.5. 二次開發(fā)權限命名規(guī)范4.6. 模板預置命名規(guī)范【單據(jù)、打印模板】 單據(jù)打印模板數(shù)據(jù)的CardNum字段的前綴必須是項目編號,后面的預置可以自由定義。如:EFNF001【欄目模板】 欄目預置在Meta庫中,其cKey字段的前綴必須是項目編號,后面的預置可以自由定義,cProjectNO字段值不能是U870,必須使用項目號。如:EFNF001【過濾模板】過濾預置在Meta庫的flt_defineMeta_Base表中,其FilterID字段的前綴必須是項目編號,后面的預置可以自由定義,ProjectNO字段值不能是U870,必須使用項目號。如:EFNF0014.7. UAP產(chǎn)品命名規(guī)范由于UAP開發(fā)的產(chǎn)品的所有部件都是通過GUID來進行控制的,所以不會出現(xiàn)沖突情況但相關命名還是需要遵循命名規(guī)范UAP二次開發(fā)不能使用U870項目(U870項目默認也無法看到),否則會出現(xiàn)升級后二次開發(fā)信息丟失的情況?!綰AP項目】UAP產(chǎn)品在使用前都需要先定義一個項目,此項目必須遵循二次開發(fā)項目命名規(guī)范。【數(shù)據(jù)引擎】 實體名稱必須以項目號和下劃線作為前綴,并以ENT作為結尾。如EFNF_CGDD_ENT 業(yè)務對象名稱必須以項目號和下劃線作為前綴,并以BO作為結尾。如EFNF_CGDD_BO【參照】 參照的編號必須以項目編號和下劃線為開頭如:EFNF_Customer。5. U8ERP的開發(fā)規(guī)范5.1. 界面一致性規(guī)范U8ERP產(chǎn)品已經(jīng)制定的嚴格的一致性規(guī)范,點擊下面的連接可以看到規(guī)范。請直接查看人機工程部的規(guī)范要求。5.2. 代碼規(guī)范5.2.1. VB程序組件命名規(guī)范VB組件命名需要在組件前面增加項目編號,如:EFNFCustomer.dll5.2.2. VB程序開發(fā)規(guī)范參見附件VB代碼規(guī)范.chm5.2.3. .Net程序命名空間規(guī)范U8 U8ERP的命名空間規(guī)范應遵守.Net Framework規(guī)范的,在分段部分不完全一樣,U8的規(guī)范分為至少4段,即 UFIDA.U8.AppSvr.UI.1.分別為公司名段: UFIDA2.總產(chǎn)品名段:U83.小產(chǎn)品名段,服務框架:指定產(chǎn)品模塊名稱和服務的框架,如AppSvr-應用服務器,Workflow工作流服務器,Sale銷售管理, Stock庫存, Framework等含義比較清晰的詞或詞組,不要用很難理解的太簡單或太冗長的詞或詞組4.界面層次名段:UIUser Interface,UIPUser Interface Processes,CIClient Side Interface,SIServer Side Interface,BFBusiness Faade,BOBusiness Object, DAOData Access Object, DOData Object5.對后續(xù)的段不做要求。5.2.4. .Net程序開發(fā)規(guī)范參見附件20031008 U8 NET 代碼規(guī)范.pdf5.3. 數(shù)據(jù)庫規(guī)范5.3.1. 二次開發(fā)命名規(guī)范n 凡是二次開發(fā)項目的數(shù)據(jù)庫對象名前面必須增加項目簡拼。以下例子以南孚電池為例類型規(guī)則例子表簡拼_表名NFDC_Stock視圖簡拼_V_視圖名NFDC_V_Stock存儲過程簡拼_P_存儲過程名NFDC_P_Calc函數(shù)簡拼_F_存儲過程名NFDC_F_getAmount索引簡拼_I_索引名NFDC_I_abc5.3.2. 字段類型n 對于數(shù)量、單價、金額字段應為decimal數(shù)據(jù)類型,如現(xiàn)存量表中的各累計字段、單據(jù)表中需回寫累計值的字段、二次數(shù)據(jù)表中的累計字段等。n 對于各種單據(jù)表,為解決加鎖問題可考慮加時間戳字段(timestamp, not null)n 建議不要使用float類型,否則可能會出現(xiàn)數(shù)據(jù)精度問題。n 如果是字符則必須是NVarchar或NChar類型,不要使用varchar和Char類型。建議減少使用NChar類型n 如果是主鍵則建議使用GUID類型,默認值是Newid()。5.3.3. 性能規(guī)范1. 在設計數(shù)據(jù)庫中要考慮索引的建設問題。因為索引的建設和業(yè)務邏輯及性能及并發(fā)操作都有關系,因此在數(shù)據(jù)庫設計中需要說明為什么建索引。哪種業(yè)務邏輯中需要建設索引。對每個字段只能建設一個索引,不得建設兩個索引。在沒有理由的情況下,不能隨便建設索引。建設索引要具體情況具體分析,這方面要逐步加強對數(shù)據(jù)庫基本理論中B+樹及其上的并發(fā)操作的理解。但也有些一般性建議(這里需要說明的是:這不是規(guī)定):1.1) 在數(shù)據(jù)量很大且涉及到 where 語句的情況下可以考慮對where語句所對應的字段建設索引(如 where col = hello 中的 col 字段),但是,col 字段的已經(jīng)有的取值應該很廣泛。1.2) 在涉及到 range 查詢(如:WHERE sales_quantity BETWEEN 500 and 10001.2) )的時候應該考慮建設蔟集索引。1.3) 在涉及到內(nèi)聯(lián)接的時候應考慮對兩個聯(lián)接字段建立索引;在涉及到左聯(lián)接的時候應考慮對右面的字段建立索引;在涉及到右聯(lián)接的時候應考慮對左邊的字段建立索引。1.4) 在建立復合索引的情況下,如對(a, b)建立索引,可以應用對 a 字段的查詢,如 where a = hello;當然也可以應用對 (a, b) 字段的查詢,如 where a = hello and b = how;但是一般不適合對 b 字段的查詢,如 where b = hello。2 SQL Server 中若在一個表中有主鍵,則對于這個主鍵自動建立簇集索引。在數(shù)據(jù)庫設計中若只涉及到用主鍵進行單一行的檢索,應該考慮對此主鍵不用蔟集索引。而將簇集索引用在別的字段上。3. 對于程序中涉及到多個表的聯(lián)接的運算,應該對效率問題進行評估。在需要的情況下,應該考慮建設冗余表。特別是聯(lián)接運算很頻繁的情況下。在只涉及到內(nèi)聯(lián)接的情況下,為了效率問題要首先考慮建設索引視圖。4. 在設計過程中,若出現(xiàn)需要根據(jù)一個表中的數(shù)據(jù)進行計算。而在實際應用中要頻繁查詢或調(diào)用此計算出來結果的情況下,要考慮建立索引視圖。5. 數(shù)據(jù)庫設計應盡可能滿足第三范式。6. 在對操作系統(tǒng)和數(shù)據(jù)庫配置進行修改時,請說明原因。一般情況下不建議對操作系統(tǒng)和數(shù)據(jù)庫配置進行修改。7. 在設計數(shù)據(jù)庫時,應考慮這種設計所面臨的業(yè)務操作對并發(fā)的影響。在設計階段避免死鎖問題。每個數(shù)據(jù)庫設計人員應該弄清楚什么是死鎖,不清楚的請參閱任何數(shù)據(jù)庫基本理論書籍或詢問數(shù)據(jù)庫組。8. 應考慮對頻繁使用的中間結果建立冗余表進行存儲。9. 每個數(shù)據(jù)庫設計人員應參加數(shù)據(jù)庫組組織的培訓。10. 為了提高效率,需要其它組為本組建設冗余表,建設冗余字段,增加字段,建立觸發(fā)器的,請盡可能在數(shù)據(jù)庫設計初期發(fā)現(xiàn)。并在數(shù)據(jù)庫設計中說明。由數(shù)據(jù)庫組和總體技術部協(xié)調(diào)處理。要其它組為本組建立冗余表,且工作量較大的情況下,將由數(shù)據(jù)庫組組織會議協(xié)商解決,并計算增加的工作量。5.4. COM+開發(fā)規(guī)范5.4.1. Com+組件規(guī)范n 無狀態(tài)性開發(fā)的接口組件,最好不要具有公共屬性,公共字段,不允許具有靜態(tài)成員,靜態(tài)方法。n 可序列化接口組件的接口類型必須可被序列化,及返回類型,參數(shù)類型必須是可被序列化的類型。特別注意的是,當你使用集合類型或DataSet的時候,你需要確保運行時,它里面所包含的類型必須能夠被序列化。n out參數(shù)不允許使用out參數(shù),可以使用ref參數(shù)代替。n 內(nèi)部引用接口組件的接口上所引用的類型,最好在其他的程序集中實現(xiàn),最好不要在自己程序集中實現(xiàn),因為如果是在自己內(nèi)部實現(xiàn),如果使用了自定義類型,那就不能寫在你的接口程序集里,因為如果這樣,就增加了CI對程序集自身的依賴性,這樣CI被部署到客戶端,程序集自身也要被部署到客戶端了,但是CI和程序集同名,無法放在一起。但是生成工具也會嘗試生成,不過將略去初始值(只具有默認值),移除內(nèi)部邏輯代碼(方法,屬性中的邏輯)。如果在接口程序集中聲明了一些類型,而在接口類中沒有引用,那么生成工具將忽略(移除)這些類型。n 類型忽略接口組件的一些基類型將會被忽略,比如ServicedComponent,MarshalByRefObject等系統(tǒng)基類型,他們的屬性,方法不會被生成。n OneWay方法只能具有Void返回值,不能具有帶ref參數(shù)的方法。5.4.2. Com+使用方式在你的接口類(如BF,BFDISPATCH)上標記特性ServiceVisible。你可以使用ServiceVisible(ServiceTypes.SingleCall)或ServiceVisible(ServiceTypes.Singleton)來指定是SingleCall對象,還是Singleton對象。默認(ServiceVisible())是SingleCall。如ServiceVisible(ServiceTypes.SingleCall)public class BuesinessFacadeMethodTypes特性MethodTypes特性可以指定在方法上,構造參數(shù)可以使用MethodTypesOption枚舉Sync :只生成同步方法(默認,或不寫)。Async:只生成異步方法,不包含同步方法。Both:同時提供同步方法和異步方法。OneWay:指定該方法為OneWay。如MethodTypes(MethodTypesOption.Sync)public DataSet GetData(string id).Context的使用如果你的接口程序集是從UFIDA.U8.Framework.BizBase.dll中的BFBase和BOBase或IcontextContainer繼承或實現(xiàn),那么就可以利用Context來傳遞自定義對象或數(shù)據(jù)(必須是可序列化的)。如,在客戶端,對BF訪問時,通過Add方法可以向Context傳遞額外的數(shù)據(jù),該數(shù)據(jù)可以隨著調(diào)用傳遞到服務端。BFObject bf = new BFObject();bf.context.Add(“key”,”value”);bf.DoSomrthing();object value = bf.context“key”在服務端的BF,你也可以取出并改變Context的值,然后讓它原路返回到客戶端。this.context“key” = “new value”;除此之外,SingleCall對象在服務端任何狀態(tài)改變,客戶端都無法直接得到。不過,需要注意的是,當你從BFBase繼承的時候,服務端無法向客戶端傳遞數(shù)據(jù),因為你的組件是COM+組件,具有JIT特性,狀態(tài)無法取得,除非你禁用了JIT(非常不推崇)。如果不是COM+組件(從BOBase或實現(xiàn)IContextContainer),不會有此問題??蛻舳讼蚍斩藗鬟fContext沒有任何限制。5.4.3. Com+生成方式生成工具Generate.exeUsage:Generate source destination -keyfile: -lib:source:指定你的接口程序集位置destination:指定你的生成目標路徑,工具將在你指定的目錄下建立ClientInterface和ServerInterface兩

溫馨提示

  • 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

提交評論