ASP网页编程之ASP.NET 2.0 的外部变更
当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题asp.netJayeshPatel、BryanAcker和RobertMcGovernInfusionDevelopment
合用局限:
MicrosoftASP.NET2.0
择要:只管ASP.NET2.0与ASP.NET1.1完整向后兼容,但仍是为ASP.NET带来了大批的外部变更,包含代码模子、编译、页面熟命周期等的变更。本文将归纳综合先容这些变更。
本页内容
弁言
代码模子
编译
完整运转时编译(代码目次)
页面熟命周期
可扩大性
初级缓存手艺
功能
结论
弁言
关于专业的ASP.NET开辟职员来讲,与ASP.NET2.0有关的主要成绩是外部产生了哪些变更。只管新功效很风趣并且学起来很成心思,但关于真正想把握这一手艺的开辟职员来讲,ASP.NET中心布局产生的变更才是最吸引他们的中央。在本白皮书中,我们将先容自版本1.x以来,ASP.NET2.0外部布局产生了甚么样的变更。
本白皮书先容的主题对那些存眷功能的开辟职员和追求怎样优化使用程序的手艺计划师十分有效。详细来讲,我们将先容有关代码模子、编译、页面熟命周期、可扩大性、功能弛缓存的次要成绩。
本文中的很多示例请求您对ASP.NET、VisualBasic.NET和/或C#语法有相称水平的懂得。本文还在得当的中央供应了参考文档,就某些特定的主题睁开深切的会商。
前往页首
代码模子
大概ASP.NET2.0外部事情体例最分明的变更是ASP.NETWeb页面的创立体例的变更。本节将先容内含代码模子产生的变更和这些变更对ASP.NET开辟的影响。
ASP.NET1.x中的代码模子
在ASP.NET1.x中,供开辟职员开辟Web窗体的次要选择有两个。起首,开辟职员能够参照传统的ASP模子并间接在ASPX页面中编写代码。此历程称为“内嵌代码”,它十分合用于复杂的命令。但是,关于更庞大的代码而言,编写内嵌代码将为读取夹杂了暗示(HTML)和功效(代码)的Web页面带来坚苦。在ASP.NET中,为了匡助办理这个成绩,已变动了默许的编码办法。您能够在独自的、只包括代码的文件(称为“内含代码”文件)中编写营业逻辑和事务处置代码。内含代码模子将只包括代码的文件与包括暗示标志的ASPX文件链接起来。经由过程将代码与暗示相分别,开辟小组可让计划职员处置演示文件,而闪开发职员处置代码文件,从而进步开辟小组的事情效力。
:ASP.NET1.x代码模子
内含代码模子面对的次要坚苦在于怎样将内含代码文件与ASPX页面坚持同步。只管从编程意义下去讲ASPX页面是从内含代码文件承继而来的,但实践上这两个文件是经由过程更庞大的干系接洽在一同的。
有关ASP.NET1.x中的内含代码模子的具体信息,请拜见MSDNLibrary文章WebFormsCodeModel(英文)。
承继的庞大性
ASP.NET的计划形式就是闪开发职员利用MicrosoftVisualStudio.NET将控件拖放到ASPX页面中。VisualStudio然后将在内含代码文件中主动天生得当的撑持代码。假如控件已被增加到ASPX页面中,则必需在内含代码文件中增加新代码。换句话说,只管ASPX页面承继自内含代码文件,但实践上ASPX页面推进了内含代码文件的计划。
编译的庞大性
第二个同步成绩就是怎样编译文件。一切的内含代码文件和一切的撑持类都被编译到一个程序会合,并存储在Web使用程序的/bin目次中。使用程序的编译事情是在部署事情之行进行的。而另外一方面,ASPX页面也是在第一次被哀求时在运转时编译的。ASP.NET运转库实践大将ASPX页面编译到该页面本人的一时程序会合。
此历程的成绩在于,无需更新内含代码程序集便可变动ASPX页面。也就是说,开辟职员能够在部署后变动某个属性或变动ASPX页面上某个控件的范例,而无需更新内含代码文件,也不必从头编译使用程序的程序集。呈现这类情形时,因为内含代码文件与所联系关系的ASPX页面不婚配,使用程序大概会碰到不测的毛病。
ASP.NET2.0中的代码模子
ASP.NET2.0持续供应内嵌代码和内含代码模子。从内嵌代码模子的角度来讲,除MicrosoftVisualStudio2005撑持单文件开辟的体例有所变更外,基础上没做甚么修改。有关VisualStudio2005中的变更及其怎样处置内嵌代码的具体信息,请参阅这篇文章(英文)。
ASP.NET2.0经由过程改动内含代码文件的实质办理了内含代码模子的承继和编译成绩。在ASP.NET2.0中,内含代码文件不再是System.Web.UI.Page类的完全完成。相反,内含代码文件是一个新的机关函数,称为“部分类”。部分类包括一切用户界说的代码,可是不包括VisualStudio.NET在ASP.NET1.x中主动天生的任何管线和毗连代码。哀求包括新的内含代码文件的ASPX页面时,ASP.NET2.0运转库实践大将把ASPX页面和部分类兼并成一个类,而不是两个独自的类。
:ASP.NET2.0中的内含代码模子
部分类利用新的关头字(在VisualBasic中为Expands,在C#中为Partial)唆使在运转时将该类中的代码与另外一个类中的代码相兼并。相似地,ASPX页面利用新的指令(称为compilewith)唆使该页面与内含代码文件之间的联系关系。
对照内含代码文件
假如您熟习传统的ASP.NET1.x内含代码文件,您应当晓得VisualStudio将拔出主动天生的控件声明和初始化代码。这类主动天生的代码是内含代码文件与ASPX文件之间双向同步的间接了局。带有标签的典范ASPX页面具有一个对应的内含代码文件,该文件由很多主动天生的文本行组成。
列表1:ASP.NET1.x中的内含代码文件
namespaceWebApplication1
{
publicclassWebForm1:System.Web.UI.Page
{
protectedSystem.Web.UI.WebControls.LabelLabel1;
privatevoidPage_Load(objectsender,
System.EventArgse){}
#regionWebFormDesignergeneratedcode
overrideprotectedvoidOnInit(EventArgse)
{
InitializeComponent();
base.OnInit(e);
}
privatevoidInitializeComponent()
{
this.Load+=newSystem.EventHandler(this.Page_Load);
}
#endregion
}
}
主动天生的代码不但界说标签(以粗体显现的行),还声明新的事务(页面加载)并主动将该事务绑定到主动天生的办法包装程序(Page_Load())。
对照而言,统一个ASP.NET页面在ASP.NET2.0中天生的内含代码文件更简便。
列表2:ASP.NET2.0.x中的内含代码文件
namespaceASP{
publicpartialclassWebform1_aspx
{
}
}
开辟职员能够主动会见Label1,并依据必要增加事务。比方,能够增加Page_Load事务以初始化标签。
列表3:在新的内含代码文件中增加事务
namespaceASP{
publicpartialclassWebform1_aspx
{
voidPage_Load(objectsender,EventArgse)
{
Label1.Text="HelloASP.NET2.0";
}
}
}
事务语法可经由过程VisualStudio.NET天生。天生的内含代码文件更短,并且不包括任何主动天生的代码。ASP.NET运转库会主动将内含代码文件中的事务绑定到ASPX页面上的控件。换句话说,ASP.NET运转库如今能够主动实行代码天生,而这底本是由VisualStudio实行的。
承继的庞大性
新的内含代码模子年夜年夜下降了承继的庞大性。因为ASPX页面不是间接承继自内含代码文件,因而内含代码文件不再必要界说并撑持ASPX页面上界说的一切控件。相似地,内含代码文件能够主动会见ASPX页面上的任何控件,而无需声明朝码(声明朝码在ASP.NET1.x中是必须的)。这统统之以是可以完成,是由于ASP.NET运转库能够将所需的声明朝码和事务绑定代码主动拔出到终极编译的文件中。由于这些事情由运转库来完成,以是代码开辟职员和Web开辟职员都无需再忧虑这个成绩。
在计划时代,链接将由VisualStudio2005来保护。VisualStudio情况将使用ASP.NET运转库编译段来确保代码开辟职员和Web开辟职员能够同步事情。
编译的庞大性
因为新的内含代码文件与ASPX页面链接在一同并在运转时被编译到一个完全的类中,因而编译的庞大性不复存在。也就是说,内含代码文件将主动与ASPX页面坚持同步。即便新的编译模子也大概包括未同步的代码,但因为产</p>缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 Session:这个存储跟客户端会话过程的数据,默认20分钟失效 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
页:
[1]