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

ASP.NET
利用Timer在ASP.NET中实现计划任务的方法
asp.net下出现其中的组件“访问被拒绝”的解决方法
学习使用ASP.NET 2.0的本地化
asp.net 1.1/ 2.0 中快速实现单点登陆
ASP.NET用户控件技术
asp.net 2.0 中的URL重写以及urlMappings问题
asp.net 的错误处理机制讲解
asp.net下cookies的丢失和中文乱码
用WebClient.UploadData方法上载文件数据的方法
用程序修改IIS目录的Asp.Net版本
ASP.NET中常用的优化性能的方法
asp.net下URL处理两个小工具方法
asp.net下DataSet.WriteXml(String)与(Stream)的区别
asp.net下用DataSet生成XML的问题
从别人那拷下来的几点Session使用的经验
ASP.net在页面所有内容生成后、输出内容前对页面内容进行操作
asp.net(c#)Enterprise Library 3.0 下载
近几天对DataSet的新认识
.net下实现Word动态填加数据打印
ASP.NET 链接 Access 数据库路径问题最终解决方案

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


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