w88优德官网电脑版.NET C#开发Activex连串有:Activex发展背景

发布时间:2018-12-14  栏目:w88优德官网电脑版  评论:0 Comments

(一) 
ActiveX的升华历史和技术基础

   
只假设暴发多年以上程序开发经历的开发人士,多多少少且晤面听了ActiveX控件这一个东西,这多少个是单独存活在Internet
Explorer上的可程序化组件(Programmable
Component),它可以允许在浏览器上推行低阶层次之系呼叫和存取工作,在Web应用程序平台提高之头,当时网景公司(Netscape)的Navigator浏览器正和Internet
Explorer打得火热的早晚,微软以使能对抗在Navigator内的Plug-in技术,在Internet
Explorer内也参预了许开发人员在网页内出席具有动态效果的用户接口组件的技巧,ActiveX技术就是这么诞生了,在率先轱辘的浏览器大战由微软胜有后,许多的ActiveX控件也如雨后春笋般的顶出来,也为ActiveX控件是现阶段唯一可以IE浏览器上绕了浏览器沙盒(Browser
Sandbox)而直白跟网层次互换的组件,所以现在随广为金融界所祭(开发网络ATM),国内除了金融界以外,政坛单位也是甚客户(应用自然人凭证验证机制)。

    ActiveX技术是1996年面世的,它的中央是COM(Component Object
Model),当时COM和OLE是少单例外的技能,而微软以使让OLE可以当Internet上动,特别在COM以及OLE中在一些专程的接口,让应用程序能够通过一个简约的接口来存取在组件内之享有功用,以往如开一个COM组件,必须使实作IUnknown接口以及应用程序自己的接口,并以接口注册及COM
Registry Databases(HKEY_CLASS_ROOT)内,而客户端程序使用COM Client
Library先从组件取得IUnknown接口以及呼叫由组件所实作的QueryInterface()方法取得组件自己的接口后,才得以呼叫自己的接口,而且从不得以直接呼叫的办法,这种模式不便利在Internet上使用,而且这Visual
Basic 4.0也供了OCX的控件(OLE
Control)开发能力,微软为想只要受VB能够开COM组件,因而微软在COM接口中入了一个初的接口-IDispatch接口,并且由于COM
Client
Library直接协理,我们最为常用的Office应用程序的要旨部份就是运用IDispatch来实作个对象,除了能够应用程序间采用OLE来享受数据外,还足以吃VB或另外程序语言透过COM接口来存取Office的对象模型,这样的作法让COM得到了英雄的支撑,除了VB可出COM组件外,其他的程序语言也得以听从IDispatch接口实作来襄助COM组件的支出。这样的技术后来组成了OLE的部份技术后,称为COM
Automation(COM自动化)。

    在ActiveX推出的時候,微軟为要扶助开发ActiveX
Control,此外提供了一个略器:ActiveX Control
Pad,可用來测试出到位的控件。您可以到这一下ActiveX Control
Pad:w88优德官网电脑版,http://msdn.microsoft.com/en-us/library/ms975966.aspx。后来当Visual
Basic
6.0推出(1998年)时,微软的各式Internet应用程序开发成员全已形成,像ASP/ADO这类似的功底零部件,以及Visual
Studio
6.0仿照装开发工具等,让微软的Internet开发技术红极一时,当时用作要旨技术的ActiveX也给升级至市场营销上,许多COM/OLE技术都深受更改也ActiveX技术,像ActiveX
Document(原本是OLE Document)、ActiveX DLL(原本是COM DLL)、ActiveX
EXE(原本是COM EXE)等。后来及了Microsoft
.NET时代,ActiveX控件的上扬为起走下坡,同一时期的Flash则是始于窜起,第二潮浏览器大战又于IE的市占率先导回落,相对的ActiveX控件也先河式微-因为它们仅发IE这么些舞台。然则她好存取硬件,且可由于简单的程序语言开发之独到之处仍然面临开发人士欢迎,所以一旦特殊之应用环境不流失,ActiveX控件也无谋面流失(因为以IE上之Flash本身也是ActiveX控件)。

 

(二).NET时代的ActiveX控件

    在微软宣布全力襄助Microsoft .NET平台的进化及Visual
Basic经过本质上之扭转(VBàVB.NET)后,ActiveX控件的付出就搁浅在C++(MFC/ATL)、VB
6.0以及Delphi等开发工具,且COM本身为都趋于稳定,只来很微量的基本功变更,所以开发ActiveX控件的点子也无重新累上扬,目前开发ActiveX控件的作法其实跟八年前没什么二种,钦定的开发工具如故是C++以及VB
6.0,反观.NET Framework本身为大的.NET Framework Class
Libraries的涉,不可能像C++/VB
6.0一样能够有轻薄短小的封装档,且以这COM
Interoperability如故未充分成熟的情形下,原则及微软并无提议使用.NET
Framework来开发ActiveX控件的(但鼓励在.NET应用程序内利(内尔y)用ActiveX控件,以所有原本的技能入股),可是近几年来CPU以及运算能力的强化,COM
Interoperability的成效损耗渐渐下降,只要能避免将.NET
Framework一起装进的情状下,.NET Framework也得就此来开发ActiveX控件。

    要使用.NET Framework来开发ActiveX控件,则须要事先理解.NET
Framework如何将自己的音信放为COM,既然都要叫COM来存取了,那么自然为使将自己之型别消息放为COM知道。其实只要开头放.NET
Framework对象吃COM这件事不麻烦,只要在项目之习性被,在『生成』页签中,将『为COM互操作注册』勾选起来,这样Visual
Studio会在编译时此外有一个型别函式库(Type
Library),并且用Regasm.exe将零件注册及COM Registry
Database中,让COM客户端应用程序可以看到这COM组件。

w88优德官网电脑版 1  

   
接着,要设定COM客户端程序可以寓目是组件的微对象,要是要见到自己设定的指标系列时,则当靶系列上设定ComVisibleAttribute特征项(attribute),倘使要吃COM客户端收看组件内的享有公开序列时,就要设定为这组件为COM
Visible,方法是开拓项目外之Assembly.cs程序,并将下列指令的false改吗true:

w88优德官网电脑版 2

    然后即使呢品种设定COM
Visible,以及设定一个谈得来运的GUID值,这么些值会在签到接口时写副COM
Registry
Database内,而COM客户端程序就依照是价与出于编译程序自动发出的Programmable
ID(ProgID)举行对应,以对加载你的Activex组件。

//GUID号自己变 [Guid(“C90E96C1-8534-4243-9530-960D9AF982CB”)]
[ComVisible(true)]
public class MyDateControl
设定完后编译项目,即可将零件开放为COM客户端。

(三).NET平台下ActiveX控件开发实战

Step 1:

w88优德官网电脑版 3

Step 2:

w88优德官网电脑版 4

Step 3

w88优德官网电脑版 5

使用OLE
View
应用程序查看,请由左展开Type
Libraries,你得于节点受到找到AX

w88优德官网电脑版 6

Step 4  页面测试

w88优德官网电脑版 7

留下评论