来一篇关于NET的Asp.Net中的事务汇合(Events属性)处置与摹拟处置管道
因为二次编译器太复杂,那么建议只是在安装程序的时候编译一次,而不类似java那样运行就编译。并且我觉得,一次痛苦,总比多次低效率要舒服多了。我们先来懂得一下Events属性与处置管道两个观点:1、Events属性
我们都晓得,事务实在就是一个受限定的托付成员,那末我们在创立事务的时分,就会占用必定的存储空间。但我们在做富控件的自界说控件时,常常会表露出大批的事务给挪用者。如许,就意味着即便这些事务挪用者没有效到,也必要更多的存储空间来创立这些事务。
针对这个成绩,.net供应了处置多个事务的基本:Events属性。该属性是一个线性字典,位于System.ComponentModel.Component类下,范例是System.ComponentModel.EventHandlerList。必要一个事务,我们就经由过程一个key将事务保留到Event中,不必要的时分,经由过程Event的RemoveHandler办法将该事务移出属性中。今后必要挪用某事务时,就能够经由过程key来会见Events汇合中的事务。如许就能够节俭大批事务对空间的占用。
2、处置管道
处置管道,就是在处置一个庞大的成绩时分,将历程分红多个步骤,一步一步来实行。这有点相似于临盆产线上的流水功课。在.net中,这类处置体例就称为处置管道。如许做的优点是:
1,不会使一个办法太痴肥,处置更简便易懂。
2,在每一个步骤中,我们都能够表露事务给程序员,如许可让程序员在每一个步骤增加本人的处置逻辑,如许才够天真。
上面,我们经由过程一个示例来了解以上两个观点:
先声明类,并表露多个事务,
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Web;
namespaceWebApplication1
{
publicclassClass1:System.ComponentModel.Component
{
//先声名各事务的key
privatestaticreadonlyobjectobj_start=newobject();
privatestaticreadonlyobjectobj_processing=newobject();
privatestaticreadonlyobjectobj_end=newobject();
//经由过程Events属性声名事务
publiceventEventHandlereventStart
{
add{this.Events.AddHandler(obj_start,value);}
remove{this.Events.RemoveHandler(obj_start,value);}
}
publiceventEventHandlereventProcessing
{
add{this.Events.AddHandler(obj_processing,value);}
remove{this.Events.RemoveHandler(obj_processing,value);}
}
publiceventEventHandlereventEnd
{
add{this.Events.AddHandler(obj_end,value);}
remove{this.Events.RemoveHandler(obj_end,value);}
}
//创立各事务对应办法
protectedvoidOnEventStart(EventArgse)
{
if(this.Events!=null)
{
(this.EventsasEventHandler)(this,e);
}
}
protectedvoidOnEventProcessing(EventArgse)
{
if(this.Events!=null)
{
(this.EventsasEventHandler)(this,e);
}
}
protectedvoidOnEventEnd(EventArgse)
{
if(this.Events!=null)
{
(this.EventsasEventHandler)(this,e);
}
}
//实行事务,摸拟处置管道
publicvoidProcess()
{
OnEventStart(EventArgs.Empty);
OnEventProcessing(EventArgs.Empty);
OnEventEnd(EventArgs.Empty);
}
}
}
挪用下面类:
namespaceWebApplication1
{
publicpartialclassWebForm1:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
Class1class1=newClass1();
class1.eventStart+=newEventHandler(class1_eventStart);
class1.eventProcessing+=newEventHandler(class1_eventProcessing);
class1.eventEnd+=newEventHandler(class1_eventEnd);
class1.Process();
}
voidclass1_eventStart(objectsender,EventArgse)
{
Response.Write("<br/>这是处置入手下手事务!");
}
voidclass1_eventProcessing(objectsender,EventArgse)
{
Response.Write("<br/>这是处置中事务!");
}
voidclass1_eventEnd(objectsender,EventArgse)
{
Response.Write("<br/>这是处置停止事务!");
}
}
}
输入了局:
这是处置入手下手事务!
这是处置中事务!
这是处置停止事务!无论谁倒了对双方阵营的粉丝们也是有害无益。 ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。 ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。 我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。 虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。 可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 众所周知,Windows以易用而出名,也因此占据不少的服务器市场。 微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
页:
[1]