欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

asp.net程序员们,你在用微软的服务器控件吗

创建时间:2011年12月08日 23:09  阅读次数:(6953)
分享到:
本章来自内csdn的贴子整理,老规矩,各讨论间使用--分隔开,使用[]括起来的表示是引用其他人的回复。

本人观点,用不用微软的服务器控件,只要看它的控件能不能适合你的需求,性能与美化方面就不能考虑了,这点,微软的东西还是值的依赖的。


以前觉得使用微软的服务器控件本身就是天经地义的事--------不然还叫什么面向对象编程或代码重用。后期也想学学控件开发。不过近来却感到很怀疑以前的用法究竟是对还是错。
公司的多位同事讨论时,都说很排斥微软的服务器控件。前台最好全部不要服务器控件直接改成直接输出形式;后台用服务器控件进行开发时,好像除了TextBox Button外,其他的很少看到他们使用GridView等。他们的意思是前台用服务器控件耗性能。后台感觉用微软的服务器控件麻烦:样式不好控制,如GridView.而且还要跟随微软的屁股微软出一个就得去学一个。所以我看了下他们的后台基本上都是html+TextBox+Button+Javascript居多。搞的我像外星人一样好奇。好无语。。。。
我很困惑,前台的一些列表用服务器控件如DataList Repeater不是更OK,为什么很排斥微软的服务器控件。突然我感觉自己看到的世界又回到asp编程人员的世界。
----------------------------------------------------------------------------------------

其实是 看个人的爱好的,你要是喜欢用控件直接托很省事,但是有的页面不美观,没有HTML的美观,还有现在大多数程序员不怎么用服务器控件都是自己做 这样方便还美观。我个人的观点。
---------------------------------------------------------------------------------------

这个很正常...汽车刚出来的时候也被马车夫们排斥
---------------------------------------------------------------------------------------

有些服务器控件 比较消耗性能很少用
前台的话最多用个 Repeater 后台登陆的人少可以用一下 GridView
---------------------------------------------------------------------------------------

[引用 1 楼 sp1234 的回复:
因你不了解asp.net控件的机制所以你不知道如何美化,你们公司的平均水平大概也就是asp那样的。]

哈哈,SP1234大师说的也很透彻。复杂点的服务器控件gridView的机制确实不很清楚。经管说都解析成html代码。但我也理解他们说的不像直接html代码简单方便。
---------------------------------------------------------------------------------------

[引用 10 楼 tiancaolin 的回复:
引用 4 楼 vrhero 的回复:
这个很正常...汽车刚出来的时候也被马车夫们排斥... 

哈哈,你也太幽默了。不过我发觉排斥那些控件的人,可不是以前驾着asp的马夫哦]

对...除了ASP,还有以前驾JSP,PHP,HTML的马车夫...他们都还没能在工业化生产中找到或转换角色...所以执着于他们“可控”的手工HTML代码“简单方便”的制作流程...

但是当你真正理解了ASP.NET的呈现机制时,不说WPF/SilverLight了,就是最简单的Web服务器控件...当你学会合理地应用Theme、MasterPage,模板化和定制化服务器控件,你就会发现手工写HTML代码的生产力是多么低下...
---------------------------------------------------------------------------------------

前台我也有点排斥,不因为它的样式不好控制,是因为很多东西用不了那么复杂的功能
其实明白服务器控件输出的HTML,就很好控制.对于说不好控制,我们只能说无语
---------------------------------------------------------------------------------------

其实我也不排斥服务器控件,应用的性能真的有那么计较到那程度。前台还好说些排斥服务器控件---------但合理应用我反而觉得综合性还是比较好。也真的是搞不懂为什么其他同事说很排斥微软服务器控件。注:我到这个新公司不久 
---------------------------------------------------------------------------------------

