CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

反感服务器控件,请问有没有不使用服务器控件的?

楼主qingyun163(大约在冬季)2006-10-27 16:19:12 在 .NET技术 / ASP.NET 提问

asp.net,我想不用服务器控件!   谁和我有同样的想法?    
  服务器控件,都在服务器编译的,加重了服务器的负担;  
  数据绑定控件,模板化,不灵活,不好控制,无法与Css+div设计模式相融合;  
  垃圾代码太多    
   
  有时候,连一个非常简单的操作都需要和服务器交互,严重地影响了性能。    
  不能够很好的与js相结合    
   
  所以我打算弃用服务器控件了,大家给意见! 问题点数:0、回复次数:62Top

1 楼xiahouwen(武眉博<活靶子.NET>)回复于 2006-10-27 16:24:59 得分 0

不用asp.netTop

2 楼qingyun163(大约在冬季)回复于 2006-10-27 16:25:15 得分 0

有和我想法一样的人吗?探讨一下。Top

3 楼iuhxq(小灰)回复于 2006-10-27 16:27:20 得分 0

我也想过,不过服务器控件也有他存在的意义  
   
  我现在就是一个服务器控件都不用。  
  用的XML+XSLT+ASP。NETTop

4 楼pol000(糊涂)回复于 2006-10-27 16:31:03 得分 0

不知道啊~  
  MARK下~  
  Top

5 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-10-27 16:34:38 得分 0

aspx、ascx上之所以有服务器控件,是方便你随时在部署之后的网站上修改布局和属性,例如将这个csdn发帖的页面中的顶部第二行的导航菜单改在中间每一个帖子的前边都复制一个,仅仅需要在aspx上将菜单控件(也许是ascx)改在DataList内部(手工增加一个列然后考入菜单控件)即可,还可以随时修改属性。编译仅仅在页面被修改之后第一次访问的时候做一次。如果你根本不需要这种发布之后修改的功能,对于asp.net2.0,它可以将所有设计代码预先编译进dll,此时发布到网站上的aspx或者ascx上就是空白的什么也没有。  
   
  “数据绑定控件,模板化,不灵活,不好控制,无法与Css+div设计模式相融合;”这是因为你还不会控制和融合。用再高级的工具如果目的就是模拟低级工具的功能,就会产生垃圾代码。  
   
  关于是否需要和服务器交互的问题,其实在于你。你为什么要选择asp.net?你是否以为asp.net应该是取代javascript的工具?  
  Top

6 楼qingyun163(大约在冬季)回复于 2006-10-27 16:41:51 得分 0

楼上,你误会我的意思了,其实我最关注的是性能问题。asp.net的机制牺牲了性能。我没有认为asp.net是取代javascript的工具,相反,我认为asp.net不能很好的和js相结合。因为许多事情用javascript就可以完成,用不着与服务器交互。Top

7 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-10-27 16:47:06 得分 0

如果讨论低级应用,性能自然是降低。基本上所有开发环境都是降低了低级应用的性能的,甚至c++也降低了c应用的性能,起码我并不少见此类现象。  
   
  “许多事情用javascript就可以完成,用不着与服务器交互”,那么你完全可以用javascript完成呀。就像用c已经写好的程序,没必要要求c++重写一遍。软件工程只是证明c++对于开发者综合看来更加先进,并没有证明它比c运行速度快。Top

8 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-10-27 16:53:47 得分 0

一切软件,不论使用什么开发工具,都可以用任意一种更加低级的开发工具来写,这是一个无可反驳的公理,也是一句废话,因为它回避了一个重点:其实人们要的是开发效率,是考虑到软件项目将来的命运而不是毫无目的地重写过去已经写好的东西。Top

9 楼iuhxq(小灰)回复于 2006-10-27 17:20:44 得分 0

汗楼上啊  
   
  to   楼上:  
  其实你说的都对,估计楼主也明白,但是他们是想找一个更好的开发模式。Top

10 楼coffee0818()回复于 2006-10-27 22:33:57 得分 0

那就把它们配在一起用好了Top

11 楼leahb()回复于 2006-10-27 23:29:47 得分 0

楼主   你带有偏见啊  
  建议你用记事本写  
  你连   ASP.net   的实质都不懂     也别用什么   ASP.net      
  Top

12 楼dreamw(网卡)回复于 2006-10-28 00:08:01 得分 0

