仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 619|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之Asp.net 2.0 ViewState道理

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于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一同送往客户端。
小魔女 该用户已被删除
5#
发表于 2015-2-8 20:45:08 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
柔情似水 该用户已被删除
6#
发表于 2015-2-26 09:20:31 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-8 13:15:17 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
简单生活 该用户已被删除
8#
发表于 2015-3-16 00:50:55 | 只看该作者
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
谁可相欹 该用户已被删除
9#
发表于 2015-3-22 18:11:50 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-10 05:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表