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

ASP.NET
ASP.NET开发:简化应用程序的开发支持Web标准
asp.net XMLHttpRequest实现用户注册前的验证
asp.net 页面间传值方法小结
asp.net url重写浅谈
asp.net 验证码生成和刷新及验证
C#精髓 GridView72大绝技 学习gridview的朋友必看
实例说明asp.net中的简单角色权限控制
asp.net网站开发包wq.dll打包下载
js与ASP.NET 中文乱码问题
asp.net checkbox 动态绑定id GridView删除提示
asp.net TextBox回车触发事件 图片在img显示
asp.net 脏字典过滤问题 用正则表达式来过滤脏数据
asp.NET 脏字过滤算法
asp.NET 脏字过滤算法 修改版
asp.net sql 数据库处理函数命令
asp.net Javascript 的几种写法与提示
ASP.NET MVC学习笔记
asp.net 中国身份证号码验证代码 非正则
Asp.net中使用Sqlite数据库的方法
asp.net 中文字符串提交乱码的解决方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 76 ::
收藏到网摘: 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。