我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > CAD新聞

THCAPP中項目型插件系統的設計與實現

時間:2011-02-26 19:31:00 來源:

1、項目型插件系統的研究背景

計算機輔助工藝設計軟件(CAPP)在國內發展已有二十多年的歷史,但由于工藝過程復雜而且充滿個性化,它一直沒有得到很好的發展。京渝天河計算機軟件技術有限責任公司推出的智能化、集成化工藝設計平臺系統――THCAPP,以其完善的系統需求定義和先進的系統設計,受到了用戶的廣泛好評。現在使用THCAPP軟件的用戶已經遍布全國。

隨著軟件工程在產品的研發中廣泛應用,THCAPP軟件也步入了快速發展階段:用戶數量不斷增加,功能不斷豐富、完善。但是,快速發展的THCAPP軟件不可避免的出現了以下這個問題:創立于十年前的THCAPP軟件的原型已經被市場廣泛認可,后續版本的開發工作只是在這個原型的基礎上進行功能的擴展。為了在保證與THCAPP以前版本軟件兼容的前提下,彌補軟件原型在靈活性和擴展性方面的不足,我們有必要在THCAPP軟件中引入“框架+插件”這樣一種結構的構建模式。

在采用THCAPP軟件的企業用戶中,由于各個企業的規模不同,開發產品的差異,造成了用戶需求的千差萬別,不同企業之間的需求甚至會出現矛盾的情況。為了滿足用戶的各種需求,使產品具有頑強的生命力,只有引入“框架+插件” 結構,使軟件產品在整體上是融合的,在各個功能上具有相對獨立性,而這些獨立的功能能夠進行單獨的開發,形成具有完善功能的獨立模塊,并且能夠很好的融入到整個軟件產品中的方法是解決軟件原型風險最好的辦法。

2、插件系統分析

現在,我們經常使用的一些國外公司或個人開發的優秀軟件產品都是采用的

“框架+插件”這種體系結構,其中最著名的軟件包括:AutoCAD、 PhotoShop和ACDSee。分析一下這些軟件的開發模型:整個軟件產品為一個良好的框架,具有完成軟件產品應用的基本功能以及插件管理功能,負責為插件的運行提供一個整體的可靠的運行環境;而高級的功能則通過各個獨立的插件來完成。插件是在自己要求的運行環境中,具有獨立,完整功能的模塊。產品的框架部分可以認為是一個插件的運行平臺,插件部分除了實現具體功能外還要按照平臺的要求實現標準接口,保證插件在平臺內正確運行;平臺則通過通用的方法調用不同插件來實現功能的擴展。這樣,只要框架的結構是良好和合理的,能夠適應未來的變化,那么市場的變化帶來的各種新的需求就可以采用開發實現相應功能的新插件來實現。軟件的生命力就有了保證。

國外軟件采用的“框架+插件”結構代表著軟件行業的主流技術,不同公司的不同產品,甚至同一個公司的不同產品之間,都會用不同的插件實現不同的功能。THCAPP插件系統的設計思路就是借鑒這種“框架+插件” 結構,在THCAPP程序的不同對象中調用不同的插件,實現特定范圍的功能。

過多的插件會增加用戶使用THCAPP軟件的難度;而且,一種功能插件會同時對多個對象產生不同的影響。所以得出以下結論:在THCAPP軟件中,應該將所有的插件由單獨的系統進行統一的管理,實現插件的功能查看,產品隸屬,插件注冊和插件注銷等功能,簡化用戶的操作。

鑒于以上的情況,需要這樣一種解決方案:通過提供插件模板對插件接口進行規范;通過簡單的開發基礎培訓使用戶具有進行簡單的編寫代碼的能力;通過針對THCAPP軟件中的某種單一的功能,封裝出THCAPP功能組件,同樣通過培訓讓用戶掌握相關功能組件的使用方法,讓那個用戶自己編寫符合自己要求的插件,由插件系統統一管理。這樣,即在THCAPP軟件中實現了“框架+插件”的結構,保證了軟件的可擴展性,又通過培訓用戶自主開發插件的模式,規避了維護插件的風險,節省了雙方的資金,提高了軟件的競爭力,使公司和用戶實現“雙贏”成為了可能。

