日期:2014-05-20  浏览次数:20385 次

一个关于面向对象的问题,使用ViewState.
问题描述:
      一般的业务系统,包括增加,删除,修改,查询等;以前作程序时(asp.net),在每个按钮的开始事件里面都创建一下对象,然后再调用对象的事件;如:
      添加按钮:创建对象A,调用A.Add();
      删除按钮:创建对象A,调用A.Delete();
      修改按钮:创建对象A,调用A.Edit();
      查询按钮:创建对象A,调用A.Query();
我看了有人编写的时候,就在第一次使用A(A被序列化了)的时候,创建A对象,然后把A保存在ViewState[ "A "]内;这样只要不退出此页面,那么就一直用这个对象,不用每次创建,我看这样挺好,也想用这个;但是会不会对程序的效率产生问题呢,我们的系统压力挺大的。
  希望大家发表意见。

------解决方案--------------------
每次都从数据库里读会消耗服务器和数据库资源

放到viewstate中,会在网络中进行传输,会消耗网络资源
------解决方案--------------------
对象序列化有性能开销的
序列化后的字符串是非常长的当然找下规律可以精简下
B--S 来往数据增多
好在 不受 Session 时间限制
衡量下 如果对象属性少 还是可以的
不过把小对象写成结构更好点
------解决方案--------------------
我认为,如果对象不是很大的话这倒是一个很好的办法,对系统和服务器都不会有太大的影响的
------解决方案--------------------
÷但是会不会对程序的效率产生问题呢,我们的系统压力挺大的。
》》火上浇油啊
------解决方案--------------------
1.网络传输压力增大. 2.反列化也会消耗大量服务器资源.
------解决方案--------------------
反正不怎么好的,我们leader不希望我们用那个东西传值