仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 488|回复: 7
打印 上一主题 下一主题

[学习教程] ASP教程之COM编程模子

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:27:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。概述
假如你用ASP做开辟,你大概已在你的ASP页面顶用过COM了.可是,在你本人开辟一个COM部件或浏览一本具体先容COM的书之前,你极可能并没有完整了解COM,因此不克不及充实使用它来创立你的ASP页面.同时,你也不克不及很好的了解那些随COM部件带来的利用文档.假如你晓得COM的尺度和限定,你就能够很快的学会开辟其他的COM部件.
在这个教程里,我们将学到COM是如何事情的,你还将学到精晓COM的常识.

本教程的读者
本教程将给那些已利用过VBscript言语的,出格是用过ADO可是不晓得那就是COM的人具体形貌COM模子.他将告知你:

1.属性和办法的区分
2.属性必要参数吗
3.只读属性是甚么意义
4.甚么是汇合工具
5.每一个汇合工具都有些甚么属性
6.不挪用办法怎样对汇合排序
7.在一个DLL中能够有几个COM部件.

基本常识
COM是一个工具接口的尺度.界说一个COM工具只必要界说办法和属性,没有其他的接口.从一个程序员的概念来看,属性和办法之间没有太年夜的区分.办法能够带参数,属性不克不及.属性能够读写,办法假如要前往值的话,是只读的.

只管从编程角度看,属性和办法没有太年夜的区分,可是部件开辟者用他们完成分歧的功效.属性一般代表一个工具的形态,可是挪用办法能够完成任何想完成的义务,不论他包括工具的形态与否.

属性
属性不必要参数,用来形貌或设置工具的形态.一切的属性前往一个值,有些属性是只读的,有些是可读可写的.上面是VBscript中读取属性的表达式例:

例1:

value=object.property


注重这里没有效括号.例二是设置属性例:

例2:

object.property=value


办法
办法能够带参数,能够前往值.一般用来初始化一个工具的事务.当给办法传送参数时,办法能够用来设置值.假如办法只前往值,不设置值的话,表达式以下:

例3:

value=object.method()


注重例3顶用了括号.挪用办法来前往值时必需用括号.比方,工具Connection有一个Execute办法前往一个Recordset工具.例:

例4:

SetRS=Conn.Execute("SELECT*FROMTABLE")


不必前往值,不必参数的办法,如Connection工具的Close办法:

例5:

Conn.Close


参数
办法能够带一个或多个参数,或一个也不要.可是,参数并非必须的.一旦一个参数是可选的,厥后的参数都是可选的.比方,参数一和参数二是必须的,参数三是可选的,则参数四一定是可选的.一个很好的例子是Connection工具的Open办法.他有八个可选的参数.前三个用来传送数据库和等录的信息.你能够像例6那样挪用Open办法:

例6:

Conn.Open"DSN","sa",""


为了供应DSN名,用户名,口令为空,你也能够想例7那样挪用:

例7:

Conn.Open"driver=SQLServer;server=yourServerName;uid=someUID;"&_
"pwd=somePWD;database=someDatabase;"


注重在例6中我们用了三个参数,在例7中只用了一个,了局是一样的.

挪用办法时,以逗号分开,让可选的参数空着,将给该参数传送空值,
在例6中,可选参数用缺省值,在例八顶用空值.

例8:

Conn.Open"DSN","sa","",,,,


汇合
汇合是自己包括了很多工具的工具集,一切的汇合都包括一些预界说的办法和属性.一个汇合有一个Item办法,一个Count属性,一个_NewEnum办法.汇合有创建范例与他不异的工具的才能.换句话说,假如一个工具能够被包括进一个汇合中,那末,哎,这句话好难,我不翻了,给出原文吧.(Inotherwords,ifaparticularobjectcanbegroupinasetthenthatobjectwillhaveacollectionobjectthatcancreateaninstanceofanobjectwithintheset.Forinstance,aDrivescollectionobjectwillcontainasetofdrivesthatmightrepresentallthedrivesonaparticularcomputer).

Count属性前往一个代表汇合中元素个数的长整型值.给Item办法传送一个长整数(固然应在1和Count之间),就前往汇合中这个索引所指向的工具.就像数组那样.(原文此处凌乱,稍做调剂)

例9(1):

SetObject=Collection.Item(2)

由于Item是缺省办法,以是你也能够以下挪用:

例9(2):

SetObject=Collection(2)



_NewEnum办法能够重复挪用,

例9:

ForEachObjectinCollection

NextObject