搞技术类的程序员越高级的人有大部分人对新人的看法比较看不起。没事啦。这很正常,可以理解。曾经遇到过两个这样的例子:
一个是刚毕业进入一家搞ERP单位,有个非常厉害的人,脾气比较急躁,说话态度对任何人都好像很不友善。另一个是一年前在这个论坛上遇到的一个有4个星星的老前辈。那时我还以为网络上的这个人和现实曾经我认识的那个人是同一个人。哈哈。没事啦。过后想想也觉得没什么?有的人机会比较好,在机遇和努力下走向了更丰富见识更广的道路。只不过忘记了当初自己也是曾经怎么走过来的,都很正常可以理解额。反正有激励才有进步。
---------------------------------------------------------------------------------------
不排斥
控件很不错,既好用又实用,
如果真的很不喜欢使用服务器端控件,可以借助微软的这些服务器端控件改造成客户端控件,照样高效美观,开发速度也快。 
---------------------------------------------------------------------------------------

GRIDVIEW的确不方便,建议你使用
Developer Express .NET
里面的ASPXGRIDVIEW方便很多,自定义服务器控件是一定要学的,正如 道不远人-深入解析ASP.NET2.0控件开发里面的经典语句:不仅仅是控件开发
我现在的做法是,把ASP.NET当成C/S开发中的SQL SERVER类似的功能,也就是说,在WEB页面中布局,在PAGE_LOAD()中进行必要处理,输出到客户端后,尽量不要回传页面,客户端都用JS框架JQuery来完成对用户鼠标/键盘等的响应,中途需要服务器数据时,通过JQuery的AJAX来异步通讯,是不是和C/S开发中WINFORM与SQL SERVER关系很像?而Developer Express .NET大部分控件都有异步通信的功能,尤其是aspxGridView控件,调试时,找到WEBSOURCE,把里面的JS脚本复制出来,格式化一下,慢慢研究他们是如何在客户端控制ASPXGRIDVIEW的,尤其是如何同服务器通信,里面提供了大量方法,如设置FocusRow等
---------------------------------------------------------------------------------------

水平问题,水平够了就没必要去排斥了。样式问题调下样式就好。

1.不满意控件自己封装一个组件(ascx)。
2.不满意样式自己写个样式模板。
3.不满意控件太死板,自己往HTML里面写代码
4.觉得麻烦就直接拖个GRIDview进来然后指定一个datasource
5.如果你又想偷懒又这个不满意那个不满意,就自己封装一个grid控件吧。
---------------------------------------------------------------------------------------

服务器控件的确会在一定程度上影响性能,这个是不能否认的。 
但是对于大项目而言,要考虑到开发周期、整体架构等因素,好的设计是可以很大程度上提高性能,所以服务器控件的影响在整个项目中相对是很小的,可以忽略不计。 
如果项目比较小,那么用不用服务器控件都无所谓了,即使用了也不会有什么影响。 

一句话,对于服务器控件没必要回避。
---------------------------------------------------------------------------------------

有很多程序员CSS还是凑合的,
而GridView在不使用任何样式属性的情况下,生成的Table是没有任何样式的
所以,只需要一个CSS文件,可以对所有页面的Gridview进行统一的格式化
根本就没有“样式不好控制”的问题

另外,JAVA同样有服务器控件(他们管这个叫自定义标签)
而且他的问世不知道要比ASP.NET早多少
可为什么,JAVA自定义标签直到现在还没有大量普及
而ASP.NET服务器控件开发却形成了一个产业
研究过JAVA的同仁应该知道里面的原有
JAVA写个自定义标签,那真叫一个变态,使用起来,同样是那么变态。
---------------------------------------------------------------------------------------

是啊。微软提供的控件越来越多也越来越强大。就好象操作系统夹带了很多臃肿的功能。实际上多数功能是普通用户不需要的或使用不上的。我想我们的那几个同事估计也是习惯于用户的体验和注重界面灵活布置问题吧。所以对微软的那些控件反而觉得不如两三个控件就好。其实排斥与否也许我这个帖子说的有点误导别人了。
应该更正为---------------你喜欢用服务器控件直接进行站点编程吗?
---------------------------------------------------------------------------------------

asp.net电子商务网站开发实例那本书上都写了的,GridView虽然巴适但是以牺牲速度为代价。
DataList快一些 Repeater最快

