当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 浅谈DOTNET大规模团队开发控制与asp.net中webform的viewstate

ASP.NET
asp.net SqlParameter关于Like的传参数无效问题
数据库 数据类型float到C#类型decimal, float数据类型转化无效
google suggest 下拉菜单实现代码(asp.net版本)
asp.net(C#) 动态添加非ASP的标准html控件(如添加Script标签)
asp.net GridView导出到Excel代码
asp.net 开发的一些常用技巧
php 三级联动菜单
ASp.net 文本框(TextBox)计算,判断输入的是否是数字
asp.net 存储过程调用
asp.net 操作XML 按指定格式写入XML数据 WriteXml
asp.net连接数据库 增加,修改,删除,查询代码
VB.net 查询获取数据库数据信息
asp.net 删除,更新数据库方法
.net获取硬件信息_CPU序列号
ASP.NET 页面中动态增加的控件、添加事件
彻底解决ASP.NET MD5加密中文结果和ASP不一致的问题
asp.net结合aspnetpager使用SQL2005的存储过程分页
asp.net 用户控件读取以及赋值
asp.net 弹出警告窗口实现代码
asp.net 枚举文件里面的数字绑定到DropDownList里面去

ASP.NET 中的 浅谈DOTNET大规模团队开发控制与asp.net中webform的viewstate


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 196 ::
收藏到网摘: n/a


  最近在给公司做一套报表查询系统!用的是ASP.NET。以前也在用,只是没有这次这样认真的去用它!大家知道ASP.NET做程序开发两种方式:asp的面条方式,将所有的逻辑控制与代码写在一块,写成一堆;运用MVC方式进行代码/页面绑定。以前我一直是两种方式混合使用,因为我在寻找DOTNET团队开发的最佳模式,在我的意识中DOTNET在大规模团队开发中比较难控制。与JAVA比较它似乎不是很好的做到了MVC模式。相信有用过STRUCTS的朋友会与我有同样的感觉。

  ASP.NET给了我们一个全新的途径,它可以实现APPLICATION中的事件,仿佛你所面对的每个页面元素都可以象C/S的APPLICATION中的BUTTON、LISTBOX一样通过它的CAPTION/TEXT、ITEMINDEX去获取你想要的值。但是做一个CODING与美工分工协作时就比较难办了。因为如果你要在后台用事件触发去完成一个任务时就需要用到ASP.NET中的RUNATSERVER,这时我们就不得不提到ASP.NET中的一个独有属性:EnableViewState。微软对它的解释是“为所有页请求维护视图状态”,我认为这儿的中文化处理有一个错误,是中文语法的错误,正确的解释是“为当前页所有请求维护上一请求视图状态”。请大家不要认为我在这儿卖弄!这是我要开始谈的切入点。

程序发开过程中如果EnableViewState=true,那么朋友你的问题就来了!首先System.Web.UI.HtmlControls中的所有成员并不是很好可以进行代码绑定到.cs或.vb中去!即使你加入了,当你把完成的工作移交美工做后期视觉处理时,要特别郑重的对美工声明“不要轻易去做cut to paste!”如果对方不慎做了这个动作,不幸的事情就轮到你头上了!请仔细再检查您的代码吧,有可能有元素声明丢失或声明改变了。更大的灾难还在后面。例如你在系统中使用了HtmlTable并且RunatServer了,你的要求是要HtmlTable中数据量随条件变化而会有增减时,你会发现如果新数据集合大于旧数据集合时新数据集合不能以正确的格式显示在webform中,新数据与旧数据不完全重合时会被旧数据覆盖。对这种问题我的解决办法是什么呢?就是EnableViewState=false,抛弃Object.Property这种写法,而在程序中用Request[””],虽然也可以解决,但是比我的感觉是一种很怪异的。毕竟这种写法违背了系统的优美性与一致性,导致代码部分程度上的难读。  上面这段话写的有点混乱,我想我的意思还是基本表达清楚了!希望大家来共同讨论一下ASP.NET大规模、大团队开发时应该如何去控制团队分工,如果去进行版本控制(请不要简单的跟我讲用vss或CVS!)另也希望可以深入的讨论一下如何更高效的去利用EnableViewState。