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

ASP.NET
asp.net(C#) 生成随机验证码的代码
C# 生成高质量缩略图程序—终极算法
iis的http 500内部服务器错误的解决
效控制C#中label输出文字的长度,自动换行
asp.net下生成99个不同的随机数
Asp.Net文本换行
Asp.Net中文本换行
asp.net 上传大文件解决方案
asp.net程序编译调试时偶尔出现访问被拒绝的错误的解决方法
控件开发时两种JS嵌入资源方式的使用方法
AspNetPager分页控件源代码(Version 4.2)
asp. net下使用foreach简化文本文件的访问。
asp.net下经典数据库记录分页代码
微软发布的Data Access Application Block的使用代码
如何在网站级别动态更改主题
asp.net下模态对话框关闭之后继续执行服务器端代码的问题
asp.net下利用JS实现对后台CS代码的调用方法
批量删除记录时如何实现全选方法总结
asp.net下OnClientClick的妙用!
[c#]asp.ent下开发中Tag的开发技巧

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


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