江湖传言,大企业开发ASP.NET网站都是不用ASP.NET控件而直接用基本的HTML来开发,听说这样开发,是为了网页速度,比如凡客网站,在它的源代码中都看不到ASP.NET的隐藏控件。
问题:不用ASP.NET控件,怎么用HTML组织数据呢?(如不用 Formvie Gridview TextBox...)

解决方案 »

  1.   

    form提交吧。 用Request.From来获得值  具体我也不清楚
      

  2.   

    就是asp.net的后台他是个CMS管理系统。通过标签替换内容不会出现.net里面那些隐藏域的
      

  3.   

    想想ASP是怎么写   
      

  4.   

    我看过当当网是用ASP.NET开发的,但是我在它的源代码中基本上看不到有ASP.NET控件的存在
      

  5.   


    确实是这样的。在公司开发时。一般都要求尽可能去用HTML控件,能不使用服务器端控件就不使用
      

  6.   

    你可以看看YXSHOP开源。电子商务项目里面。。完全。。是基于模板。
      

  7.   

    我个人觉得  还是用控件比不用WEB控件的优势大一点吧
        要不微软出WEB控件干什么呀
      

  8.   

    现在的MVC就是这样的一个过程。
      

  9.   

    控件编译后是就是HTML,你怎么可能会看到控件..无知
      

  10.   

    综合考虑。。开发效率各方面都要考虑的吧。。人家做出IDE出来,控件出来肯定是基于以前最原始的编程方法上演变出来的。你大项目还有微软项目大?我们的项目也好多是Ajax自己形成列表但我感觉可能这是个误区。
      

  11.   

    不用控件都可以实现的
    例如Gridview就可以用后台打印DIV来实现
    代码
     #region 打印
            string color = "#D8F5F4";
            string TableHeader = "<div class='gridBody'>";
            for (int i = 0; i < list.Count; i++)
            {
                if (color == "#D8F5F4")
                    color = "#EFFBFA";
                else
                    color = "#D8F5F4";
                TableHeader += "<div  onclick=\"document_onclick(document.getElementById('row" + i + "'),'" + color + "' )\" class='div_span' style=\"background-color: " + color + ";\"  id='row" + i.ToString() + "'><IMG src=\"" + img + "\"  style=\"float:left;margin:5px;0px;0px;0px;\" align=\"baseline\">";            TableHeader += "<span style=\"float:left;line-height:25px; OVERFLOW: hidden; WIDTH: 290px; HEIGHT: 20px; TEXT-OVERFLOW: ellipsis;\">" + hot(list[i].ID)+ "<a href='" + boardid + "-" + list[i].ID + ".html' target=\"popmain\">" + list[i].BT + "</a></span>";            TableHeader += "<span style=\"float:right;line-height:25px;\">(" + list[i].DIAN + "/" + list[i].HUI + ")</span>";            TableHeader += string.Format("<span style=\"float:right;line-height:25px;\"><a href=\"grxxy.aspx?id=yhxx&amp;name={0}\" target=\"_blank\">{1}</a></span>",list[i].ZZ,TableBAL.GET_Userid(list[i].ZZ));            TableHeader += "</div>";
            }
            TableHeader += "</div>";
            return  TableHeader;
      

  12.   

    如果你对大企业的java开发了解,你会知道为什么不用——因为那个领域根本不流行控件的理念。可是那个领域流行什么呢?你学到了吗?不是只捡各个领域里边剩饭然后拼凑成“大企业开发”方法吧。
      

  13.   

    反正我看见用友的ERP asp.net的部分用服务器控件作的。
      

  14.   

    后台用无所为.我开发.net程序也不爱用控件.而是以asp的方式做数据输出.感觉那样也好控制一点.
    取值设置html标签的name属性.后台用reauest.form[name]或request[name]都可以.输出数据用数据模型.
    class modle
    {
     private string field1;
    public string Field1
    {
    get{}set{}
    }
    }在page_load中得到模型
    aspx页面中则可以<%=model.fiel1%>了.我爱这样.
      

  15.   

    ASP.NET MVC  典型这样的
    所以说 asp.net 有乐MVC 更适合做大项目了
      

  16.   

    我现在也不用ASP.NET控件,都ajax时代了,对ASP.NET控件没兴趣了。当然控件调试时可以用用
      

  17.   

    的确是这样. 自己实现类似表格的数据也比较简单了. 再加上美工配合处理一下,就OK了!比如:
    <ul>
    <%foreach(Entity et in list){%>
    <li><%=et.Name%></li>
    <%}%>
    </ul>
      

  18.   

    要区分对待
    比如说访问量高,流量大的就尽量少用web控件,可以利用ajax实现
    如果只是一个提交功能,流量小,可以看情况使用
      

  19.   

    相反,大企业都用控件,还会加以封装,或者自己开发,
    大企业更加专注的是业务逻辑,相对于复杂的业务逻辑形成的数据库查询,用控件的性能消耗根本就可以忽略,
    利用更多的时间专注业务逻辑在程序中的优化,查询的优化,现在的服务器用的CPU..1毫秒可以执行几百万条指令,多几百万条指令少几百万条指令区别不大,
    数据库查询不一样,错误的逻辑,错误的结果,导致10多个表的查询,慢的不是一两秒
      

  20.   

    采用xml技术就可以不用服务端控件,我的认为
      

  21.   

    用AJAX,或者提交FROM方式 来获得 页面输出的内容
    内容中可以将 html 嵌入组合成一个字符串打印到指定的 位置
    或者在前台用 <%%>嵌入一些程序 自己指定循环的标签和个数唯一的一个疑惑  这样子和ASP 有什么区别
      

  22.   

    这样子和ASP没有区别,ASP.NET里的ASP,其实就是ASP
    我想问一下,控件是怎么样影响到效率的呢?是冗余代码还是什么?如果说控件影响效率,持这个观点的人能不能给大家讲解一下.我觉得只要用的合适,和控件本身应该是没什么关系的,我是中立的.
      

  23.   

    什么叫做精益求精?当然是基于asp.net这个层次的.
      

  24.   


    你自己用asp.net写一个网页 拖上去几个服务器控件 预览一下 然后查看网页源代码 看看有没有服务器控件
      

  25.   

    虽然控件编译过后,变成了HTML控件,但是页面的源代码会包含了隐藏起来的控件,也就是所谓的乱码,还有编译过后标签的id和name都是一样的,id都是由由规律的字符组成的,这样你就可以区分哪些是html标签,哪些是web控件
      

  26.   

    你好,我还没MVC,看到大家的帖子,感觉学了不少理论的东西,MVC.......
      

  27.   

    编译完成后发过来的都是HTML的。比如GRIDEVIEW编译完发过来就是一个TABLE。HTML和ASP.NET控件在本质上没有什么区别。HTML控件照样能够设置成在服务器端控制的。都是发送生成的。你以为服务器端控件是一个个放在服务器端,HTML控件是一个个放在你本机里的吗??大企业一般都是继承控件然后重新开发一些功能倒是很多的……网页程序对于速度的优化基本上有95%是在数据库上的优化。
      

  28.   

    其实啊,在企业开发中,微软提供的那些控件远远不能满足我们在开发时的需求,一般我们都是走用户控件,或者是直接用HTML代码来实现功能,而且使用控件运行速度还很慢,还会产生大量的垃圾代码,使用控件产生标签的ID名都是随机生成的,给我们的页面美化也带来了很大的肯难,所有,我们一般都尽量的少使用控件,这样我们既好美化,同时也增加了我们网页的运行速度,在很多地方,我们都是采用AJAx结合HtmL来实现功能的!,所有对于企业来说很少使用控件,控件对于初学者是很好的选择!
      

  29.   

    这位仁兄的想法和我的想法一样,所以,我想知道大企业开发的web页面为什么没有垃圾代码,难道他们都用纯HTML标签?
      

  30.   

    他们也不一定都是用HTML来实现的,采用AJAX和HTML结合使用,对于一些不需要美化的也是可以使用控件来实现的,至于使HTML来实现数据展示,是通过动态生成层和里面的内容来实现数据的展示的,如果你想学习,我建议你去看JAVa的内容,里面都有介绍的,而其是开源的!
      

  31.   

    Very Very Thank you!具体要看JAVA的什么呢?
      

  32.   

    这位大哥,你所说的回归原始,是什么意思呢?难道是开发都用HTML标签?万分感谢...
      

  33.   

    AJAX也不提倡 到时候问题更大 比如兼容性 以及SEO 平白无故要加进一个老大的JS框架 所以我自己认为AJAX只能是画龙点睛 一笔还可··
    用.NET控件也没什么不好 尽量用简单的
    另外控件并不和美观扯边··
    至于模版生成 我个人觉得就应该不如.NET控件了吧 
    .NET控件本身就是MS开发的最好的模版,难道自己开发一套模版引擎会比他高效?
    旺旺使用模版的反而是不得以而为之 或者是效率要求不大反而对页面修改很频繁的,还有一些通用的面向大众的软件用的比较多肤浅的这么认为 不知道对不对
      

  34.   

    不是所有服务器控件都呈现html的,再者,很多公司根据业务需要会重写一些服务器控件,微软也重写了很多服务器控件发布了,比如treeview控件呈现出来的html是table,重写后呈现为ul;网页静态化很流行,使用模板是最常见的方法,模板通常是没有内容的html文件,但里面有特殊标记,后台将特殊标记替换为需要发布的内容,改名后存储在磁盘上.
      

  35.   

    可以把 RUNAT=SERVER的表单去掉 就彻底不产生隐藏域了!
      

  36.   

    此话怎讲?没有runat=server的都是html标签了
      

  37.   

    是啊回到 asp了  这当然是为了较少服务器负担了 不过可以生成html静态的啊 http://www.zainanbao.com
      

  38.   

    这位好汉,请问您的“灾难报”是用什么做的呢?ASP吗?
      

  39.   

    觉的有些.net控件还是比较好的,超爱repeater,性能不错,自由度也高
      

  40.   

    确实,你如果只在网页上查看源码,全都是html。
      

  41.   

    确实全是HTML,但是你如果认真点看,就会发现有一大串的隐藏控件
      

  42.   

    .Net并不是只有服务器控件,服务器控件只是.Net的皮毛而已。
      

  43.   

    这一大串的字符串是记录了页面的状态 以向服务器汇报,但是很多情况是用不上的 包括 runatserver的表单 既然用不上不如把它去掉不就可以了另外如果认为微软的控件效率低 那我个人觉得不是很对
    拿一个例子来说 如果用模版的方式写出与REPEATER功能相同的效果恐怕自己写的效率更低
    但是可能因为微软在开发产品的时候注重功能 控件中好多的功能对自己又是没有用的 所以可以借助微软的类去定制自己的控件 不是更好 何必自己再从引擎写起!其实比较大的企业开发还是都用服务器控件的!因为效率的优化和这些东西关系很微小,主要是数据层的优化!我想微软不会越做越扯淡吧!放心用就是了所以也没有必要太争论这个问题 根据项目的情况定比较合适!
      

  44.   

    引用 66 楼 cheng_feng001 的回复: 
    被控件绑架的程序员才会有这样的疑问。挣脱枷锁,回归原始,也是另一番景象 顶了,lz说的是现在流行的开发模式discuz论坛就全是这样的,他有好几个版本,其中的asp.net的就是全是ajax异步调用,前台看不见一个控件,全部调用静态页面的标签,这样做首先是性能提高好多,主要是对搜索引擎,网站被搜索的概率++,再配合三层开发,这样的结合,如果是新手,你根本不知道他怎么调用的,即使你拿到了源码,修改一下都很困难,控件说白了就是给新手准备的,开始嘛,熟悉一下,想要提升,就来点有难度的,呵呵,,但是几个绑定空间还是不错的。 以上纯属我个人理解。
      

  45.   

    问一下,这里有多少人用MVC做开发呢???
      

  46.   

    楼主你在操哪门子心啊,不同的开发方式而已。数据循环,直接用个Repeater 也很方便嘛,为什么不用?如果你想从后台输出,直接拼字符串也可以啊...每个公司都有自己的习惯。性能...晕。
      

  47.   

    讨论这个鸟用没有。硬件发展快的很。。专注业务逻辑就行了。你们又不是给银行系统写核心的。
    同时几十万的网点访问全国中心。。
    据说银行数据库方面就不用sql语句了,好像是c语言做查询的。。我也是听说的。搞不懂,用c语言怎么做查询。
      

  48.   

    我也少用,主要是这样的东西,一个人是做不完的,要团队开发,例子嘛,你去把discuz论坛的asp.net2.0的版本下下来看,你把它看会了,这个技术你就会了,我当初也是这么看会的,还有啊,这个要看会,你的要先知道ajax的运行原理,要不,你看好几年也白搭。