(以下不译)
Noticethatthe_NewEnummethodisnotreferencedwithinthesyntaxofthe
statementinexample6.Thisisbecausethe_NewEnummethodhasaspecial
indexthatVisualBasicrecognizesasbeingusedfortheForNextstatement.Asa
littlebackground,allmethodsandpropertiesinaCOMobjectareindexedand
certainindexesareusedforparticulartasks.Forexamplethezeroindexisused
forthedefaultmethodorproperty.
TheDefaultMethodorProperty
ThemethodorpropertythathastheCOMindexofzeroiscalledthedefault
property.VisualBasicallowstheprogrammertonotusetheregular
method/propertysyntaxwhencallingthedefaultvalue,youcanleavethe
syntacticalcalltothemethod/propertyoffalltogether.Forexample,thedefault
methodinallcollectionsistheItemmethod.IfyouwheregoingtocalltheItem
method,youcoulddoitlikeitinexample9.



为了在ASP中创建一个COM工具,你能够:

例11:

SetObjectServer.CreateObject("SMUM.XCheck.1")


给Server的CreateObject办法只传送了一个参数,就是一个ID值,这是一个由COM部件供应者给出的,独一地标识一个COM工具的标记.为了创立一个COM工具的实例,你必需晓得该工具的ID值.

有别的一种办法能够取得一个工具的实例,你能够用一个已存在的工具实例来创立一个新的工具实例,现实上利用汇合时就是如许事情的,你挪用Item办法,前往了一个工具实例.

例12:

SetObject=Collection.Item(2)


例11和例12有一点是一样的,那就是都是从其余工具创立工具,区分是,CreateObject能够创立任何范例的工具,而Item只能前往汇合中的工具.就像先有鸡,仍是先有蛋的成绩一样,你大概要问,Server工具又是怎样来的呢?现实上,这是内置工具.他存在于ASP傍边.


内置工具
ASP中有六个内置工具,他们是:
Server
Request
Response
ObjectContext
Application
Session
这些工具与其他工具独一分歧的是,不必要创立实例.他们与其他工具体现得一样,有本人的办法和属性.由于他们是内置的,以是你不需晓得他们的ID,现实上,你基本不需挪用CreateObject往创立他们.

工具ID
假如你创立工具的次要办法就是挪用CreateObject的话,晓得工具的ID就十分主要了COM部件供应者在他们的文档里回供应工具的ID的.

(以下不译)
TheDocumentation
Nowthatwehaveestablishedtheunderstandingbetweenmethodsandproperties
alongwiththeirdifferentattributes,weneedtounderstandhowthedocumentation
fortheobjectsrepresentstheseattributes.Forexamples,wearegoingtolookat
15Secondscomponentsection,whichisinthesameformatastheIIS4.0
componentdocumentation.
ReadandWriteProperties
Agoodexampleofaread/writepropertyisthatofthePhoneTranslatepropertyof
theXCheckobject,shownhereinexample11:

Example13
object.PhoneTranslate[=value]
Noticethevaluesyntax,thisistheindicationofapropertythatcanbewrittento.
Thebracketsdenotethatthepropertyisoptional,inotherwordsyoudonotneed
tosetthepropertytousetheobject.Clickheretoviewthefulldocumentation.
ReadOnlyProperties
AgoodexampleofareadonlypropertyistheExpirespropertyoftheASPMail
object.

Example14
object.Expires
Noticethatunlikeexample11thereisnotanequalsymbol,indicatingthisisread
only.Clickheretoviewthefulldocumentation.
OptionalMethodArguments
AgoodexampleoftheoptionalargumentsistheSendXmethodoftheOCXMail
object.Thedocumentationsyntaxcanbeseenhereinexample12:

Example12
object.SendX(mailserver[,fromName[,fromAddress[,priority[,
returnReceipt[,toAddressList[,ccAddressList[,bccAddressList[,
attach[,messageSubject[,messageText]]]]]]]]]])
Noticethattheonlyrequiredargumentisthemailserverargument.Alltherest,
notedbythebracketsareoptional.Clickheretoviewthefulldocumentation.
Summary
WithafundamentalunderstandingofCOManditsabilities,coupledwithgood
documentationyoucanexpandtheflexibilityofyourActiveServerpage
programming.TaketheinformationthatyoualreadyknowaboutprogrammingIIS
objects,likeSessionobjectsandADO,andexpandonthatbyaddingmore
COMobjectstoyourrepertoire.ThirdpartyCOMobjectwillallowyouto
expandyourActiveserverapplicationsandaccomplishtasksrapidlybyleveraging
thecomponentobjectmodel.
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。
山那边是海 该用户已被删除
沙发
发表于 2015-1-19 12:53:46 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
莫相离 该用户已被删除
板凳
发表于 2015-1-24 20:10:32 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
精灵巫婆 该用户已被删除
地板
发表于 2015-2-2 13:12:12 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
海妖 该用户已被删除
5#
发表于 2015-2-7 21:09:54 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
透明 该用户已被删除
6#
发表于 2015-2-23 11:09:16 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-7 08:44:04 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
再见西城 该用户已被删除
8#
发表于 2015-3-14 16:08:49 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表