仓酷云

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

[学习教程] 来一篇关于NET的Asp.Net中的事务汇合(Events属性)处置与摹拟处置管道

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:23:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
因为二次编译器太复杂,那么建议只是在安装程序的时候编译一次,而不类似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[obj_start]!=null)
{
(this.Events[obj_start]asEventHandler)(this,e);
}
}

protectedvoidOnEventProcessing(EventArgse)
{
if(this.Events[obj_processing]!=null)
{
(this.Events[obj_processing]asEventHandler)(this,e);
}
}

protectedvoidOnEventEnd(EventArgse)
{
if(this.Events[obj_end]!=null)
{
(this.Events[obj_end]asEventHandler)(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/>这是处置停止事务!");
}
}
}


输入了局:
这是处置入手下手事务!
这是处置中事务!
这是处置停止事务!无论谁倒了对双方阵营的粉丝们也是有害无益。
再见西城 该用户已被删除
沙发
发表于 2015-1-18 13:44:44 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-24 11:50:21 | 只看该作者
ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。
小魔女 该用户已被删除
地板
发表于 2015-2-1 09:59:48 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-7 03:32:40 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
兰色精灵 该用户已被删除
6#
发表于 2015-2-20 12:12:19 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
莫相离 该用户已被删除
7#
发表于 2015-3-6 17:40:56 | 只看该作者
ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。
分手快乐 该用户已被删除
8#
发表于 2015-3-13 06:10:38 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
活着的死人 该用户已被删除
9#
发表于 2015-3-20 15:07:39 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-11 06:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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