3、項目型插件系統的目標

THCAPP中進行“框架+插件”的結構改造,引入項目型插件系統的目的包含以下幾個方面:

l 完成THCAPP插件系統的開發工作,實現插件的瀏覽、注冊/注銷、二次注冊、調用、以及與系統交互等功能。實現“框架+插件”的系統結構。

l 完成項目型插件系統的插件模板源代碼以及示例插件程序的源代碼的編寫工作。插件模板必須具有簡單、方便、易于維護的特征,爭取做到:讓沒有編程經驗的用戶通過簡單的培訓就能編寫滿足自己需求的插件。

l 完成集成型插件系統組件DLL的開發工作,提交動態鏈接庫文件:接口文件、以及運行庫文件。開發與特定PDM軟件集成的示例插件,證實集成型插件系統的可行性。

l 完成功能組件的開發工作,涵蓋THCAPP軟件中一些常用的功能(如:工藝文件的創建、篩選、刪除等)。從底層支持插件系統功能的全面性。

通過對THCAPP軟件的使用用戶——國內大、中、小型制造企業的工藝工作進行的縝密調研,結果,幾乎所有的用戶都對這種簡單的軟件升級方式表示了期待。但是,不同的用戶,由于他們編程技術水平與需求功能的復雜程度有很大的差異,必須制定一套相對簡單、實用的插件開發規則,以方便用戶進行自定義插件的開發工作,便于插件系統的推廣。

在實施了THCAPP的企業用戶群中,每個企業每年都會提出一些有關功能實用性、以及操作簡便性方面的要求。這些要求一般都是用戶根據自己的特殊狀況提出的,不同用戶提出的要求甚至是對立的,我們很難從中總結出通用性的需求,供新版本的CAPP軟件進行開發工作。

項目型插件系統的主要功能就是擴展THCAPP的功能,通過用戶自己開發出的符合自己企業特色、實現自己功能要求的插件,彌補THCAPP軟件在可操作性方面的不足。

4、插件系統關鍵技術

4.1 系統總體設計方案

為保證與以前版本的THCAPP軟件的兼容性,插件系統應該是獨立于THCAPP主程序,但通過被THCAPP主程序調用,才能實現其功能的動態鏈接庫組件。如圖1所示:

newmaker.com
圖1 插件系統總體設計方案

插件系統包含插件管理模塊和多個功能插件。

l 插件管理模塊的功能是實現各功能插件的列表顯示、功能查看和二次注冊的調用,不負責實現任何插件的實際功能;

l 功能插件由THCAPP主程序的用戶為實現特定的功能,在我們提供的插件模板的基礎上自主開發的COM組件,除了實現各自的需求功能外,所有通過插件模板生成的插件還需要具有以下的功能:向插件管理模塊反饋插件信息、進行系統注冊與反注冊、通過消息機制與CAPP主程序進行通信。

項目型插件系統的結構,如圖2所示:

newmaker.com
圖2 項目型插件系統結構

u接口層:

接口層是整個插件系統的入口,通過插件模板的設計,系統只需要獲取少量的傳入數據信息,通過執行插件,就會通過一定的規則,向主程序傳遞規范的傳出數據,實現插件的功能。

接口層實現插件管理功能,包括插件的引入、刪除、插件的列表選擇、以及運行選定的插件。

u插件層

插件層就是用戶通過插件模板開發出的所有插件,插件模板實現了系統注冊模塊中插件的注冊與反注冊的工作;規范了用戶參數的類型;并且通過調用API函數,定義了一些常用的THCAPP的消息常數(比如刷新消息等),供用戶插件使用。

用戶在開發自己的插件時,需要將插件相關信息設置到插件模板中的插件信息反饋模塊的特定常量中,以便接口調用。

u數據層

數據層的作用是由插件刷新THCAPP主程序運行的Oracle數據庫中的數據,真正實現插件的功能。包括參數規范模塊、CAPP功能組件和數據操作模塊。

通過CAPP功能組件調用數據操作模塊,操作底層Oracle數據庫中的數據,避免了用戶直接操作數據帶來的風險,節約了培訓成本與用戶的工作。