我也有楼主的困惑,可能是在ASP之后遗留下的习惯,感觉ASP.NET的控件真的很死,很模版化  
  !!  
   
  请教==============  
  iuhxq(小灰)  
  ==================  
  XML+XSLT+ASP。NET  
   
   
  这个是怎么用的????  
  Top

13 楼smallmaster(来自腐败机构FBI)回复于 2006-10-28 01:05:26 得分 0

以前用php的时候我也想过使用xml+xslt+php  
  不过现在asp.net省事了,开发没有那么麻烦Top

14 楼tete(N多Flash-www.ndflash.com)回复于 2006-10-28 08:24:10 得分 0

asp.net   2.0更死  
  微软的愚民政策Top

15 楼jaguar_yang(平凡的世界)回复于 2006-10-28 08:43:11 得分 0

在国外切实有相当一部分不用VS的前后台代码编写ASP.NET程序.所有的文件都在一个文件中Top

16 楼junzhang4008(程序可以让尸体动起来)回复于 2006-10-28 08:49:13 得分 0

如果lz追求性能的话,   那就用汇编把Top

17 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2006-10-28 10:31:26 得分 0

建议楼主使用VS2005中的增强的ATL   Server   (在C++项目里面)来开发网页程序,就没有服务器端控件了,你想怎样都行,只是你开发完1期,我早在做3期了.....  
   
  另外,微软的MSN网站就是很多地方用这个的,   这ATL用好了还是很牛的..Top

18 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2006-10-28 10:35:25 得分 0

