再现理想 发表于 2015-1-16 22:23:50

ASP.NET网页编程之asp.net下web控件点评

一般的指的.net就是跟java相对的那种,主要是做企业级应用的。你如果想学这个,主要就是学C#和数据库。(ASP.NET好像很重要的,应该也要学的,ASP.NET上好像可以结合VB和C#等多种语言,但是微软主推C#)asp.net下控件分二年夜类,分离在System.Web.UI.WebControlsSystem.Web.UI.HtmlControls定名空间下,前者承继自WebControl,后者承继自HtmlControl,这二个类又都承继自System.Web.UI.Control额, windows平台,不管你处置甚么开辟,终极都必要有人挪用loadlibrary.dll.那末asp.net控件,不管你利用甚么控件,终极都要挪用Render.实在做为前台开辟,这些控件年夜部分不是那末好用.1.起首会天生长长长长的ID,出格是面页镶套有控件的时分,一是会让你终极的HTML代码
收缩,别的和js共同的时分逝世了贫苦,要和js交互必要写一堆<%=Control.ClientID%>,没举措,asp.net非要好心的匡助我们办理ID抵触
的成绩.这个ID为何反面终极天生的ID分隔呢,多是事先做这套控件的时分javascript还没有如今这么壮大,被ms疏忽了.
2.另有多天生一个span的成绩,即不w3c,又倒霉于排版.写css的时分要思索夹在两头不尴不尬的span.
3.form成绩,良多表单等控件,要用到server端form,当而面有多个form的时分,只能把个中的一些form用js交互了,form在URL重写的时分
另有个成绩,天生的不是URL重定向后路径,server端处置这又必要重写form
4.关于老手另有长长的_VIEWSTATE
良多时分,我们编写前台代码的时分,只是必要复杂的出现出来,不必要长长的ID,不必要span,不必要_VIEWSTATE,仅仅必要几行洁净的
HTML标签,可是基本没有选项或属性设置,要末全体给你,要末全不给 .固然我们能够像asp,和asp.net那样来编写代码,可是既然供应了
老是要用的.
WebControl也带来必定的天真性,如今asp.netweb开辟,基础都分是N层架构, 假如这些代码都在逻辑层输入,
不修正源代码就没举措变动了,<asp:HyperLinkrunat="server"ID="link">毗连笔墨</asp:HyperLink> 好比如许的,复杂的个改毗连笔墨
模板等属性.别的,表格控件用在背景编纂数据等也是相称便利. 可是用在前台,GridView之类的计划成美工切好的图,相对的膂力活.
有些人利用控件都快有强制症了,前台复杂的显现都要用GridView,明显StringBuilder拼集又简便,又高效么.
头几天碰着一个奇异的成绩,想做一个效果,鼠标挪动到图片上,高亮显现边框,美工做好到场到代码中,逝世活没效果,找半天不晓得怎样回
事,厥后偶然中发明一切的Image控件,主动加上了style="border-width:0px;", 好吧,后处台处 Image.Attributes.Remove("style");
仍是有style="border-width:0px;"在加上Image.Attributes.Clear();仍旧有style="border-width:0px;",决对是个脑残的计划,也许是为了
办理夹在a标志中的img标志默许的1px的border的成绩吧,但是这就没举措用css来处置Image的border属性了.

我最经常使用的控件:
literal 洁净,便利.拼集HTML代码,js代码
repeater 洁净的列表
placeholder把持显现逻辑
最脑残的控件:
Image缘故原由见下面一条
最没代价的控件:
labelspan套literal就好了,款式交给美工往办理,看不出有甚么有用的代价.
难用的控件:
datalist,gridview 天生div或列表结构好累(仅仅指前台)
其他控件视场所而定.
别的HtmlControl和WebControl的区分,网上有如许说的,纯属误导,其实看不下往了,注释一下
--------------------------------
1.利用起来也相称便利,举个复杂的例子,比方Button的天生:
Html控件是将复杂控件汇合全体弄到页面中,用到哪一个功效,就设置一上司性,以下:
<inputtype=submit/button/textrunat=server>
如许会占用相称年夜的控件资本
--------------------------------
这个纯属误导,还传播很广.终极都是天生HTML标签,input之类的跟本不必要将复杂控件汇合合部弄到页面中,只是终极天生一个标签罢了,要说差别,也只是HtmlControl和WebControl基类之间的差别.
--------------------------------
2.Web控件具有回送功效,可以用ViewState保持控件的形态.
Html控件则不克不及,当点击页面的操纵,其形态就会丧失.
--------------------------------
protectedvirtualvoidLoadViewState(objectsavedState);
protectedvirtualobjectSaveViewState()
实在这二个界说在System.Web.UI.Control基类中,只是WebControl重写了这二个办法,但HtmlControl里没有对这二个办法举行重写,但这不即是下面的说法
--------------------------------
3.Html控件与Web控件最年夜的区分是它们对事务处置的办法分歧。关于Html窗体控件,
当激发一个事务时,扫瞄器会处置它。但关于Web控件,事务仅由扫瞄器天生,但扫瞄
器不会处置它,客户端要给服务器发个信息,告知服务器处置事务。
--------------------------------
这是搅浑了server事务和客户端剧本事务,不管是完成自WebControl仍是HtmlControl都能够触发Server端事务 
处置server端事务只需完成了IPostBackEventHandler接口的控件,都能够.
我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。

海妖 发表于 2015-1-19 10:34:53

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

小女巫 发表于 2015-1-25 18:22:04

Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!

金色的骷髅 发表于 2015-2-3 12:58:56

大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。

再现理想 发表于 2015-2-26 19:20:16

但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。

飘飘悠悠 发表于 2015-3-8 16:53:44

但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。

活着的死人 发表于 2015-3-22 21:10:41

代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
页: [1]
查看完整版本: ASP.NET网页编程之asp.net下web控件点评