4.2 關鍵技術及解決途徑

l插件的識別問題

插件采用動態鏈接庫(DLL)文件的形式,在一臺機器的成百上千的DLL文件,如何識別指定的DLL文件是否為插件系統的插件,能夠被插件系統調用,就成為插件系統設計能否成功的前提條件。

插件系統中設計的解決思路是:在插件系統中,除了對插件進行系統注冊外,還得通過管理模塊對插件進行特定的二次注冊,這樣就可以解決插件的識別問題。

對于項目型插件系統,在注冊表的指定位置設置子鍵,將插件信息(主要是VB程序創建組件對象時需要的組件名稱和庫名稱)記錄到這個子鍵下,插件管理組件顯示插件列表時,從這個位置讀取所有插件的信息顯示。運行插件時,也是從讀取插件信息創建插件對象。

對于集成型插件系統,在THCAPP主程序的配置文件中,記錄所有插件的GUID值,由于插件都是從系統的基接口中派生的,所以,通過GUID值和基接口類型,就可以運行插件了。

l插件的運行問題

讀取插件信息后,如何正確的運行插件也是一個需要解決的關鍵技術。

對于項目型插件系統,通過插件模板,規范插件的接口。創建插件對象后,調用特定的接口,就可以運行插件了。

對于集成型插件系統,由于是與THCAPP主程序進行無縫集成,在對象層接口對應的MFC類文件中,定義相關的接口對象,通過激發事件或傳遞消息運行插件。

l插件的通信問題

插件與插件系統、插件與THCAPP主程序、甚至插件與插件之間都需要進行數據交互或消息傳遞。

在插件系統中,定義一些通用的消息。在接收消息時,遍歷這些消息,分別實現這些消息的響應函數就可以了。

插件的通信能力是插件系統必不可少的功能。通過消息傳遞模塊或消息接口定義通用消息,為以后版本中,通用消息的擴展提供了可能。

5、示例程序

THCAPP項目型插件系統包括插件維護模塊和插件兩大部分。插件維護模塊的功能是:添加、維護、刪除、運行插件,標準DLL組件,可以被CAPP或其他應用程序調用;而插件就是實現某些特定的功能。

調用THCAPP二次開發插件系統,首先會運行“插件維護模塊”,顯示“插件管理”管理對話框,如圖4所示:

newmaker.com

默認的,“插件管理”窗口會列出天河公司提供的公用插件,用戶根據插件模板自己開發的插件,通過第一次的注冊后也會出現在這個列表中,供用戶選擇使用。

選擇某個插件,單擊“下一步”按鈕就運行插件對應的DLL文件。實現這一步的前提就是用戶使用天河公司提供的項目型插件模板進行自己插件的開發工作,并不修改模板的接口,破壞兼容性。

下面將以“批量修改工藝文件狀態”這個插件作為實例,簡單的講講項目型插件的創建方法。

l 詳細的系統設計

雖然,一般看來系統設計工作與具體的軟件開發沒有多大的關聯,但是詳細、完善的系統設計可以讓你的開發工作少走很多彎路。

“批量修改工藝文件狀態”插件的實現目標,就是將指定節點下的所有工藝文件全部修改到一種狀態。在這期間,需要運行插件的用戶設置修改后工藝文件狀態參數,并且設定是否需要包含子節點中的工藝文件。插件要求提供指定節點下工藝文件的現有狀態,供用戶瀏覽;還要包含不能進行“狀態修改”操作的工藝文件的列表。

通過上述的系統分析,得出至少需要三步向導操作才能實現需求。下面就是進行代碼的編寫工作了。

l 在插件模板上開發新的插件

插件模板是由天河公司提供給用戶使用的在項目型插件系統中開發自定義插件的工具。在THCAPP的安裝路徑下,有模板的壓縮包文件。

復制插件模板,用VB打開模板工程,修改工程名和接口名,在圖4所示的“插件管理”窗口中,進行插件注冊操作,需要用到修改后的工程名和接口名,他們是插件組件的唯一標識,非常重要,不能隨便修改。如5圖所示,“批量修改工藝文件狀態”插件的工程名變為“THEditFilesStateLib”、接口名變為“ITHEditFilesState”。

newmaker.com
插件工程

在窗體文件中,復制“picDlgBck”控件數組,在這個插件中復制三頁,在每一頁放置不同的控件。并編寫與這些控件有關的代碼。

第一頁如圖6所示,用以設置修改后工藝文件的狀態,以及“是否包含子節點中的工藝文件”、“是否顯示工藝文件信息”的狀態參數。

newmaker.com
插件第一頁

第二頁如圖7所示,添加“ListView”列表控件,用以顯示指定節點下包含的工藝文件的信息(名稱、創建者、當前狀態)。如果在第一頁設置了“包含子節點中的工藝文件”狀態,則需要顯示指定節點下的所有文件信息。

newmaker.com
插件第二頁

第三頁如圖8所示,功能是提示第二頁顯示的工藝文件是否能進行修改工藝文件狀態的操作,圖8中表示所有工藝文件的狀態都可以被修改成圖6中指定的狀態。不能進行修改的工藝文件會被顯示在提示之下的“ListView”控件中。

newmaker.com
插件第三頁

最后在“完成”按鈕的單擊事件中,編寫實現需求的代碼,一般地,這需要調用天河公司為二次開發插件提供的各種組件的接口功能函數。實現修改工藝文件狀態的功能比較簡單,只要遍歷用戶選擇的工藝文件,依次調用“THCAPPPDMDEVLib”組件的“THCAPPNDO”接口的“ChangeFileState”函數就可以了。


我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

            日本国产一区二区| 麻豆免费精品视频| 欧美一区二区三区在线电影| jizz一区二区| 99综合影院在线| 99久久精品国产导航| 成人性生交大合| 高清beeg欧美| 91亚洲永久精品| 一本色道久久加勒比精品| 99国产精品国产精品久久| 99精品视频一区二区| 色婷婷久久久亚洲一区二区三区| 色老汉一区二区三区| 欧美日韩中文字幕一区二区| 欧美日韩国产a| 欧美大胆人体bbbb| 久久久久9999亚洲精品| 国产欧美日韩亚州综合| 亚洲视频 欧洲视频| 亚洲成人av一区| 极品瑜伽女神91| 成人黄动漫网站免费app| 91丨porny丨首页| 欧美日韩高清影院| 久久久亚洲精品石原莉奈| 亚洲欧洲成人精品av97| 伊人婷婷欧美激情| 老司机精品视频导航| 国产成人aaaa| 欧美日韩一区中文字幕| 精品免费国产一区二区三区四区| 久久久噜噜噜久久中文字幕色伊伊| 中文字幕久久午夜不卡| 亚洲自拍都市欧美小说| 麻豆传媒一区二区三区| 成人av电影免费在线播放| 欧美午夜在线观看| 久久这里都是精品| 亚洲主播在线播放| 国产一区二区三区久久久| 91网上在线视频| 精品久久国产老人久久综合| 亚洲精品欧美在线| 国产麻豆视频一区二区| 欧美午夜在线一二页| 国产欧美日韩不卡| 免费成人性网站| 色一区在线观看| 国产亚洲一二三区| 日韩高清在线不卡| 91久久线看在观草草青青| www国产亚洲精品久久麻豆| 亚洲自拍偷拍综合| 不卡视频一二三| 精品盗摄一区二区三区| 亚洲bdsm女犯bdsm网站| 91在线码无精品| 国产欧美综合在线| 另类欧美日韩国产在线| 欧美日本国产视频| 一区av在线播放| 95精品视频在线| 国产精品麻豆欧美日韩ww| 国内精品国产三级国产a久久| 欧美美女网站色| 夜色激情一区二区| 色欧美88888久久久久久影院| 国产精品免费久久久久| 国产很黄免费观看久久| 精品国产乱码久久久久久老虎| 日本不卡一区二区| 欧美日韩国产成人在线91| 亚洲最色的网站| 91久久国产最好的精华液| 亚洲天天做日日做天天谢日日欢| 国产成人免费在线观看不卡| xnxx国产精品| 国产永久精品大片wwwapp| 精品久久久久久久人人人人传媒 | 欧美艳星brazzers| 亚洲精品亚洲人成人网| 一本一道久久a久久精品综合蜜臀| 一区精品在线播放| 99久久久无码国产精品| 亚洲色欲色欲www| 日本道精品一区二区三区| 夜夜夜精品看看| 欧美日韩免费观看一区二区三区| 一区二区三区欧美亚洲| 在线亚洲精品福利网址导航| 亚洲在线视频免费观看| 欧美日韩国产高清一区二区| 天天色综合天天| 欧美成人乱码一区二区三区| 久久er99热精品一区二区| 久久久久久久久久电影| 丁香激情综合五月| 一区二区久久久| 欧美精品黑人性xxxx| 久久99精品久久久久婷婷| 久久久久久久久久久久久女国产乱 | 久久99精品久久久| www国产亚洲精品久久麻豆| 国产剧情一区在线| 国产精品每日更新| 欧美无砖专区一中文字| 麻豆国产精品官网| 亚洲国产精品av| 欧美亚洲综合网| 韩国精品一区二区| 国产精品不卡一区| 欧美少妇一区二区| 国产精品自拍网站| 亚洲精品美国一| 精品精品欲导航| 97se狠狠狠综合亚洲狠狠| 亚洲国产精品久久一线不卡| 精品国产髙清在线看国产毛片| 成人网在线免费视频| 婷婷综合另类小说色区| 亚洲国产激情av| 欧美日韩另类国产亚洲欧美一级| 国精产品一区一区三区mba桃花| 亚洲日本在线视频观看| 欧美sm美女调教| 日本道免费精品一区二区三区| 久久电影网电视剧免费观看| 亚洲日本成人在线观看| 精品乱码亚洲一区二区不卡| 91福利视频久久久久| 国产suv精品一区二区6| 日本午夜精品一区二区三区电影 | 丁香婷婷综合五月| 日本成人在线电影网| 亚洲伦理在线免费看| 精品福利视频一区二区三区| 欧美亚洲国产怡红院影院| 国产精品一区久久久久| 青青草精品视频| 亚洲一区在线观看免费| 中文字幕视频一区| 久久久国产精品麻豆| 日韩欧美在线1卡| 欧美日韩国产综合草草| 99久久伊人精品| 国产成人免费网站| 国内久久婷婷综合| 美女被吸乳得到大胸91| 天天色 色综合| 亚洲综合一区在线| 日韩理论电影院| 成人欧美一区二区三区小说| 国产婷婷一区二区| 国产日韩亚洲欧美综合| 久久亚洲精品国产精品紫薇| 日韩免费观看2025年上映的电影 | 亚洲国产精品高清| 国产欧美日韩另类一区| 国产亚洲精品中文字幕| 久久综合色综合88| 欧美精品一区二区高清在线观看 | 懂色av一区二区在线播放| 激情六月婷婷久久| 狠狠色狠狠色综合| 激情综合一区二区三区| 精品无人区卡一卡二卡三乱码免费卡 | 欧美日韩精品一区二区天天拍小说 | 久久久久99精品国产片| 久久免费美女视频| 久久久久久久久久久久久久久99 | 成+人+亚洲+综合天堂| 成人午夜av在线| 一本在线高清不卡dvd| 一本久久a久久精品亚洲| 在线观看亚洲精品视频| 欧美亚洲一区二区在线观看| 欧美精品自拍偷拍动漫精品| 91精品婷婷国产综合久久| 日韩亚洲电影在线| www精品美女久久久tv| 国产精品毛片a∨一区二区三区| 亚洲欧美成人一区二区三区| 香蕉加勒比综合久久| 久久99国产精品尤物| 成人黄色软件下载| 欧美系列亚洲系列| 精品免费视频一区二区| 国产精品久久久一本精品| 一区二区三区中文字幕在线观看| 亚洲高清免费观看 | 国产偷国产偷亚洲高清人白洁| 国产精品美女久久久久久| 亚洲男人的天堂网| 美国欧美日韩国产在线播放| 国产高清久久久久| 欧美探花视频资源| 久久精品夜夜夜夜久久| 亚洲国产一区二区a毛片| 精品一区二区免费|