比如Hotmail的登录页,你看网页后缀名是srf     (https://login.live.com/login.srf)就是ATL   Server的页面默认后缀名.  
   
  Top

19 楼com_dydydy()回复于 2006-10-28 10:44:51 得分 0

------------  
  同意同意  
  ------------  
  我也不想用,不过混饭吃还是要用一下的~  
  另外怀疑ASP.NET程序员身份这么底是因为Web   FormTop

20 楼cime63(流浪的孩子)回复于 2006-10-28 11:18:18 得分 0

没什么,大部分情况下ASP.NET程序的性能没那么重要的  
   
  性能重要的地方我们都用C++来操作了Top

21 楼genfeng()回复于 2006-10-28 12:14:11 得分 0

关注!Top

22 楼shalen520(Love will keep us alive)回复于 2006-10-28 12:39:37 得分 0

自带的服务器控件不好用,可以自己写好用的Top

23 楼poorman19821018(流光飞舞)回复于 2006-10-28 12:46:20 得分 0

仁者见仁,智者见智,不管只要实现就好,没有什么最好和不好,各有各的特点的.就像这几年来讨论比较多的.NET和J2EE的比较,有那么多必要   吗?不过就是两大阵营各自的策略罢了,这要看你站在哪儿阵营那边了.....Top

24 楼luby(轻疯[在岁月无声的消逝里,轻轻的...我疯了。])回复于 2006-10-28 15:16:30 得分 0

干脆连服务器都省了Top

25 楼SkyIsland(被电脑折磨死了)回复于 2006-10-28 15:20:30 得分 0

不用服务器控件也行,除非你不想敏捷开发。你觉得这现实吗?Top

26 楼anis0444()回复于 2006-10-28 16:52:15 得分 0

一手抓性能,一手抓开发效率Top

27 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2006-10-28 16:58:27 得分 0

想用就用,不想用就不用嘛。Top

28 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2006-10-28 17:00:30 得分 0

有……我,  
  不过我是从来不用ServerForm,而不是不用服务器控件。Top

29 楼artoksxb(进取人生)回复于 2006-10-28 17:13:46 得分 0

upTop

30 楼qingyun163(大约在冬季)回复于 2006-10-28 17:14:13 得分 0

谢谢,各位如何关注这个贴子!其实我在想,如果要做一个性能快,承载量大的系统,用服务器控件绝对行不通,大家可以尝试一下微软的CSDN网站,速度慢得可以~~  
   
  如果要追求效率,时间紧迫,可以使用服务器控件。  
   
  我发这个贴的目的,就是想知道大家对这种做法的态度,找一些有相同想法的朋友共同探讨一下。Top

31 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2006-10-28 17:18:21 得分 0

微软的CSDN网站???!  
  原来CSDN被微软收购了?Top

32 楼qingyun163(大约在冬季)回复于 2006-10-28 17:24:31 得分 0

楼上不要钻空子好不好?打错了而已,MSDNTop

33 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2006-10-28 17:26:40 得分 0

MSDN慢是因为服务器在美国并且流量大好吧……Top

34 楼uuuuuuuuuu(当AK遇到M4)回复于 2006-10-28 17:50:00 得分 0

不知道js跟asp.net有什么关系  
  一个是客户端的一个是服务器端的    
      两者的区别那么大   ,怎么代替   ??  
  你举个例子Top

35 楼qingyun163(大约在冬季)回复于 2006-10-28 18:00:42 得分 0

楼上,我没有说要让js来代替asp.net呀。只是有些基本操作,可以用js来完成的。主要是客户端操作Top

36 楼renmasheshou(狼狗)回复于 2006-10-28 19:32:36 得分 0

那就不要用.NET控件~Top

37 楼jianyi0115(随意)回复于 2006-10-28 21:17:54 得分 0

无法与Css+div   相融合   ???   会吗?  
   
  是楼主不会吧~  
   
  Top

38 楼mba9001(两年不见,csdn变肥了)回复于 2006-10-28 21:47:55 得分 0

楼主在胡闹,还这么多人跟着胡扯Top

39 楼kubbye(小蛤蟆就是我)回复于 2006-10-28 22:20:17 得分 0

那你用什么.net,用其他技术不是更好,想用还没有呢Top

40 楼yanpol()回复于 2006-10-28 23:04:53 得分 0

我也想过,不过服务器控件也有他存在的意义  
   
  我现在就是一个服务器控件都不用。  
  用的XML+XSLT+ASP。NET  
  -----------------------------  
  怎么用啊,请指教!Top

41 楼test33(隐姓埋名)回复于 2006-10-29 10:43:52 得分 0

JS   牛X。Top

42 楼qingyun163(大约在冬季)回复于 2006-10-29 12:05:08 得分 0

jianyi0115(随意)   :  
  我说asp.net的用户控件无法与div+css相融合,我有错吗?  
   
  你用一个GridView控件,或者DataList控件,生成的都是是table,哪里有div+css元素啊??还说我不懂!Top

43 楼dreamw(网卡)回复于 2006-10-29 13:04:02 得分 0

有一个问题因感的是:  
  以前在ASP中,JS是拿来主义,,,  
   
  在ASP.NET中,直接拿来很难搞,,几乎搞不了,不知道前辈们怎么在ASP.NET中用JS的???Top

44 楼xiaomatian(趴趴熊◎%#……※×)回复于 2006-10-29 14:36:40 得分 0

这种讨论很无聊,闪人Top

45 楼iuhxq(小灰)回复于 2006-10-29 16:19:23 得分 0

把数据库里取出的数据,生成XML格式,再用XSLT格式化成HTML  
   
  CSDN的帖子就是典型的例子Top

46 楼zheng616(猪八戒)回复于 2006-10-29 19:29:39 得分 0

服务器控件可以和js很好的结合,  
  用户控件和div+css可以很好的融合..  
  Top

47 楼ad0001()回复于 2006-10-29 19:36:16 得分 0

对客户来说最重要的是开发效率,运行是否稳定.  
  看我们不止是用服务器端控件,还用communityserver作为基础平台  
  http://www.carva.net/  
  中国车载影音网Top

48 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-10-29 19:58:50 得分 0

呵呵,刚刚看了一个网站上有个QQ图标,就把它的html扒下来花了十分钟作了个控件,送给大家玩:  
   
  public       class   QQPresence:   HyperLink    
  {  
   
      public   string   UserQCode  
      {  
              get  
              {  
                      if   (ViewState["code"]   ==   null)  
                              return   "123456789";  
                      else  
                              return   (string)ViewState["code"];  
              }  
              set  
              {  
                      ViewState["code"]   =   value;  
              }  
      }  
   
      public   override   void   RenderEndTag(HtmlTextWriter   writer)  
      {  
              writer.Write("<iframe   name=\""   +   this.ClientID   +   "_hidden\"   style=\"display:none\"   />");  
              base.RenderEndTag(writer);  
      }  
   
      protected   override   void   Render(HtmlTextWriter   writer)  
      {  
              this.ImageUrl   =   "http://wpa.qq.com/pa?p=1:"   +   this.UserQCode   +   ":10";  
              this.NavigateUrl   =   "tencent://message/?uin="   +   this.UserQCode   +   "&Site=test&Menu=yes";  
              this.EnsureChildControls();  
              this.Target   =   this.ClientID   +   "_hidden";  
              if   (this.ToolTip   ==   string.Empty)  
                      this.ToolTip   =   "点击这里发消息";  
              base.Render(writer);  
      }  
  }  
  Top

49 楼jianyi0115(随意)回复于 2006-10-29 20:16:09 得分 0

jianyi0115(随意)   :  
  我说asp.net的用户控件无法与div+css相融合,我有错吗?  
   
  你用一个GridView控件,或者DataList控件,生成的都是是table,哪里有div+css元素啊??还说我不懂!  
   
  ---------------------------  
  若你有这种需求,你应该用Repeater阿,生成什么完全由你控制!!!!!!!!!  
   
  再说,本来有些数据就要以表格的形式展现,用table有问题吗?  
   
  服务器控件封装了常用的html生成逻辑,搂主看到的服务器控件   no   div+css   ,   并不说明  
  服务器控件没办法做这个。  
   
  建议搂主学习一下服务器控件的开发。  
   
   
   
  Top

50 楼ericfine(埃里克)回复于 2006-10-29 21:36:06 得分 0

无法与Css+div设计模式相融合;  
   
  在asp.net网站有个sandbox,     里面有个CSS   Control   Adapters.   嫌MS提供的控件不好用你可以改回用ASP.   同样做ASP.NET项目,   可以分出   架构师,业务工程师,数据工程师,UI工程师,还可以分出组件/控件工程师来.Top

51 楼ghx88(辉)回复于 2006-10-29 23:05:29 得分 0

用repeater   代替   GridView   也可以啊!   用repeater     绝对可以做成GridView   的效果,绝对可以与Css+div设计模式相融合Top

52 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-10-29 23:14:07 得分 0

其实那代表着一种新的可能性,新的扩展方法,新的能力,新的架构——面向对象。Top

53 楼iuhxq(小灰)回复于 2006-10-30 00:29:21 得分 0

怎么这么多人在钻牛角尖呢?  
   
  看我们用XML+XSLT做的一个后台管理代码,实现了默认列出所有该用户积分变化,如果选择了开始时间和结束时间,则过滤出这段时间内的积分变化:  
  #region   积分管理  
  ///   <summary>  
  ///   积分管理  
  ///   </summary>  
  [BaseClassAttribute(ClassName="Point"   ,   ClassDescription   =   "积分管理",  
    ClassAuthor="qxh",   ClassCreateDate="2006-7-28")]  
  public   class   Point   :   ListDataContain  
  {  
  protected   override   void   OnGettiing(Object   sender,   DataEventArgs   e)  
  {  
  //this.TransformKind   =   transformKind.Client;  
  this.CheckLogin();  
   
   
  this.PageSize   =   20;  
  this.PageCurrent   =   1;  
  this.TableName   =   "point_log";  
  this.FieldsShow   =   "*";  
  this.Order   =   "seqno   desc";  
   
  string   sv   =   Request.QueryString["s"];  
  string   ev   =   Request.QueryString["e"];  
   
  if   (sv   !=   null   &&   ev   !=   null)  
  {  
  this.PostSqlCon   =   string.Format("s={0}&e={1}",   sv,   ev);  
  this.WhereCondition   =   string.Format("   where   user_id   =   {0}   and   op_time   >=   '{1}'   and   op_time   <   '{2}'",   this.userInfo.UserID,   sv,   ev);  
  }  
  else  
  {  
  this.WhereCondition   =   string.Format("   where   user_id   =   {0}",   this.userInfo.UserID);  
  }  
   
  this.XsltFile   =   "Manage/Point.xslt";  
  }  
  }  
  #endregionTop

54 楼net_live()回复于 2006-10-30 08:55:30 得分 0

mark..  
  Top

55 楼lilome()回复于 2006-10-30 09:17:03 得分 0

viewstateTop

56 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2006-10-30 09:20:02 得分 0

jianyi0115(随意)   :  
  我说asp.net的用户控件无法与div+css相融合,我有错吗?  
   
  你用一个GridView控件,或者DataList控件,生成的都是是table,哪里有div+css元素啊??还说我不懂!  
   
  ====================================================================  
   
  无语……无知者无畏。  
   
  世界上从来就没有什么div+css的东西。  
  TableLayout和BlockLayout各有优点,相辅相成。不说了……Top

57 楼xiao_p(kkk)回复于 2006-10-30 09:20:12 得分 0

我也想过,不过服务器控件也有他存在的意义  
   
  我现在就是一个服务器控件都不用。  
  用的XML+XSLT+ASP。NET  
   
  >>  
  怀疑他打错了  
  应该是XML+XSLT+ADO.NET  
  否则看起来怪怪的,  
  asp.net   本来就是ui框架   在加上的话就和xml   +   xslt   重复了···Top

58 楼zorou_fatal(The world and system is even)回复于 2006-10-30 09:20:41 得分 0

楼主如果你觉得MS自己的web   control不好用,完全可以自己render   web   control么。Top

59 楼piggybank(吞硬币的小猪)回复于 2006-10-30 09:39:16 得分 0

非常好的问题,只是我觉得你的理由有点儿站不住脚,或者说描述不准确  
   
  >服务器控件,都在服务器编译的,加重了服务器的负担;  
  没错,不过对于性能来说,因为服务器控件仅仅编译一次,谈不上加重负担  
  真正加重负担的是:AutoPostBack,不过你可以通过合理使用服务器控件以及Ajax来减少影响:例如,大部分情况下不必修改内容时可以不用   Label   控件而使用   html;局部刷新而不必整页刷新  
   
  >数据绑定控件,模板化,不灵活,不好控制,  
  数据绑定这可是非常大的优势了,你试试看用   ASP/JSP/PHP   之后再来说。  
   
  >无法与Css+div设计模式相融合;垃圾代码太多   不能够很好的与js相结合    
  这从何谈起?可能是你用的控件不太好吧,呵呵  
   
  >有时候,连一个非常简单的操作都需要和服务器交互,严重地影响了性能。    
  这就是没用好   AutoPostBack   的缘故了,或者该控件设计的时候没兼顾好,换个控件,或者自己写写看  
   
  总的来说,非常赞同你的观点:  
  ASP.net   的优势就在于能够快速开发,并且最大程度的构件化,非常有效的降低开发成本和维护成本。  
  但,你不能指望用它来开发门户级别的应用——可以,只不过尽可能避免使用   ASP.NET   的   ViewState、AutoPostBack、Server   Control   等等,以及开发门户应用顺理成章要注意的其它内容:缓存策略、页面代码优化、减少Session使用等等  
   
  在我看来,ASP.NET   的推出正如   ASP   当年的盛装登场一样,就像战斗机中的   F-16   和   F-22,其里程碑式经典地位是无可置疑的。  
   
  我相信即便是对于一些我们看来很“大”的应用(正如电信、金融等巨型数据处理需求的某些应用外,绝大部分应用   ASP+SQLServer效率很高,完全能够胜任了),ASP.NET的性能完全足矣——我曾经帮几家公司   review   代码以优化性能,发现问题往往出在我们开发人员自身基础知识不扎实,滥用某些特性,甚至编写错误代码。最典型的例子是数据库连接对象的释放——错误的代码、文章,甚至   CSDN   里错误的解答比比皆是——这就是微软开发者阵营普遍存在的事实。  
   
  正如楼主的观点:即便是面向企业应用开发,也要学会尽可能的用好   ASP.NET,不要滥用——这恰恰是微软开发阵营中常见的问题,因为微软提供的东西的确是太方便了。  
   
  那我们就充分发挥它的优势,同时不要被其它阵营的开发者轻易的鄙视——我们不但能充分发挥   ASP.NET   的特点,也能够避免使用这些特点开发出高性能的应用。  
   
  Top

60 楼pazuochuan(再见列宁)回复于 2006-10-30 10:28:02 得分 0

markTop

61 楼mnc898(太平洋4203)回复于 2006-11-01 10:02:16 得分 0

楼主,我也深有同感,感觉"piggybank(吞硬币的小猪)   "说的很对门户级别的应用还是尽量少用!!!Top

62 楼yangye1211(杨杨)回复于 2006-11-01 10:15:37 得分 0

就是因为ASP.NET太容易上手,所以不精通的人也可以开发完整的网站,虽然性能较差较慢。但是人是可以不断进步的,这叫科技以人为本。Top

相关问题

关键词

得分解答快速导航

  • 帖主:qingyun163

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo