首先申明我的立场:我不是一味的是用服务器控件,当我看教程看到了如何在这两种控件中抉择(Server Controls/HTML Controls),还多人还争论这个问题。根据自己的习惯使用,由于服务器控件也称为智能控件(根据客户的浏览器发送兼容该浏览器的控件HTML),而使用HTML控件程序员可以显示的为浏览器提供代码。服务器控件功能更强大。至于可以在HTML控件加上runat="server"标签,那么我觉得还不如直使用服务器控件,到目前为止我的理解还只有这两种。至于性能的问题:我想这是微软考虑的问题(我个人也测试过服务器控件转换为相应的HTML控件源代码也不慢啊!),可能是这两种控件虽然部分功能重叠,但是用途上还是有区别的(就具体应用而言)。没有绝对,否则MS搞这两套干吗!

解决方案 »

  1.   

    用不用服务器控件 
    还不如考虑 用不用asp.net 
      

  2.   

    少用、滥用、合理使用都是你成为一个优秀的ASP。NET程序员需要考虑的问题
    HTML加上runat="server"后,其实质上也是服务器控件了。所以我也认为还不如直接用服务器控件。
    至于性能问题,你还真得考虑,小微的东西版本越高占用资源越厉害、功能越强的控件占用资源越厉害。
    所以个人认为是合理使用
      

  3.   

    我就是绝大数用服务器控件,开发效率高。如果客户端要求体验好点,加上ajax.
      

  4.   

    不用服务器控件,那你用什么.
    我觉得这句话,应该这样说尽量少用复杂的服务器控件.
    比如,同样的一个功能,用gridview能实现,用repeater也能实现,那么就应该用repeater.
    类似的,Label和Literal,gridview和datalist等等...
      

  5.   

    通过技术来改变速度的问题。服务器控件还是必须用的。要不还用.net有啥用
      

  6.   

    不用服务器控件提高开发效率,那还用什么.NET高级的控件应该合理的、尽量少的用,集成的功能太多,往往超出你的需求,浪费很多资源
      

  7.   

    只能说是合理利用了,因为从资源和速度来说,HTML标签肯定是要比服务器控件快的,但是有些功能HTML标签无法实现,只能将HTML标签转换成服务器控件或者直接用服务器控件。再就是看你的要求了,要运行速度快,消耗资源少的话尽量不用服务器控件;
    要是开发周期紧张,在运行速度和资源方面有没有什么限制的话,多用点服务器控件也没问题。服务器控件的使用只能根据实际需求来定了,当然,个人习惯也有很大的影响的,呵呵!
      

  8.   

    合理使用,不能单纯比较,
    如果用label的服务器控件和html,那么速度都是差不多的。
    如果用GridView和Table比,那么速度就有些差别。
    如果用Repeater和Table比,那么速度又会差不多。该用的还得用,不会有人为了点点性能省得只用html的textbox,而不用服务器的textbox吧
      

  9.   

    gridview和datalist 这两个楼主也用吗?个人感觉,特别要求性能的时候,的确是少用好。不像楼主说的差一点。而是差好多。
      

  10.   

    服务器控件viewstate占带宽,一般用html,不用.net控件,用的是.net的类库
      

  11.   

    能用HTML控件的就尽量用HTML控件
      

  12.   

    你有个概念性错误。HtmlControl也是服务器控件。运行时动态产生界面的服务器控件分为:Web控件、Html控件、动态装载控件(所有aspx和所有ascx的原型),三类。可能还要加上Extender控件这一类。还有大量的非界面控件,例如DataSource控件、UpdatePanel、Template控件、ScriptManager、缓存(aspx或者ascx由于设置OutputCache而在缓存时产生的控件),等等。所有的Html控件都是服务器控件。如果你在xhtml的设计窗口胡乱写一段html代码,asp.net就把它写入一个 LiteralControl 类型的服务器控件的 Text 属性中。所以即使再简单的html标签,虽然它本身不会被解析为什么很具体的服务器控件,但是仍然需要创建专门的服务器控件来处理它在整个页面生命周期中的个步骤行为。我在帖子     http://topic.csdn.net/u/20090224/16/184aa0f6-a419-4d1e-8b41-7e0b8dd4f4c3.html中也举了一个例子。
      

  13.   

    至于说选择什么,你问问自己有没有在选择微软的.net还是Borland C++上犹豫过呢?为什么你选择c#,而不选择仅仅使用汇编语言变成呢?简单意义上,使用最低级机器语言(只有0、1符号最“简单”)效率“最高”。其实大家都在开发时选择比较高效的语言,这不是一个简单的选择问题。