成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

討論C#插件技術

開發 后端
本文介紹C#插件技術是一種遵循統一的預定義接口規范編寫出來的程序,應用程序在運行時通過接口規范對插件進行調用,以擴展應用程序的功能。

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

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

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

C#插件技術過時了嗎?

COM技術的逐漸淡出,使不少程序員產生了困惑:C#插件技術已經過時了嗎?

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

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

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

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

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

1、打開VS.NET 2005;

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

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

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

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

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

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

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

應用程序是在運行時調用插件以實現功能擴展的

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

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

C#插件技術的優缺點

運行時的軟件功能擴展其優點是顯而易見的:

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

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

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

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

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

1)由于插件開發者的技術水平原因導致的插件BUG,這種BUG可能導致內存泄露、死機、數據丟失等等故障,從而影響到用戶對軟件的使用;

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

【編輯推薦】

  1. 定義C#接口學習經驗
  2. C# ListBox學習筆記
  3. 操作C# Dataset介紹
  4. C# ODBC訪問MySQL數據庫
  5. 淺析C#和Java不同點
責任編輯:佚名 來源: IT168
相關推薦

2009-08-14 10:59:35

C#分部方法

2009-08-13 16:13:03

C#基礎知識

2009-08-10 17:00:14

C#分部方法

2009-09-16 09:00:15

C#數組C#指針

2009-05-26 11:15:31

C# 4.0dynamicVisual Stud

2009-08-18 10:14:19

C#插件構架

2009-09-02 15:34:37

C#實現插件構架

2009-07-06 13:23:12

C#面向集合

2009-10-27 13:45:32

VB.NET C#區別

2009-09-28 09:32:01

編譯語言C#

2009-11-02 17:15:42

C#轉換為VB.NET

2009-11-02 17:38:56

VB.NET與C#

2009-08-19 16:36:29

C#管道技術

2009-08-24 10:10:09

C#復合控件

2011-06-03 10:15:13

2024-05-06 00:00:00

C#序列化技術

2009-08-04 18:00:51

C#線程同步Monitor

2024-05-06 06:00:00

C#文件存儲

2024-09-18 00:00:02

反射C#元數據

2009-04-10 13:57:50

C#C++Java
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕在线免费视频 | 国产精品久久久久久 | 久久久久成人精品 | 欧美一区二区三区在线 | 中文字幕精品一区 | 久久久久国产精品一区二区 | 国产日韩视频在线 | 日本又色又爽又黄的大片 | 日韩欧美在线观看视频 | 91麻豆精品国产91久久久久久久久 | 亚洲精品国产精品国自产在线 | 亚洲视频在线看 | 999www视频免费观看 | 又爽又黄axxx片免费观看 | 成人免费观看男女羞羞视频 | 欧美精品一区二区三区在线播放 | 免费的黄色片子 | 久久激情视频 | 亚洲综合三区 | 特黄色一级毛片 | 美女天堂在线 | 亚洲日日操 | 一区二区三区国产精品 | 97国产一区二区精品久久呦 | 欧美一区二区三区视频在线 | 国产丝袜人妖cd露出 | 日本一区二区不卡视频 | 免费电影av | 美女视频黄的免费 | 一级做受毛片免费大片 | 亚洲午夜精品 | 天天操操操操操 | 精品一区二区三区在线观看 | 中文字幕在线电影观看 | 天天操夜夜操 | 精品综合久久久 | 久久久91精品国产一区二区三区 | 国产精品国产精品国产专区不卡 | 日韩欧美国产精品一区 | 亚洲乱码一区二区 | 懂色av一区二区三区在线播放 |