摘 要在基于.NET平臺化理念設(shè)計(jì),以及對相應(yīng)業(yè)務(wù)應(yīng)用系統(tǒng)進(jìn)行開發(fā)的過程中,在業(yè)務(wù)平臺底層當(dāng)中,業(yè)務(wù)Form動(dòng)態(tài)創(chuàng)建,以及其所依賴的Assembly自動(dòng)更新架構(gòu)設(shè)計(jì),都是十分關(guān)鍵的內(nèi)容之一。在.NEt Frame work開發(fā)框架當(dāng)中,對反射機(jī)制進(jìn)行了提供,利用這種應(yīng)用設(shè)計(jì)方法,能夠確保良好的技術(shù)基礎(chǔ)。同時(shí),此種架構(gòu)設(shè)計(jì),能夠確保業(yè)務(wù)動(dòng)態(tài)的有效維護(hù)、業(yè)務(wù)按需部署、業(yè)務(wù)模塊自動(dòng)更新、平臺用戶權(quán)限靈活分配等,并且為其提供了充足的技術(shù)支持。在具體的架構(gòu)設(shè)計(jì)當(dāng)中,則是以.NET、Oracle數(shù)據(jù)庫、緩存等技術(shù)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)的。
【關(guān)鍵詞】.NET Form動(dòng)態(tài)創(chuàng)建 自動(dòng)更新 架構(gòu)設(shè)計(jì)
.NET是一種Microsoft XML Web services平臺,可允許應(yīng)用程序利用internet共享數(shù)據(jù)和實(shí)現(xiàn)通訊,不受編程語言、設(shè)備、操作系統(tǒng)的影響了限制。.NET平臺可對這些服務(wù)進(jìn)行創(chuàng)建和集成,從而滿足用戶的個(gè)性化需求。Form則是VB編程當(dāng)中的對話框、窗口等對象,是應(yīng)用程序用戶界面當(dāng)中的一部分。為了更好的滿足用戶需求,需要實(shí)現(xiàn)Form動(dòng)態(tài)創(chuàng)建和自動(dòng)更新,而以.NET為基礎(chǔ),通過適當(dāng)?shù)募軜?gòu)設(shè)計(jì),能夠?qū)崿F(xiàn)這一目標(biāo)。
1 Form動(dòng)態(tài)創(chuàng)建技術(shù)
在.NET Frame work開放框架當(dāng)中,對Assembly動(dòng)態(tài)加載相關(guān)技術(shù)、反射機(jī)制等進(jìn)行了提供服務(wù)支持,通過反射、解析、訪問程序集Assembly元數(shù)據(jù),在程序集內(nèi)存加載,以及相關(guān)包含類動(dòng)態(tài)創(chuàng)建等過程當(dāng)中,提供了充足的技術(shù)保障。同時(shí),對于用戶業(yè)務(wù)界面中Form類實(shí)例的動(dòng)態(tài)創(chuàng)建,提供了充足的依據(jù)和支持。在創(chuàng)建Form的過程中,可以采用程序集Assembly直接引用創(chuàng)建,也可以通過非直接引用的方法進(jìn)行創(chuàng)建,如圖1所示。
在直接引用創(chuàng)建的方法當(dāng)中,在開發(fā)工程當(dāng)中,直接對Form類所在程序集Assembly進(jìn)行引用,在用戶窗體的創(chuàng)建中,采用硬編碼new Form()的方法直接進(jìn)行創(chuàng)建,對用戶業(yè)務(wù)界面進(jìn)行展現(xiàn)。該方法的主要優(yōu)勢在于,啟動(dòng)程序的過程中,F(xiàn)orm所在程序集Assembly,以及其依賴的相關(guān)程序集,可在程序域當(dāng)中進(jìn)行加在載,這與反射創(chuàng)建相比,具有更為良好的性能,發(fā)生錯(cuò)誤的幾率比較低,調(diào)試也比較容易。不過,該方法同樣具有一定的不足支持,那就是在修復(fù)Bug、升級維護(hù)業(yè)務(wù)的過程中,存在較大難度,按需部署業(yè)務(wù)的靈活性不足,業(yè)務(wù)安全性、權(quán)威限管理等也相對較低。
另一種方法是非直接引用的創(chuàng)建方式,在這種創(chuàng)建方式中,工程開發(fā)當(dāng)中不會對Form類所在程序集Assembly直接進(jìn)行引用,而是利用反射機(jī)制,對用戶窗體進(jìn)行間接創(chuàng)建,并對Assembly進(jìn)行動(dòng)態(tài)加載,從而對用戶業(yè)務(wù)界面進(jìn)行展現(xiàn)。這種方法的主要優(yōu)勢在于程序創(chuàng)建Form具有較高的靈活性,在修復(fù)Bug、升級維護(hù)業(yè)務(wù)的時(shí)候較為有利,可以根據(jù)需求部署相關(guān)程序業(yè)務(wù),程序集Assembly的動(dòng)態(tài)更新較為容易,同時(shí)具有較高的業(yè)務(wù)安全性和用戶權(quán)威限管理,應(yīng)用程序的擴(kuò)展性也相對較高。此外,這種非直接引用的創(chuàng)建方法,還能夠支持只對業(yè)務(wù)平臺底層相對不變變化不大的程序集的部署,而榮用戶根據(jù)權(quán)限在客戶端內(nèi)存中動(dòng)態(tài)加載其它的需要的業(yè)務(wù)程序,無需在客戶端進(jìn)行程序集文件的落地安裝部署,因而業(yè)務(wù)安全性、程序靈活性都能夠得到理想的提升。不過,非直接引用的創(chuàng)建方法具有較為復(fù)雜的技術(shù)實(shí)現(xiàn)框架,程序調(diào)試難度加大,需要采用服務(wù)器端緩存技術(shù)、客戶端緩存技術(shù)、以及其它一些相關(guān)技術(shù)對其性能進(jìn)行提升。
2 緩存技術(shù)
在上述技術(shù)框架當(dāng)中,包辦了服務(wù)器端緩存、客戶端緩存等內(nèi)容,能夠?qū)I(yè)務(wù)平臺程序整體性能進(jìn)行提升,使網(wǎng)絡(luò)數(shù)據(jù)傳輸量得到降低,從而使網(wǎng)絡(luò)利用效率得到提升,降低數(shù)據(jù)庫服務(wù)器訪問量、中間服務(wù)器并發(fā)訪問量,使數(shù)據(jù)庫數(shù)據(jù)查詢的IO成本得到降低,最終實(shí)現(xiàn)程序可靠性、穩(wěn)定性的提升。
在服務(wù)器端緩存中,F(xiàn)orm動(dòng)態(tài)創(chuàng)建技術(shù)框架,在服務(wù)器端采用了Oracle Result Cache緩存技術(shù),能夠?qū)?chuàng)建Form各種數(shù)據(jù)庫數(shù)據(jù)進(jìn)行緩存,使數(shù)據(jù)庫服務(wù)器相應(yīng)性能、查詢性能得到提升,并確保數(shù)據(jù)庫集緩存數(shù)據(jù)更新的及時(shí)性、和一致性進(jìn)行確保。綜合考慮數(shù)據(jù)庫服務(wù)器配置性能,以及IIS等中間件服務(wù)器,不采用Form動(dòng)態(tài)創(chuàng)建中間件服務(wù)器緩存策略,從而使程序代碼開發(fā)量降低。
在客戶端緩存方面,在.NET Frame work 4.0當(dāng)中,對緩存開發(fā)架構(gòu)進(jìn)行了提供服務(wù)支持,在客戶端,F(xiàn)orm動(dòng)態(tài)創(chuàng)建技術(shù)框架,對Memory Cache內(nèi)存緩存技術(shù)進(jìn)行了應(yīng)用,對創(chuàng)建Form相關(guān)后臺定義權(quán)限數(shù)據(jù)、程序及數(shù)據(jù)等進(jìn)行緩存,從而降低后臺服務(wù)器訪問量,提升客戶端程序相應(yīng)性能,根據(jù)業(yè)務(wù)使用情況,對緩存時(shí)間、緩存策略等進(jìn)行確定。
3 Oracle數(shù)據(jù)庫技術(shù)
在Form動(dòng)態(tài)創(chuàng)建及自動(dòng)更新架構(gòu)中,Oracle數(shù)據(jù)庫設(shè)計(jì)主要與應(yīng)用程序菜單表、應(yīng)用菜單菜單功能表、應(yīng)用程序程序集版本控制表等內(nèi)容相關(guān)。其中,應(yīng)用菜單菜單功能表主要是對創(chuàng)建Form的元數(shù)據(jù)信息進(jìn)行保存,基于.NET反射機(jī)制,以及表中相關(guān)定義數(shù)據(jù),程序能夠?qū)τ脩魳I(yè)務(wù)Form界面進(jìn)行動(dòng)態(tài)創(chuàng)建,應(yīng)用程序程序集版本控制表則主要對業(yè)務(wù)程序及信息進(jìn)行存儲,用于Assembly動(dòng)態(tài)更新、MD5檢查、業(yè)務(wù)程序集版本控制等。
4 結(jié)論
在給予.NET的Form動(dòng)態(tài)創(chuàng)建和自動(dòng)更新架構(gòu)設(shè)計(jì)中,包含了Form動(dòng)態(tài)創(chuàng)建技術(shù)、緩存技術(shù)、Oracle數(shù)據(jù)庫技術(shù)等,綜合各種技術(shù)完成設(shè)計(jì),為用戶提供跟更好的服務(wù)。
參考文獻(xiàn)
[1]羅福強(qiáng),白忠建,楊劍.Visual C#.NET程序設(shè)計(jì)教程[M].北京:人民郵電出版社,2013.
[2]Karli Watson.C#入門經(jīng)典.6版[M].北京:清華大學(xué)出版社,2014.
[3]王清培..NET框架設(shè)計(jì)模式、配置、工具[M].北京:人民郵電出版社,2015.
[4]林樹澤,盧芬.Oracle 119 R2 DBA操作指南[M].北京:清華大學(xué)出版社,2013.
作者簡介
韋振錦(1976-),男,梧州市藤縣人。大學(xué)本科學(xué)歷?,F(xiàn)為廣西柳州市自動(dòng)化科學(xué)研究所高級工程師。研究方向?yàn)楣ぷ髁?、智能表單?/p>
作者單位
廣西柳州市自動(dòng)化科學(xué)研究所 廣西壯族自治區(qū)柳州市 545001