ASP网站制作之ActiveX手艺综述(二)
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。6.VisualC++5.0对ActiveX的撑持VC++5.0(企业版)为Internet开辟供应了完全的办理发案,其内容是:
*利用MFC大概ATL开辟ActiveX把持和ActiveX文档。
*利用ISAPI计划WEB服务器真个部件。
*利用WinInet开辟经由过程Internet存取文件的使用程序。
*利用AsynchronousMonikers天生从Internet下载数据的使用程序。
*利用ActiveXSDK开辟别的范例的基于Internet的Win32使用程序,包含ActiveXScriptingHost,MicrosoftWebConferencing等。
6.1.用VC5.0开辟ActiveX把持
VC++5.0供应两个路子开辟ActiveX把持:MFC和ATL(ActiveTemplateLibrary)。利用MFC,能够不用剖析把持接口的细节,把注重力会合在把持自己的服从上,可是天生的把持对照年夜。并且,客户端假如要运转此ActiveX把持,必需具有响应
版本的MFC类库的DLL,不然,必需同时下载这些伟大的类库;利用ATL,因为不触及MFC的尺度类库,天生的把持绝对较小,但开辟者必需懂得COM、OLE手艺的细节。年夜多半情形下,可使用MFC开辟ActiveX把持,如许对照简单。并且,因为InternetExplorer3.0供应了MFC4.1的类库,而InternetExplorer3.0是Windows95供应的组件,以是,只需ActiveX把持利用的是MFC4.1大概更早的版本,多半情形下不必要下载MFC的类库。
利用MFC开辟ActiveX把持,能够用MFCActiveXControlWizard天生工程框架。VC会主动发生三个类:(假定MyName是把持的名字。)
*CMyNameApp:从类COleControlModule派生,而类COleControlModule则派生自CWinApp;
*CMyNameCtrl:从类COleControl派生,而类COleControl则派生自CWnd;
*CMyNamePropPage:从类COlePropertyPage派生,而类COlePropPage则派生自CDialog;
能够看出,这个框架与一样平常的MFC使用程序有些相似。开辟职员的年夜部合作作在CMyNameCtrl中,比方用ClassWizard增加属性、办法和事务,处置显现等。
编译天生OCX文件后,用VC供应的ActiveXTestContainer测试这个把持,也能够用OLE/COMObjectViewer扫瞄此把持的接口信息及范例库。
6.2.ActiveX把持在WEB上的使用
思索到WEB的平安性,为了在服务器与客户端创建优秀的信托干系,必需为每一个在WEB上利用ActiveX把持设置一个“代码署名”(CodeSigning)。VC5.0供应了天生供测试用的“代码署名”的工具。假如要正式公布,则必需向有关机构请求。
(拜见http://www.microsoft.com/intdev/signcode/)
在WEB页面中利用ActiveX把持,还要对之举行包装,将有关的静态毗连库及信息文件紧缩到一个扩大名为CAB(Cabinet)文件中。可使用VC5.0供应的工具包装ActiveX把持。在HTML文件中,利用OBJECT标签拔出ActiveX把持,并使用VBScript大概JScript会见该ActiveX把持。客户端用InternetExplorer扫瞄此页面时,能够主动解包该文件。出于平安性的思索,InternetExplorer为ActiveX部件的下载、初始化、是不是具有正当的代码署名和是不是同意Scripting等设置了分歧的
平安级别,用户可依据必要举行设置。上面这个例子中,利用了ActiveX把持“MSChart.OCX",当用鼠标单击此把持时,把持的题目将改动。
<OBJECT
CLASSID="clsid:31291E80-728C-11CF-93D5-0020AF99504A"
CODEBASE="MSCHART.CAB#version=1,0,0,0"
ID=chart1
WIDTH=400
HEIGHT=200
ALIGN=center
>
</OBJECT>
<SCRIPTlanguage="VBScript">
Subchart1_Click()
Document.chart1.TitleText="MyTitle"
EndSub
这里,必需供应该OCX的ClassID和文件路径或URL。客户端扫瞄此页面时,先在当地的注册表中查找该ClassID,假如存在,则不用下载。不然,必需依照CODEBASE指定的路径搜刮该把持并下载。标签Object中的ID是该OCX的工具的称号,用来
会见和设置工具属性,挪用工具办法等。
6.3.用VC5.0开辟ActiveX文档服务器
MFC4.2不撑持开辟ActiveX容器,但撑持ActiveX服务器。只需在利用MFCAppWizard时天生使用程序框架时,选择撑持ActiveDocument,便可天生尺度的ActiveX文档服务器。运转此使用程序时,该文档工具将主动注册。要测试这个ActiveX文档,能够运转任何一个ActiveX文档容器,如MicrosoftBinder、MicrosoftWord等,再拔出此工具。
6.4.VC5.0的ActiveX服务器框架
*ISAPI(InternetServerAPI)
ISAPI供应了扩大撑持WEB服务器的复杂而无效的办法。开辟职员能够计划天生ISAPI服务器扩大静态毗连库(ISAPIServerExtensionDLL),它能够被HTTP服务器挪用。比方,客户端用户填写了一个表单,按下“提交”按钮后,输出的数据将被传送至HTTP服务器,激活响应的ISAPI扩大使用程序,该使用程序能够处置用户的输出信息,举行响应的操纵。大概,依照用户的请求会见数据库,读取用户指定的数据,静态天生HTML文件,再传回客户端。
*ISAPI过滤器(ISAPIFilters)
ISAPI过滤器是一种运转在撑持ISAPI的HTTP服务器上的静态毗连库。它的感化是:监督服务器与客户真个事务,当事后指定的某事务产生时,过滤器被挪用,对要传送的数据举行加密或紧缩,大概举行身份认证。换句话说,ISAPI过滤器供应了对服务器和客户之间传送的数据举行预处置的功效。
*ISAPI和通用网关接口(CGI)的对照
ISAPI为WEB服务器供应了通用网关接口使用程序的替换办理计划。与CGI分歧的是,ISAPI扩大使用程序和HTTP服务器运转在统一个地点空间,不必要创立新的历程,因此不必要举行那些历程之间泯灭工夫的通信。ISAPI使用程序能够从HTTP服务器中卸载,为别的历程腾出内存空间。CGI则必需为每个义务创建自力的实行文件及URL映照,HTTP服务器收抵达每个哀求都将启动一个新的历程。别的,CGI没有与ISAPI过滤器绝对应的功效。
6.5.WinInet(MicrosoftWin32InternetExtensions)
VC5.0供应了开辟客户端基于WEB的使用程序的API:WinInet,并将其封装成多少MFC类,如CInternetSession、CHttpConnection等。利用这些类,开辟职员不需懂得TCP/IP和Winsock的细节,只需针对详细使用创建类工具就能够了。
6.6.AsynchronousMonikers
因为今朝收集带宽的限定,用户一般但愿可以异步下载数据,比方异步下载网页的一张图片,并显现下载进度。MFC供应了类CAsyncMonikerFile来完成这个功效。
6.7.ActiveXSDK
VC5.0还供应了专门的WIN32ActiveX开辟工具:ActiveXSoftwareDevelopmentKit(ActiveXSDK)。ActiveXSDK包括一系列接口界说及与Internet有关的WIN32函数,包含ActiveXScriptingComponent、WebBrowsingObject、WebPostAPI等,用户能够使用这些接口和API开辟面向WEB的使用程序或ActiveX部件。
6.8.VisualC++6.0
1998年9月,Microsoft将推出的VisualC++6.0。VC6.0除保存VC5.0的ActiveX撑持外,还将撑持DHTML,MFC及ATL的类库及模板也有扩大。用户能够便利地开辟出相似WEB扫瞄器界面的使用程序。
7.VisualBasic5.0对ActiveX的撑持
7.1.VisualBasic部件
VisualBasic5.0(以下简称VB)的部件(Component)是由可实行代码组成的文件(EXE,DLL,OCX),它能够为其他使用程序大概部件利用。之前版本的VB同意用户天生称为"OLEServer"的部件,VB5.0扩大了部件计划功效,撑持激发事务,异步回调(Call-backs)等,并加强了创立ActiveX把持和ActiveX文档的功效
。
VB5.0的ActiveX部件(Component)包含:
*ActiveX把持
ActiveX把持与客户使用程序运转在统一个历程中。用VB5.0创立可用于VB大概别的开辟工具及WEB扫瞄器的ActiveX把持,与一样平常的VB使用程序计划迥然不同。能够为ActiveX把持加上属性页,并及时调试。别的,VB5.0供应了一组壮大的数据库存取把持,开辟职员只需编写大批代码就能够完成一样平常的数据库操纵。
*ActiveX文档
VB5.0的ActiveX文档供应了内置的窗口转动、超链接和菜单撑持,间接嵌进WEB页中。体例ActiveX文档与计划VB表单(FORM)完整不异,用户能够选择天生ActiveXDocumentDLL大概ActiveXDocumentEXE。不管哪种范例,VB都将天生一个相似表单文件的VBD(VisualBasicDocument)文件。能够间接用InternetExplorer来扫瞄这个文件,大概用VBScript大概JScript举行会见。
*ActiveXDLL
ActiveXDLL供应的工具与使用程序运转于统一个历程中。使用程序能够创立工具,设置工具属性,挪用工具的办法。ActiveXDLL一样平常不必要创建用户界面。
*ActiveXEXE
ActiveXEXE供应的工具与使用程序运转于在分歧的历程中。使用程序创立工具,挪用工具的办法后,能够持续举行本人的事情。当工具的事情完成后,它会关照使用程序。
ActiveXDLL和ActiveXEXE合称为VisualBasic代码部件(CodeComponent)。
7.2.包装ActiveX部件
上述ActiveX部件都可使用VB5.0的SetupWizard举行包装,天生接纳Lempel-Ziv紧缩算法的CAB文件,在WEB上公布。SetupWizard将把相干的静态毗连库及信息文件一同包装。利用VB5.0天生的ActiveX部件,能够包装成SafeScripting和SafeInitializing。
7.3.ActiveX文档在WEB上的使用
向WEB页面中到场ActiveX文档,起首要将该ActiveX文档包装成CAB文件。因为InternetExplorer读进ActiveX文档时,该文档将代替以后的WEB页,因而,一样平常将ActiveX文档(即HTML的标志OBJECT)放在一个自力的HTML文件中。比方,上面这条语句创建了一个超链接:
<AhRef="ActiveXDoc.htm">LinktoaActiveXDocument</A>
个中,ActiveXDoc.htm是下载ActiveX文档的HTML文件:
<OBJECT
classid="clsid:2F390484-1C7D-11D0-8908-00A0C90395F4"
codebase="ActiveXDoc.cab#version=1,0,0,0">
</OBJECT>
这条语句将下载ActiveXDoc.cab,并在Windows注册表中注册该ActiveX文档。
7.4.VisualBasic代码部件在WEB上的使用
VisualBasic代码部件包含ActiveXDLL和ActiveXEXE,它们能够在服务器端运转,也能够从客户端下载再运转。
假如某个ActiveXDLL运转在服务器端,服务器上运转的是InternetInformationServer,则可使用VB的OLEISAPI2.DLL供应的函数举行会见,大概基于ActiveServerPages利用VBScript大概JScript。
假如但愿客户端下载某个代码部件,则起首要将该部件包装成CAB文件。比方,用VB5.0企业版天生了一个ActiveXDLL:MyDLL.DLL,它只要一个类:MyClass,其独一的办法是显现LogIn对话框。用SetupWizard包装这个部件,天生了CAB文件。上面的语句将在客户端下载MYDLL.CAB:
<OBJECTID=MyClass
CLASSID="CLSID:503B3E09-2191-11D2-8E90-00104B64F7B7"
CODEBASE="mydll.cab">
</OBJECT>
<INPUTTYPE=buttonVALUE="LogInNOW"NAME="BtnLogin">
<!--
Whenthebuttonisclicked,callthe"LogIn"method.
-->
<SCRIPTlanguage="VBScript">
<!--
SubWindow_OnLoad
MyClass.Login
EndSub
SubBtnLogin_OnClick()
MyClass.Login
EndSub
-->
</Script>
个中,ObjectID是这个ActiveXDLL中某个类的名字。当此WEB页面被下载并显现时,MyClass类的办法LogIn将被挪用,并在客户端显现LogIn对话框。
7.3.VisualBasic6.0
Microsoft企图于1998年9月推出VisualBasic6.0。今朝Beta版正在测试。VB6.0与VB5.0比拟,除持续撑持InternetExplorerDocumentObjectModel(DOM)开辟以外,将供应两个使人镇静的新功效:
*DynamicHTML编纂器
开辟职员能够象体例一般VB程序一样,制造DHTML文件或模板。
*WebClasses;
开辟职员能够在WEB服务器端创建与ASP文件逐一对应的WebClass类,每一个类都能够会见ASP工具,在VisualBasicIDE中跟踪调试,并天生ISAPI静态毗连库。
8.小结
正如Internet和WEB手艺一样,ActiveX手艺的开展一日千里,新的更壮大的开辟工具使得服务器及客户真个使用开辟、网站建立变得更复杂,并简单扩大和重用。跟着Microsoft的包含WindowsNT、InternetInformationServer、ActiveServerPages和MicrosoftFrontPage、InternetExplorer等组件在内完全的Internet办理计划被普遍利用,ActiveX手艺将会有更年夜的开展。
参考文献:
1.VisualC++手艺内情(第二版),[美]DavidJ.Kruglinski著,王国印译,
清华年夜学出书社。
2.ActiveX开辟职员指南,[美]EricTall,MarkGinsburg著,章巍等译,机器
产业出书社。
3.VisualBasic6.0:YouWontBelieveWhatJustHittheWeb,JoshuaT
rupin,MicrosoftInteractiveNetworkDeveloper(MIND),1998年8月。
4.IntroductiontoActiveXControls,MicrosoftCorp.,MSDN,1998年8月。
5.DynamicHTMLandtheBigPicture,JohnSwenson,MSDNOnline,1997年11月。
6.ABriefPreviewoftheVisualBasic5.0DevelopmentEnvironment,MichaelOtey,WindowsNTMagazine,1997年4月。
7.http://www.microsoft.com/,Microsoft公司,包含MSDN、MSJ等手艺资本。
8.http://www.ActiveX.com,第三方开辟的ActiveX把持。
9.http://www.Active-X.com,有关ActiveX手艺的文档材料。
10.http://www.WinntMag.com,WindowsNTMagazine杂志。
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。 先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习 下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。 那么,ASP.Net有哪些改进呢?
页:
[1]