ASP网站制作之创立事件性剧本 (用mts办理事件、组件)...
在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。创立|剧本贸易使用程序经常必要具有在事件外部运转剧本和组件的才能。事件是一种服务器操纵,即便该操纵包含良多步骤(比方,订货、检察存货、付帐等),也只能全体前往操纵是乐成仍是失利。用户能够创立在事件外部运转的ASP剧本,假如剧本的任何一部分失利,全部事件都将会停止。ASP事件处置是以MicrosoftTransactionServer(MTS)为基本的。MicrosoftTransactionServer(MTS)是一个事件处置体系,用于开辟、设置和办理高功能、可分级的、有鲁棒性的企业Internet和Intranet服务器使用程序。TransactionServer为开辟散布式的,基于组件的使用程序供应了一个使用程序计划模子。它也为设置和办理这些使用程序供应了一个运转情况。
创立事件性剧本的功效内置在InternetInformationServer和PersonalWebServer中。假如您安装了MicrosoftTransactionServer,就能够将组件打包,以使组件在事件外部运转。
关于事件
事件是全体乐成或失利的操纵。事件处置用于对数据库举行牢靠地更新。在对数据库举行很多相干变动或同时更新多个数据库时,要包管一切变动都被准确实行。假如这些变动中的任何一个失利,都必要恢单数据库表的原始形态。
假如没有MTS,您就必要编写剧本和组件,手工跟踪哀求的变动情形,以便在某些变动失利时恢单数据。利用MTS,您只需复杂的将您的剧本和组件声明为“必要事件”并让MTS处置事件的分歧性。事件处置只合用于数据库会见;MTS不克不及对文件体系或其他的非事件性资本的变动举行恢复操纵。使用程序所会见的数据库必需为MTS所撑持。今朝,MTS撑持SQLServer及任何撑持XA协定(由X/Open协会制订)的服务器。MTS将持续扩大对其他数据库的撑持。
事件不克不及超过多个ASP页。假如一个事件必要来自多个组件的工具,则须将利用这些工具的操纵组合在一个ASP页中。比方,假定有一个组件用于更新人为双数据库,另有一个组件用于更新人力资本数据库中的员工纪录。为了纪录一个员工的新的人为信息,您必要编写如许一个剧本,该剧本在一个事件情况中挪用这两个组件,一个用于更新人为双数据库,另外一个用于更新人力资本数据库中的员工品级。
声明事件性剧本
在将一个页声明为事件性时,此页中的任何剧本命令和工具都运转在统一个事件情况中。TransactionServer处置天生事件的细节并决意事件乐成(提交)或失利(停止)。要将某个页声明为事件性,可在页首增加@TRANSACTION指令:
value参数能够是以下之一:
值意义
Requires_New启动一个新的事件。
Required启动一个新的事件。
Supported不启动事件。
Not_Supported不启动事件。
@TRANSACTION指令必需在一页中的第一行,不然将发生毛病。必需将该指令增加到必要在事件下运转的每页中。当剧本处置停止时,以后事件即告停止。
年夜多半使用程序只要一些特定的操纵必要事件情况。比方,一个航空公司的站点大概只必要事件性剧本处置购票和布置坐位,而其他一切剧本则不必事件情况便可平安运转。由于事件只须用于必要事件处置的页便可,不要将使用程序的Global.asa文件声明为事件性。
假如事件被停止,TransactionServer将恢复对撑持事件的资本的任何变动。今朝,仅数据库服务器完整撑持事件,由于数据库中的数据关于企业使用是最为关头的。TransactionServer不合错误硬盘上的文件、会话和使用程序的变量、汇合等的改动举行恢复。但是您能够以下文主题所述,经由过程编写事件事务来编写恢复变量和汇合的剧本。在某些时分,您的剧本也能够显式的提交或停止一个事件,如向文件写数据失利时。
提交或停止剧本
由于TransactionServer跟踪事件处置,以是它决意事件是完整乐成仍是失利。剧本能够经由过程挪用ObjectContext.SetAbort显式地声明停止一个事件。比方,当一个事件在从一个组件收到毛病动静、违背贸易标准时(比方,帐户余额小于0)或读写文件等非事件性操纵失利时,剧本就必要停止该事件。假如页在事件完成之前超时,也必需停止事件。
编写事件事务
剧本自己不克不及决意事件是乐成仍是失利。可是,能够编写提交或停止事件时被挪用的事务。比方,假定有一个确认银行帐户的剧本,而且您必要针对事件的分歧形态将分歧的页前往给用户,那末就能够利用OnTransactionCommit和OnTransactionAbort事务来编写对用户的分歧呼应。
Welcometotheonlinebankingservice
Thankyou.Yourtransactionisbeingprocessed.
在MTS资本办理器中挂号一个组件
为了介入一个事件,组件必需在MTS包中挂号,并且必需被设置为必要事件。比方,假如您的剧本是经由过程挪用两个组件来处置定单的,一个更新库存数据库,另外一个更新付款数据库。那末,这两个组件就要在统一个事件情况中运转。TransactionServer包管假如恣意一个组件失利,那末将不会无数据库被更新。某些组件不必要事件;比方,AdRotator组件。
注册和设置事件性组件可以使用MTS资本办理器。必需将事件的属性设置为必要事件或必要新事件。事件组件必需在MTS包中注册。不要将组件放在IIS外部历程包中,而应当创立本人的包。一般,应将一切的组件放在一个组件库中。组件库的组件可被多个ASP使用程序利用并以ASP使用程序历程运转。利用MTS资本办理器可创立新的包并将包的Activation属性设置为Library。
也能够在Server包中注册事件性组件。Server包一般以服务器上的一个自力的历程运转。假如但愿利用基于本能机能组的平安性反省或但愿您的组件可被远程盘算机上的使用程序会见,可对事件性组件利用Server包。
要利用MTS资本办理器,必需安装MicrosoftTransactionServer。
工具感化域
一样平常情形下,不要将从MTS组件中创立的工具存储在ASPApplication或Session工具中。MTS工具在事件完成后消散。由于Session工具和Application工具是为在分歧ASP页之间利用的工具实例计划的,以是不要用它们保留在事件停止时即被开释的工具。
ASP剧本是已申明的事件的根,即肇端点。任何事件性ASP页所利用的MTS工具都被以为是事件的一部分。当事件完成后,在页中利用的MTS工具将消散,个中包含存储在Session或Application工具中的工具。在此以后,从另外一个事件性页中挪用会话感化域或使用程序感化域工具的实验都将失利。
事件列队
从一个远程服务器对数据库的更新大概由于收集提早或妨碍而招致事件提早或停止。由于事件的一切部分都必需提交,以是使用程序将大概挂起,守候远程服务器的提交或停止动静,也大概因为没法发送数据库更新而招致事件被保持。
关于必需同时完成的更新,准确的做法是在事件的一切介入者都可以提交之前,停止事件或推延完成事件。比方,航空公司的定票程序应当同时完成对客户的银行帐号计进借方和对航空公司的银行帐户计进贷方。假如一个更新属于事件全体的一部分,但大概晚于其他更新,您大概不但愿让客户守候全部更新历程的完成。比方,机票预定事件大概也要向食物供给商发送食物定单或更新客户的路程补助。这些操纵固然也必需完成,但能够晚一些。
MicrosoftMessageQueueServer使您可以将一个或一组更新绑缚到一个事件性动静中送给远程服务器。MessageQueueServer包管更新将被发送给远程服务器,即便今朝收集不成用。您的使用将收到一个提交动静,从而能够持续处置事件。</p>实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") 下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
页:
[1]