仓酷云

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

[学习教程] ASP.NET网页设计.NET 2.0服务器控件开辟的基础观点

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

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

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

x
如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具)使用asp.net2.0手艺,创立Web自界说服务器控件并非一件轻松的事变。由于,这必要开辟职员懂得并可以天真使用多种Web开辟手艺,比方,CSS款式表、客户端剧本言语、.NET开辟言语、服务器控件开辟手艺,乃至是以后最火的AJAX手艺等等。固然实际云云“困难”,可是这类开辟手艺也不是真的难到不成把握。事事都要重新做起。本文将针对使用asp.net2.0手艺,创立Web自界说服务器控件的基本常识举行具体先容,内容包含:服务器控件观点、控件范例、性命周期等。
ASP.NET2.0服务器控件观点:甚么是Web服务器控件
在asp.net2.0中,Web服务器控件是指在服务器上实行程序逻辑的组件。这个组件大概天生必定的用户界面,也大概不包含用户界面。每一个服务器控件都包括一些成员工具,以便开辟职员挪用,比方,属性、事务、办法等。
一般情形下,服务器控件都包括在asp.net页面中。当运转页面时,.NET实行引擎将依据控件成员工具和程序逻辑界说完成必定的功效。比方,在客户端出现用户界面。这时候,用户可与控件产生交互举动,当页面被用户提交时,控件可在服务器端激发事务,并由服务器端依据相干事务处置程序来举行事务处置。服务器控件是WebForm编程模子的主要元素,它们组成了一个新的、基于控件的表单程序的基本。经由过程这类体例能够简化Web使用程序的开辟,进步使用程序的开辟效力。
服务器控件的普遍使用,简化了使用程序的开辟,进步了事情效力。那末,什么时候应创立并利用自界说服务器控件呢?上面枚举了在三种详细合用情形:
(1)某个现有服务器控件基础切合使用请求,可是,短少某些特别的功效,这时候能够经由过程从现有控件中派生偏重写其属性、办法或事务来自界说服务器控件。
(2)必要利用的服务器控件分离了两个或多个现有控件的功效,比方,封装一个按钮和一个文本框的复合控件。此时能够经由过程创立服务器控件到达这一目标。
(3)现有服务器控件(或其组合)均不切合使用的请求。关于这类情形,能够经由过程从基类派生的体例来创立自界说服务器控件。
2服务器控件的范例
asp.net2.0供应了多种服务器控件。依据服务器控件界说体例,可分为以下3品种型:HTML服务器控件、asp.net尺度服务器控件和自界说服务器控件。
ASP.NET2.0服务器控件之HTML服务器控件
HTML服务器控件派生自名字空间System.Web.UI.HtmlControls。它们由一般HTML控件(指HTML言语已界说的控件,比方,Button、Input等)转换而来,其出现的输入,基础上与一般HTML控件分歧。默许情形下,服务器端很难把持Web页面上的一般HTML控件,可是,经由过程将一般HTML控件转换为HTML服务器控件的办法,开辟职员则可以十拿九稳对其举行编程把持。
将一般HTML控件转换为HTML服务器控件办法对照复杂。一样平常情形下,经由过程两个步骤完成转换:
(1)在一般HTML控件特征中增加Runat=“Server”属性;
(2)设置ID属性。经由过程转换,一般HTML控件的相干属性、事务、办法等将全体映照到HTML服务器控件中,由此,经由过程编程便可在页面处置过程当中援用并把持该HTML服务器控件。
HTML服务器控件具有以下几个主要特性:
1、可在服务器上利用面向工具手艺对其举行编程把持,这为编程开辟供应了便当。
2、主动保护视图形态。在页面窗体到服务器端往复时代,用户在HTML服务器控件中输出的值将在页面回传中主动保护。
3、与考证控件举行交互,便于考证用户是不是在控件输出了得当的信息。
4、同意在HTML服务器控件中自界说属性。开辟职员能够将任何必要的属性增加到HTML服务器控件的属性会合,页框架将读取并出现它们而不变动其他任何功效。
ASP.NET2.0服务器控件之asp.net尺度服务器控件
asp.net尺度服务器控件均在名字空间System.Web.UI.WebControls中界说。所谓“尺度”是指这类服务器控件内置于asp.net2.0框架中,是事后界说的。这类控件其实不一对一映照到HTML服务器控件,它们比HTML服务器控件具有加倍丰厚的功效,而且加倍笼统。
与asp.net1.x比拟,asp.net2.0新增了50多个尺度服务器控件。依照控件所供应的功效,asp.net尺度服务器控件可分为以下6品种型:
(1)尺度控件:次要是指传统的Web窗体控件,比方TextBox、Button、Panel等控件。它们有一组尺度化的属性、事务和办法,因而可以使开辟事情变得复杂易行。
(2)数据控件:该类控件可细分为两品种型:数据源控件和数据绑定控件。数据源控件次要完成数据源毗连、SQL语句/存储历程实行,前往数据汇合等功效。详细包含SqlDataSource、AccessDataSource、XmlDataSource、SiteMapDataSource、ObjectDataSource等。数据绑定控件包含Repeater、DataList、GridView、DetailsView、FormView等。这类控件次要完成数据显现、供应编纂、删除等相干用户界面等。一般情形下,起首,必要利用数据源控件毗连数据库,并前往数据汇合,然后,使用数据绑定控件完成数据显现、更新、删除等功效。因为VisualStudio2005计划时的壮大撑持下,开辟职员能够疾速完成以上功效,乃至不必要编写一行代码。
(3)考证控件:它们是一组特别的控件,控件中包括考证逻辑以测试用户输出。详细包含:RequiredFieldValidator、RangeValiedator、RegularExpressionValidator、CompareValidator等等。开辟职员能够将考证控件附加到输出控件,测试用户对该输出控件输出的内容。考证控件可用于反省输出字段,对比字符的特定值或形式举行测试,其目标是考证某个值是不是在限制局限以内大概其他逻辑。
(4)WebParts控件:Web部件是一项十分了不得的功效,使用它可以创立具有高度本性化特性的Web使用程序。完成Web部件功效必要WebParts控件撑持,asp.net2.0供应了以下相干控件,比方WebPartManager、WebPartZone、EditorZone、CatalogZone、PageCatalogPart、AppearanceEditorPart等等。
(5)登录控件:这类控件可疾速完成用户登录及相干功效,比方,显现登录形态、暗码恢复、创立新用户等。详细包含:LoginView、Login、CreateUserWizard、LoginStatus等等。
asp.net尺度服务器控件因为是官方供应,因而,从体系外部就供应了对它们的壮大撑持。关于开辟职员而言,这些控件是构建Web使用程序的主力军。
ASP.NET2.0服务器控件之自界说服务器控件
自界说服务器控件派生自名字空间System.Web.UI.Control或System.Web.UI.WebControls。这类服务器控件完整由开辟职员自行计划开辟,开辟职员可自界说UI、功效、属性、办法、事务等特性,这是自界说服务器控件与asp.net尺度服务器控件实质的区分。
罕见的自界说服务器控件分为4种:复合控件、考证控件、模板控件和数据绑定控件。
(1)复合控件:该类控件包括两个或多个已存在控件。
它复用了子控件供应的完成来举行控件出现、事务处置及其他功效。
(2)考证控件:与上文所述尺度服务器控件中的考证控件界说不异。
(3)模板控件:该类控件供应了一种称为模板的通勤奋能。模板控件自己不供应用户界面,而是经由过程内联模板供应,这意味着模板控件同意页面开辟职员自界说该控件的用户界面。
(4)数据绑定控件:与上文所述尺度服务器控件中的数据绑定控件界说不异。
别的,除以上4类控件以外,自界说服务器控件具有以下特性:
(1)天真性强:开辟职员能够依据使用必要,自界说个中的UI、功效、属性、办法和事务等。
(2)款式撑持:因为自界说服务器控件大概派生自System.Web.UI.WebControls,因而经由过程承继的Style属性可界说款式,比方字体、高度、宽度、色彩等。
(3)供应对尺度服务器控件的扩大功效:自界说服务器控件可在承继尺度服务器控件的基本上,扩大或改善相干属性、办法、功效等,乃至能够将分歧的服务器控件组合起来,构成复合控件。
(4)易于部署:具有“即插即用”的特性,开辟职员只需将编译好的自界说服务器控件复制到相干的bin目次便可利用。
(5)难于创立:开辟自界说服务器控件必要开辟职员员精晓多方面手艺,同时,还必要泯灭大批的精神和工夫。
3、服务器控件性命周期简介
服务器控件的性命周期是创立服务器控件最主要的观点。作为开辟职员,必需对服务器控件性命周期深入了解。固然,这不是一朝一夕就能够做到的。关于进修控件开辟手艺的初学者,能够不用把握得十分具体深切,只需对服务器控件的性命周期中的分歧阶段有一个大抵的懂得便可。
在把握服务器控件性命周期的过程当中,读者要出格注重有关服务器控件形态的相干内容。在重点懂得性命周期各个阶段的同时,对服务器控件的形态变更要注重以下成绩:控件的性命周期什么时候保留控件和恢复其形态;什么时候与页面及其他控件之间举行交互;什么时候实行主要的处置逻辑;在各个阶段,控件可以使用哪些信息、坚持哪些数据、控件出现时处于哪一种形态和什么时候输入显现标志文本等。
以下枚举了服务器控件性命周期所要履历的11个阶段。
(1)初始化----在此阶段中,次要完成两项事情:1、初始化在传进Web哀求性命周期内所需的设置;2、跟踪视图形态。起首,页面框架经由过程默许体例激发Init事务,并挪用OnInit()办法,控件开辟职员能够重写该办法为控件供应初始化逻辑。今后,页面框架将挪用TrackViewState办法来跟踪视图形态。必要注重的是:多半情形下,Control基类供应的TrackViewState办法完成已充足了。只要在控件界说了庞大属性时,开辟职员才大概必要重写TrackViewState办法。
(2)加载视图形态----此阶段的次要义务是反省服务器控件是不是存在和是不是必要将其形态恢复到它在处置之前的哀求停止的形态。因而该历程产生在页面回传过程当中,而不是初始化哀求历程。在此阶段,页面框架将主动恢复ViewState字典。假如服务器控件不保持其形态,大概它有才能经由过程默许体例保留其一切形态而利用ViewState字典,那末开辟职员则不用完成任何逻辑。针对那些没法在ViewState字典中存储的数据范例大概必要自界说形态办理的情形,开辟职员能够经由过程重写LoadViewState办法来自界说形态的恢复和办理。
(3)处置回发数据----若要使控件可以反省客户端发还的窗体数据,那末必需完成System.Web.UI.IPostBackDataHandler接口的 LoadPostData()办法。因而只要处置回发数据的控件介入此阶段。
(4)加载----至此阶段入手下手,控件树中的服务器控件已创立并初始化、形态已复原而且窗体控件反应了客户真个数据。此时,开辟职员能够经由过程重写OnLoad()办法来完成每一个哀求配合的逻辑。
(5)发送回发变动关照----在此阶段,服务器控件经由过程激发事务作为一种旌旗灯号,标明因为回发而产生的控件形态变更(因而该阶段仅用于回发历程)。为了创建这类旌旗灯号,开辟职员必需再次利用System.Web.UI.IPostBackDataHandler接口,并完成另外一办法-RaisePostBackChangedEvent()。其判别历程为:假如控件形态因回发而变动,则LoadPostData()前往true;不然前往false。页面框架跟踪一切前往true的控件并在这些控件上挪用RaisePostDataChangedEvent()。
(6)处置回发事务----该阶段处置引发回发的客户端事务。为了便于将客户端事务映照到服务器端事务长进行处置,开辟职员在此阶段能够经由过程完成System.Web.UI.IPostBackEventHandler接口的RaisePostBackEvent()办法来完成该逻辑。由此路子,服务器控件将乐成捕捉回发的客户端事务举行服务器真个响应处置。
(7)预出现----该阶段完成在天生控件之前所必要的任何事情。一般情形下是经由过程重写OnPreRender()办法完成该事情。必要注重的是:在该阶段,能够保留在预出现阶段对控件形态所做的变动,而在出现阶段举行的变动则会丧失。
(8)保留形态----假如服务器控件不保持形态,大概它有才能经由过程默许体例保留其一切形态而利用ViewState字典,那末开辟职员不用在该阶段完成任何逻辑。由于这个保留形态的历程是主动的。假如服务器控件必要自界说形态保留,大概控件没法在ViewState字典中存储特别的数据范例,则必要经由过程重写SaveViewState()办法来完成形态保留。
(9)出现----暗示向HTTP输入流中写进标志文本的历程。
开辟职员经由过程重写Render()办法使其在输入流上自界说标志文本。
(10)处理----在此阶段中,经由过程重写Dispose()办法完成开释对高贵资本的援用,如数据库链接等。
(11)卸载----完成的事情与“处理”阶段不异,可是,开辟职员一般在Dispose()办法中实行扫除,而不处置Unload事务。
4、小结
服务器控件在asp.net2.0框架中起着无足轻重的感化,是构建Web使用程序最关头、最主要的构成元素。关于一个优异的开辟职员,把握服务器控件的基本常识长短常主要的。本文就服务器控件的观点、范例、性命周期等关头内容举行了先容。但愿读者可以将这些内容固定把握,为写出出色的服务器控件打下优秀的基本。
因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如Java改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-19 10:32:38 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
爱飞 该用户已被删除
板凳
发表于 2015-1-25 13:14:13 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
愤怒的大鸟 该用户已被删除
地板
发表于 2015-2-2 22:13:21 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
老尸 该用户已被删除
5#
发表于 2015-2-8 12:24:58 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
不帅 该用户已被删除
6#
发表于 2015-2-25 14:28:25 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
简单生活 该用户已被删除
7#
发表于 2015-3-7 22:25:07 | 只看该作者
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
若相依 该用户已被删除
8#
 楼主| 发表于 2015-3-15 15:17:22 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-22 02:10:36 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 18:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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