溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解C#插件技術(shù)

發(fā)布時間:2021-06-16 11:44:54 來源:億速云 閱讀:286 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“如何理解C#插件技術(shù)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何理解C#插件技術(shù)”吧!

C#插件技術(shù)是一種遵循統(tǒng)一的預定義接口規(guī)范編寫出來的程序,應(yīng)用程序在運行時通過接口規(guī)范對插件進行調(diào)用,以擴展應(yīng)用程序的功能。插件在英文中通常稱為plug-in、plugin或者plug in.插件最典型的例子是Microsoft的ActiveX控件和COM(Component Object Model,部件對象模型)實際上ActiveX控件不過是一個更高繼承層次的COM而已。此外還有Photoshop的濾鏡(Filter)也是一種比較常見的插件。

關(guān)于ActiveX和COM在Microsoft的。Net Framework 推出的之前(大約是2003年之前吧),ActiveX控件和COM可是炙手可熱的技術(shù)啊!在那個年代,一個***的VC++高手的標志是什么?是會COM編程!不知道IUnkonw接口和QueryInterface函數(shù),你怎么可能通過Microsoft的MCSD認證考試?

現(xiàn)在當然不同了,我曾經(jīng)見過不少斷言ActiveX控件和COM已經(jīng)消亡或終將消亡的文章。但是不管怎么說,個人認為,ActiveX控件和COM代表了插件技術(shù)的***境界,通過對ActiveX控件和COM的研究,我們可以對插件有更深刻的認識。

C#插件技術(shù)過時了嗎?

COM技術(shù)的逐漸淡出,使不少程序員產(chǎn)生了困惑:C#插件技術(shù)已經(jīng)過時了嗎?

NO!至少我不這樣認為!畢竟,沒有了插件技術(shù),我們還有什么更好的方法為應(yīng)用程序提供運行時的功能擴展呢?

COM的沒落自然有其原因,例如編程實在是太復雜而難以掌握,還有就是在這個病毒和木馬肆虐的年代,其安全性也令人堪憂。但至少我們可以看到,C#插件技術(shù)的成功應(yīng)用還是有的:比如PhotoShop的濾鏡,比如各大主流工控軟件的功能擴展。

關(guān)于ActiveX控件和COM技術(shù)的詳細介紹,有興趣的朋友不妨去“Google”,相信能夠獲得很多相關(guān)信息的。

對于插件的理解,我們應(yīng)該注意以下幾點:一、插件是遵循統(tǒng)一的預定義接口規(guī)范編寫的。

下面我以微軟的ActiveX Control Test Container為大家解釋一下插件的接口定義。

1、打開VS.NET 2005;

2、點擊主菜單的“工具”菜單;

3、如果在“工具”菜單中未找到“Activex Test Container”,則點擊“工具”-〉“外部工具”,在“外部工具”對話框的“菜單內(nèi)容”列表框中,選中“Activex Test Container",然后點擊右上角的"添加”按鈕,再點擊左下角的“確定按鈕”,此步驟將在在“工具”菜單中添加“Activex Test Container”菜單項;

4、點擊主菜單的“工具->Activex Test Container”菜單項,運行“Activex Test Container" ;

5、在“Activex Test Container”程序中點擊“編輯->插入新控件”菜單;

6、在“插入控件”對話框中找到“日歷控件 11.0" 控件,點擊確定;

7、點擊“控件”-〉“調(diào)用”方法,彈出“調(diào)用方法”對話框,按下圖所示的方法將日歷控件的背景色設(shè)置為紅色;

在這里,“BackColor”是一個預定義的通用的Activex控件接口函數(shù),用于設(shè)置控件的背景顏色。

應(yīng)用程序是在運行時調(diào)用插件以實現(xiàn)功能擴展的

插件最吸引人的地方當然就是其所實現(xiàn)“運行時(run-time)"功能擴展。這意味著軟件開發(fā)者可以通過公布插件的預定義接口規(guī)范,從而允許第三方的軟件開發(fā)者通過開發(fā)插件對軟件的功能進行擴展,而無需對整個程序代碼進行重新編譯。

運行時(run-time)是相對于編譯時(assembly-time)而言的。一般來說,軟件開發(fā)者對軟件功能更新時,是在源代碼級別進行更新,然后對整個程序進行重新編譯,進而發(fā)布應(yīng)用程序的新版本,這就是編譯時(assembly-time)的軟件更新。

C#插件技術(shù)的優(yōu)缺點

運行時的軟件功能擴展其優(yōu)點是顯而易見的:

1、對軟件的開發(fā)者而言,只需對主程序和某些常用插件進行更新和維護,然后通過公布插件接口吸引第三方的軟件開發(fā)者對主程序的功能進行擴展,這是一種“我為人人,人人為我”的雙贏策略;

2、對最終用戶而言,可以通過有選擇地購買第三方提供的插件實現(xiàn)自己所需要的功能,從而實現(xiàn)***性價比組合,以節(jié)省不必要的開支。

但是,運行時的軟件功能擴展也有其弊端:

1、為實現(xiàn)運行時的軟件擴展,程序開發(fā)者必須編寫更多、更復雜的代碼,從而會對程序的執(zhí)行效率產(chǎn)生一定的影響。關(guān)于這一點,我會在第二講中詳細論述;

2、由于插件是在運行時加載的,因此第三方插件可能對用戶造成危害。這種危害通??梢苑譃閮深悾?/p>

1)由于插件開發(fā)者的技術(shù)水平原因?qū)е碌牟寮﨎UG,這種BUG可能導致內(nèi)存泄露、死機、數(shù)據(jù)丟失等等故障,從而影響到用戶對軟件的使用;

2)插件開發(fā)者惡意開發(fā)類似于病毒和木馬的插件,竊取或毀壞用戶數(shù)據(jù),使用戶遭受不必要的損失;
為了避免此類缺點,軟件開發(fā)者可能需要付出額外的代價,如需要對第三方插件進行檢驗和認證,或者干脆不對外提供插件開發(fā)接口,僅由自己提供插件。

到此,相信大家對“如何理解C#插件技術(shù)”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI