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

ASP.NET
Internet Explorer 编程简述(二)在IE中编辑OLE嵌入文档
移动窗体
.NET 2.0获取数据库连接统计数据
VB.NET 拖动无边框的窗体
利用WH_CBT Hook将非模态对话框显示为模态对话框
Aspect#应用 - 权限验证
VB 从零开始编外挂(一)
【错误解决】Unable to find script library 'WebUIValidation.js'
VB 从零开始编外挂(四)
DTD指南(3)-DTD-Elements(元素)
知识库文章MDL9745154-File:Microsoft Visual Basic 运行时库
.net手机软件开发(六)OBEX应用:文件传输部分
在winform中使用WebBrowser控件时怎样去除IE的滚动条
WINZIP及WINRAR命令!!!!!
智能客户端相关Application Block结构功能分析(二)
如何在VB中操作EXCEL(一段代码,两个可以使用的过程)
在C#中用最简洁有效的代码执行存储过程并返回数据
.Net的Collection类的一些使用说明
ASP.NET实现数据图表c
用asp.net画饼图

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


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