若天明 发表于 2015-1-16 22:30:25

ASP.NET网站制作之Asp.net 2.0 ViewState道理

对于new隐藏成员的作用,往往是出于使用了一个第三方类库,而你又无法获得这个类库的源代码,当你继承这个类库的某个类时,你需要重新实现其中的一个方法,而又需要与父类中的函数使用同样的函数,这是就需要在自定义的子类中把那个同名函数(或成员)加上new标记,从而隐藏父类中同名的成员。ViewState信任人人城市利用,可ViewState究竟是甚么,又有几人晓得呢?
StateBag类这个就不必多说啦吧
在Asp.net2.0里,用到StateBag有三处
1Control._viewState这个就是人人利用的ViewState
2WebControl.attrState这个是寄存Attribute的
3Style.statebag是寄存款式的
.......
Page性命周期内SaveAllState时
必要师长教师成个Piar类,在挪用this.SavePageStateToPersistenceMedium(pair1);时,将其序列化
注重:Asp.net2.0只完成了HiddenFieldPageStatePersister,用户能够从重写,大概利用ControlAdapter供应别的情势的进理机制
HiddenFieldPageStatePersister.Save时会过pair1举行序列化
序列化时,.net供应了三种体例
1利用密钥
2.利用Mac
3不利用
//先序列化
this.Serialize(outputStream,stateGraph);
outputStream.SetLength(outputStream.Position);
byte[]buf=outputStream.GetBuffer();
intlength=(int)outputStream.Length;

//判别以后Page.RequiresViewStateEncryptionInternal属性前往值是否是必要加密
//假如未挪用Page.RegisterRequiresViewStateEncryption,则默许为false
//假如界面设置了RegisterRequiresViewStateEncryption和EnableViewStateMac,加密优先于Mac

if((this._page!=null)&&this._page.RequiresViewStateEncryptionInternal)//加密
{
buf=MachineKeySection.EncryptOrDecryptData(true,buf,this.GetMacKeyModifier(),0,length);
length=buf.Length;
}
elseif(((this._page!=null)&&this._page.EnableViewStateMac)||(this._macKeyBytes!=null))//设置可使用Mac
{
buf=MachineKeySection.GetEncodedData(buf,this.GetMacKeyModifier(),0,reflength);
}
text=Convert.ToBase64String(buf,0,length);//nullofeither
谈到这,良多人要问pair1里放的是甚么,我画了一幅图,具体申明了一下



另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。

深爱那片海 发表于 2015-1-19 15:45:27

业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

冷月葬花魂 发表于 2015-1-25 17:16:45

ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。

兰色精灵 发表于 2015-2-3 12:01:19

ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。

小魔女 发表于 2015-2-8 20:45:08

但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。

柔情似水 发表于 2015-2-26 09:20:31

比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。

精灵巫婆 发表于 2015-3-8 13:15:17

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。

简单生活 发表于 2015-3-16 00:50:55

在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?

谁可相欹 发表于 2015-3-22 18:11:50

使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
页: [1]
查看完整版本: ASP.NET网站制作之Asp.net 2.0 ViewState道理