反正我觉得有空间开发多好,像我师兄就是搞java的,他们都是公司头自己开发一套控件,也不可能写得比微软的好吧???
---------------------------------------------------------------------------------------

我做的网站前台是没用控件的。全是html,数据提交用的post或ajax,
不是网站就用的相对多一点。但还是尽量不用EnableViewState,数据量多这有时有几十上百K呢。很影响速度·
不过用上EnableViewState是要方便很多滴。
---------------------------------------------------------------------------------------

从asp.net出生那年开始学.net,每过一段时间就有一些新的感悟,把我的体会说一下,总体分四个阶段。

第一阶段,入门:感觉服务器控件好用,照着例子很快就能生成一个数据表格,用DataSet DataGrid等等。

第二阶段,做实际网站:用服务器控件,不过觉得有一些问题,做出的页面和客户的要求总有一些距离。前面好多人都说了,也许是服务器控件的局限,或是没学好用好。

第三阶段:按照客户的要求自己生成html文本,感觉很爽,客户的要求都能实现。后来把它们归纳成一些类,重用性也很好,
基本上就不用服务器控件了。

第四阶段,较大的网站:就是访问人数较多的网站,服务器很快就死了,IIS重启,后来发现原因是每个页面都打开数据库,生成页面,把IIS资源耗尽了。在网上查了一下,又学了一招,生成静态页面,有很多看似必需读库的页面,也可以做成静态的,很典型的例子就是大家现在看到的CSDN的贴子(http://topic.csdn.net/u/20090316/18/02330EEB-2668-4080-AD8A-DCEB2319206E.html),连ASPX文件都不是,当然也就不用服务器控件了,占用服务器CPU很少,客户端显示也非常快。走了整整一圈,又回到了起点,用*.htm文件了,不过应该是一个螺旋上升的过程。

总的感觉是服务器控件入门快,但是要学好不容易,不容易到什么程度呢?还不如自己生成相应的文本快。还有就是效率问题,在客户端的浏览器中打开一个ASPX的源文件,发现有N多K的乱码,这些都是要上传的数据,多数是没有用的,影响效率。

说了这么多,请高手指点一下,路走的对不对,特别是第四阶段,用静态页面的方法,有没有更好的方法?
---------------------------------------------------------------------------------------

Developer Express .NET  
里面的ASPXGRIDVIEW方便很多,自定义服务器控件是一定要学的,正如 道不远人-深入解析ASP.NET2.0控件开发里面的经典语句:不仅仅是控件开发  
我现在的做法是,把ASP.NET当成C/S开发中的SQL SERVER类似的功能,也就是说,在WEB页面中布局,在PAGE_LOAD()中进行必要处理,输出到客户端后,尽量不要回传页面,客户端都用JS框架JQuery来完成对用户鼠标/键盘等的响应,中途需要服务器数据时,通过JQuery的AJAX来异步通讯,是不是和C/S开发中WINFORM与SQL SERVER关系很像?而Developer Express .NET大部分控件都有异步通信的功能,尤其是aspxGridView控件,调试时,找到WEBSOURCE,把里面的JS脚本复制出来,格式化一下,慢慢研究他们是如何在客户端控制ASPXGRIDVIEW的,尤其是如何同服务器通信,里面提供了大量方法,如设置FocusRow等
---------------------------------------------------------------------------------------

正式回答上面的几个问题:
1.我再强调下我本人习惯微软服务器控件开发,但到新单位后我发现里面的人排斥微软服务器控件。
好像我进入了asp的世界,但他们都没有asp习惯。
他们的前台完全禁用微软服务器控件,后面也更喜欢自己写html+js。
开发速度吗?我觉得他们都做得非常快,反而更顺手。
能力吗?哪天我把他们的超高访问量的高性能站点介绍给大家。
其实我很鄙视那些没真正见识过内情的人,却一直在乱瞎批评别人。当然我不是指那些友善提意见的人。
每个人都有自己的开发习惯,除非你真的有见解不然就不要硬把自己所谓的习惯强加于别人的身上。
2.我知道你是个微软的强烈支持者,我也是,但请注意我在此是讨论问题,而不是讨论为什么一定要支持微软的问题。
你可能非常习惯于微软的底层机制和运用。但你的所谓高性能是建立在纯粹缓存+少访问量的应用系统上。我不觉得你的性能会真比别人高非常多。你的能力也别人无法质疑,但请你也不要小看别人的能力。因为你是深处在某一个行业系统中,你并没有真正考虑去接触到其他行业所谓高性能
站点的特性。我更喜欢有人说的够用原则,实在没必要微软太多复杂东东,浪费性能而已。
3.排斥微软服务器控件难道只有牛人跟新人吗?我想更多的是讲究适用与追求。
其实我也曾是微软控件的爱好者和习惯使用者。但我一直最认为,其实Web技术真正的技术在于javascript+css.
当然你可以鄙视我的这中见解,但我说的是我的深感悟。
---------------------------------------------------------------------------------------

各有优缺点,看需要,什么东西,都不可一概而论的。那样太没深度了。
有时多看看相关的书,包括控件的加载机制,就算别人都说不好,自己一定要深知到底哪里不好。
否则说出话来,不就是找事吗?

说不好美化,是真的吗?你美化过吗?你有尝试过封装好的新功能吗?

制于说耗性能,请问用什么软件做的测试,我曾试过,差距都是豪秒级的,如果机器更好,会更少,可以说可以略。

不论什么控件,最后到页面,铁定都是html控件,本身的耗性能无处可谈。个人看法,所谓的耗性能就是指在,

 viewsated页面回传上,而这些有好多是可以控件的,和控件本身并没有关系,而且越往后,这个越可以忽略不计的。

呵,个人意见,毕竟了解甚少,但可以肯定一点,在可以接接的性能情况下,有时开发的简易性挺重要的。

只能是看需求了。
---------------------------------------------------------------------------------------

看来我也是马夫了,,
说真的,我也很少用其它控件
就用这些标准控件
Label,TextBox,Button,LinkButton,ImageButton,HyperLink,DropDownlist,ListBox,Checkbox,CheckBox,CheckBoxList,RadioButton,RadioButton,RadioButtonList,Image,HiddenField,FileUpload,Panel,

还有一个Repeater控件
不过我用这些控件的情况是给我带来不少方便的
其它没什么用,,,

像Gridview,,SqlDataSource,AccessDataSource,验证控件,登录控件,,==都不会用,,,
像 验证控件 做小网站忽悠客户还要可,,真的大站的哦,,用javascript都比他方便,,

像 登录控件 我一直很反对用他的,,不能随心所欲来修改,用户权限==问题
个人意见发表完了
---------------------------------------------------------------------------------------

Asp.net MVC正式版发布了,一个好消息,我正在试用,看到这个帖子。
Asp.net现在有两种路线,两种选择: Asp.net Web和Asp.net MVC,两种技术基本上没什么联系。
前者使用服务器控件,开发速度快,实用范围是:局域网内部的管理系统。
后者完全不使用服务器控件,实用于对页面要求很高,如Web2.0的系统。
---------------------------------------------------------------------------------------

不要把asp.net同java来比较,这样比较大家觉得对吗? 应该是这样来比较;
asp.net与jsp
c#与java
微软的vista系统有60%的代码用C#来完成.难道你还感觉不到C#的强大吗? 如果你感觉到 asp.net中的Girdview不好用,如果你水平够用完作可以自已用C#去编一个啊.
这和用java开发自定义控件是一样的道理.
---------------------------------------------------------------------------------------
保持着用ASP习惯开发ASP.NET程序的程序员是伪程序员,不要以HTML绿色环保为由来掩盖自己对ASP.net的无知。国内绝大多数程序员没有资格评价微软人家许多精英级程序员开发的东西,因为你们学Hello world后就自认是初级程序员了,照着人家写的自页代码打了一遍code,就自认为自己够没MVP了……,不要再以斧头比电锯效率更高来,展示你们的无知了
---------------------------------------------------------------------------------------

排斥不排斥反倒没什么感觉~还不是要看业务需求和开发成本。
我学习的课程里有ADO.NET和HTML+JavaScript。以下是一些个人观点:

HTML+JavaScript(下面简称H+J),比起.NET来说,虽说是手工代码,但优点是能直观控制、使用前无需安装、所占硬盘空间很少、开源、容易制作绚丽的页面特效等。适用与B/S结构。

而.NET,比起H+J来说,又具有更强悍的业务操作能力(例如说DataGridView,只要简单几句代码就可以实现大量的信息加载到客户端程序(非循环操作),这业务如果要在H+J里面实现的话、、、呵呵)、更严谨的流程操作(JavaScript始终都是弱语言而已)、(在微软系统中)更快的程序运行速度(各位大大不信的话可以去测试一下^_^)、丰富的结构模式(例如单件工厂模式)、不逊色与H+J的样式控制等。

目前可以这样说,H+J的特点是精于外在美,而.NET是精于内在美。十个手指有长短,每个程序员都有自己的特长。
所以说就要针对业务需求和开发成本之间进行取舍啦。

另外还有一点就是,我和我教员聊天时,他就提及了.NET有准备控件收费的意向(消息未经证实),叫我要多用代码实现功能^_^ 
---------------------------------------------------------------------------------------

感觉服务器控件挺好。是.NET的相对其他语言来说的一大特色。

就好像当初封建社会农民都是手工播种,生产力虽然低下,但低耗能,绿色生产这是一大亮点。这就好比Java开发方式。

其实我觉得.NET的服务器控件的出现就像工业革命一样,虽然大大的带动了生产力,但是负面影响也随之产生,高耗能,高污染,环境质量大打折扣。这就好比.NET的服务器控件开发方式。

不过我们已经经历了好几百的工业时代到如今人民基本普遍意识到了这一问题,所以现在很多人都倡导保护环境,因此就好比服务器控件一般现在很多人都在着手提高其性能,相信不久的将来服务器控件也能像工业革命一样从高污染发展到低耗能,低污染,高生产效率。

时间会证明.NET的服务器控件将会成为这个时代的潮流,因为.NET服务器控件可以带程序员从封建社会的生产模式进入到资本主义的工业生产模式的一大转变。之所以会出现楼主所说那种情况那是因为,很多人都不愿意摈弃传统的那种低污染,低生产力的绿色开发模式,毕竟这东西好高效率,虽然花的时间长但是没关系哥别的不多就时间多。

Java的那种封建社会开发模式随着时代的发展是要被淘汰的,.NET的这种资本主义的工业开发方式将是引领时代生产力进一步向前发展的一大助力。

总之个人认为.NET的服务器控件开发方式的前景我个人很看好。
---------------------------------------------------------------------------------------

我只能说微软提供的服务器控件“不好控制”,是因为你没能力控制!我刚学.NET的时候也觉得“不好控制”,可是慢慢的我发现很好控制。说不好控制我想主要是说呈现样式吧style,这个你完全可以在控件内插入html元素,比如div以及ul和li,辅以CSS。象这样
<div >
  <ul >
<asp:datalist id="xxx" runat="server" >
  <itemplate >
  <li >
  <asp:label id="sss" runat="server" Text='<%# Eval("record") % > / >
  <li >
  </itemplate >
</asp:datalist >
 </ul >
</div >
你能控制html就能控制这个服务器控件。
另外微软之所以提供服务器控件,其宗旨就在于提高生产效率。说服务器控件不好,冗余太多、影响性能,你们是从根本上误解了微软。任何东西都有两面性的,忽略了高效开发的特性,你代码再简洁,那也得自己动手。
---------------------------------------------------------------------------------------

以上观点来自csdn的网友,仅供大家参考。
来源:http://topic.csdn.net/u/20090316/18/02330eeb-2668-4080-ad8a-dceb2319206e.html
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 7+96=? 的结果(结果是:103)
结  果: