日期:2014-05-18  浏览次数:20408 次

.net怎样才能做到不拖控件?
常常在网上看到评论:.net程序员大多数就只会拖控件,如果你共组1—2年还是就会拖控件,就完全不合格!

我也想过:想Button 和TextBox这种基本的东西,用服务器控件难道不是很好吗? 但是我看到很多大型的用.NET做的B/S的网站

像起点中文网,他的源码中没有像
C# code


    <form name="aspnetForm" method="post" action="Elearning.aspx" id="aspnetForm">

<script type="text/javascript"> 
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>



 
 类似.net自动生成的东西,使用POST方式提价页面/刷新页面的Javascript;
  他们到底是怎么做的,难道是用的ASP.net MVC? 希望各位大大们指点。。。
PS:怎样才能做到所谓的不拖控件。或者是像这个方向学习


------解决方案--------------------
拖放的确方便

懂得机理的喜欢拖放
一点也不懂的只会拖放

就是那些中间地带的比较可怜,
用拖放吧, 显得没水平,
不用吧, 又干不成活.
------解决方案--------------------
你可以看看这个系列的文章,掌握不拖控件的开发方法(.net高级人才必学):秋色园技术原理解析系列
------解决方案--------------------
拖只是为了快...
就是你知道背后的原理做的时候还是拖....
要不断深入
想不用拖开发 可以试试MVC
全部自己敲 智能提示差 完全可以满足你不拖的愿望

------解决方案--------------------
mvc3 + jquery 在vs2010下用起来挺舒服的

主要是asp.net那些控件有些overhead,当有很多服务器段控件在一个页面就更明显了,这时候你就要做些优化,disable viewstate什么的。
------解决方案--------------------
asp.net问题跟拖不拖控件没有关系。

你见过使用 Blend 来开发RIA的方法吗?看看各种 Blend 教程!

asp.net问题,在于各种非常细节的操作都要回到服务器上去处理,哪怕仅仅将一行数据从浏览状态改为编辑状态也一定要到服务器上去重新生成html。这就与早在3、4年前就非常流行的Ajax完全脱节了。尽管UpdatePanel很方便,但是它不是轻量级的Ajax,完全没有脱离原来的模式。而asp.net ajax toolkit系列控件倒是比较符合轻量级ajax的开发理念,但是开发起来比较复杂,现在asp.net程序员门槛低得连以前asp程序员的水平都不如,怎么可能去学会开发asp.net ajax toolkit控件?

其实不仅仅asp.net,其它基于服务器的web开发模式全都一样面临淘汰。所以你说的并不是拖不拖控件的问题,而是这种web程序架构整体出问题了。
------解决方案--------------------
如果你注意了那些需要更新客户端的东西可以用javascript或者RIA做的,就不要去访问服务器,那么原来的asp.net知识一点也没有影响你啊?!

你用javascript来替代一些界面操作就行了。asp.net 一点也没有阻止你去使用 javascript 编程,没有阻止你去使用 jquery 或者 asp.net ajax toolkit。你完全可以“拖控件”来产生界面,但是不回发(即不注册任何后台事件处理代码)。只不过,此时asp.net就略显臃肿多余了。
------解决方案--------------------
个人认为:不让拖空间只是开发者不想去用服务器端的控件,因为这样的控件都要回发到服务器,一般为了减少服务器压力,所以都用HTML端的空间,因为服务器控件在运行后还是要转成HTML控件。
------解决方案--------------------
不用控件,通过AJAX等实现数据的维护
也可使用asp.net mvc
直接用模板替换或者通过Response.Write的方式
就不会有ViewState代码
------解决方案--------------------
全部使用html
ajax获取数据
最终还是HTML css js
控件能提高开发速度、降低开发复杂性
------解决方案--------------------
请使用MVC。其实这个主要还是看应用领域,如果是内部使用的系统,拖拖控件又如何?只要能提高生产力。
------解决方案--------------------
全部使用html
ajax获取数据
最终还是HTML css js
控件能提高开发速度、降低开发复杂性 14楼的说的相当正确的 因为大型网站要考虑更高的性能!
------解决方案--------------------
要知道侧重点

所谓的拖控件(服务器控件),侧重点是在于办公系统,比如OA、CRM、MIS等。要实现的是数据的维护,即添加、修改数据。

而网站的侧重点是显示数据。一半以上的功能是如何把数据显示出来。

显示数据用for循环就可以,这个是最好的办法。没有必要用Repeater这类的控件了。

网站里也有添加数据,这个比重比较少,不是每个页都有的,可以用iframe、ajax、form表单(非runat=“server”的) 等方式实现。这样在页面里就看不到你说的代码了。


分析问题要分成几个部分,几个方面,不要混在一起。