ASP.NET 4运行时的主要改进
性能
可扩展性
其它

性能相关的新特性
新的资源监控器选项
Session State的改进
应用程序的自动运行
Response.RedirectPermanent

资源监控
CPU和内存都是有限资源
传统监测都是在进程级的
 无法监测某个应用域
CLR 4引进了“ARM”
 Application domain Resource Management
基于ARM的性能计数器
 Managed Memory Used
 % Managed Processor Time

Session State
跨进程使用的session state
 变得更快
自动压缩
 在很大程度上减少网络流量
 大小减少到1/3到2/3
通过指令控制session state开/关
 仅在真正需要时才用
局部的session state
 仅使用指定key的Session来减少网络流量

应用程序的自动运行
提高网站性能
 使得个别网页运行得更快
 为第一次运行网站应用“隐藏”启动成本
通过ASP.NET和IIS隐藏启动
 IIS7.5能够“自启动”工作进程和应用程序
 ASP.NET 4结合IIS7.5实现自启动
我们可以透过在applicationHost.config中设定以下内容让特定的Pool永远在暖机状态
<applicationPools>
 <add name="MyApplicationPool" startMode="AlwaysRunning" />
</applicationPools>

应用程序的自动运行
IIS team创建了一个warm-up module
 运行在IIS7.5的顶端提供auto-start特性
 支持任何ASP.NET版本
 http://www.iis.net/extensions/ApplicationWarmUp

Response.RedirectPermanent
Response.Redirect生成HTTP 302的状态码,是临时重定向,会引发客户端对web服务器的2次请求
Response.RedirectPermanent生成HTTP 301的状态码,是永久重定向,下次访问时浏览器或搜索引擎直接访问重定向后的地址

可扩展性的改进
Session State
Output Cache
HTML, URL, HTML attribute, HTTP headers可自定义编码
Request Validation

Session State的扩展
仍可通过SessionStateStoreProviderBase实现自定义的Session存储机制
官方将提供新的Session State Provider

Output Cache的扩展
通过OutputCacheProvider派生出一个新的class实现自定义的Output Cache Provider
官方将提供新的Output Cache Provider
 Windows AppFabric Caching(分布式缓存)
 基于磁盘存储的Output Cache Provider
扩展机制支持
 绝对过期时间
 文件依赖
 静态替换和验证等

自定义编码的扩展
通过System.Web.Util.HttpEncoder派生出一个新的class实现自定义编码
并在web.config中设定
<httpRuntime encoderType="Samples.MyCustomEncoder, Samples" />
当调用System.Web.HttpUtility或System.Web.HttpServerUtility的公开方法时自动调用我们自定义的编码逻辑

Request Validation的扩展
通过System.Web.Util.RequestValidator派生出一个新的class实现自定义RequestValidation
并在web.config中设定
<httpRuntime requestValidationType="Samples.MyValidator, Samples" />
然后网站的Request均使用自定义的逻辑进行检查

其它
Web.config的httpRuntime可以设置url长度,字符限制等规则
 maxRequestPathLength
 maxQueryStringLength
 requestPathInvalidChars
通过RouteTable.Routes对URL重写

posted on 2010-03-27 21:16  IT Person  阅读(588)  评论(0编辑  收藏  举报