ASP.NET 4.0新特性预览 数据处理增强
创始人
2024-05-01 02:00:57
0

【51CTO独家特稿】有人问“为什么微软每18个月变动一次开发平台”

其实不是改动,而是一些改进。 相比.NET 2.0有了很多额外的API,比如LINQ, Entity Framework等,这是进行数据处理的不同方式。核心ADO.NET仍然有效,这些ASP.NET 4.0新特性提供额外的增强可让开发人员和架构师选择面更广。

有人问到URL Rewriting

URL Routing比URL Rewriting好用得多了。我们过去已经对此讨论过很多。你可以在下面这个链接了解更多信息 http://www.mostlylucid.net/archive/2009/01/25/asp.net-4.0-webform-routing-quick-rsquon-dirty-version.aspx  

Visual Studio 2010 Beta 1和.NET Framework Beta 1已经发布有一段时间了,我也早就该写这篇文章了。ASP.NET 4.0改进了许多不同的场景集(set of scenarios),如Webforms ,Dynamic Data以及基于AJAX的Web开发。此外还有许多对支撑ASP.NET的核心运行时环境的改进,比如Caching, Session,还有Request/Response对象。

在这篇文章里,我们将一起检验一下对web form的一些改进。这样的改进很多,我们还将在随后的文章里体验更多这种改进。

使用ViewStateMode属性控制View State - 性能的增强

在ASP.NET Webform里最为人所诟病的毛病之一就是不断增多的viewstate影响到性能。尽管之前就可以把EnableViewState属性设为true或false ,之后,所以有的controls都默认继承,并且即使你在control层把它设为启用,也还是会产生不一致的行为。

在ASP.NET 4.0新特性中,ViewStateMode属性有助于确定每个control的Viewstate是否应启用,禁用或被继承。例如:

  1.  ID="pnlViewState" runat="server" ViewStateMode="Disabled">   
  2.       Disabled:  ID="label1" runat="server"  Text="Value set in markup"ViewStateMode="Inherit"  /> />   
  3.            Enabled:  ID="label2"  runat="server" Text="Value set in markup"ViewStateMode="Enabled" />   
  4.    />   
  5.    ID="Button1" runat="server"  Text="Postback" />   
  6.      

后端代码

  1. protected void Page_Load(object sender, EventArgs e)   
  2.     {   
  3.         if (!IsPostBack)   
  4.         {   
  5.             label1.Text = "Value set in code behind";   
  6.             label2.Text = "Value set in code behind";   
  7.         }   
  8.     } 

运行这个页面,你会发现两个标签的初值都被设为了"Value set in code behind",而点击按钮(postback)后,label1的值变成了“Value set in markup” ,label2的值则保持不变。正如你所看到的那样,保存这两个标签的面板把ViewStateMode设置为禁用,label1继承了这一设置(如果没有指定的话这是默认值),label2则设为了启用。这就是为什么label2保持了viewstate而label1丢失了。

虽然可以说之前就可以使用简便的EnableViewState属性,但一直就不稳定。想想我们在大多数性能讨论会(performance session)上,都会说如果viewstate不能正常运作就先禁用它然后再在control层设为启动,这个ViewStateMode的引入可以说是有助提升性能的一个很好的结构性变动(architectural change)。

网页的Meta Keyword和Description - 搜索引擎优化功能

在Visual Studio 2008中,可以通过直接声明或在程序中使用Page.Title设置网页的标题。随着越来越多的流量通过搜索引擎,网页的标题,关键字和描述变得更为重要了。虽然由于关键字被人滥用导致许多搜索引擎已经对此忽略不计,但是,页面的描述还是Google,Bing这些主流搜索引擎赖以鉴别和索引网页内容的依据。

ASP.NET 4.0新特性允许用户像下面这样通过编程的方式设置页面描述和关键词: -

  1. protected void Page_Load(object sender, EventArgs e)   
  2.     {   
  3.         this.Page.Title = "My ASP.NET Blog";   
  4.         this.Page.MetaKeywords = "ASP.NET, Web Development, Blog, ASP.NET Blog";   
  5.         this.Page.MetaDescription = "This Blog contains posts related to ASP.NET and Web Development";   
  6.     } 

以上代码会产生如下标记:

  1.  name="keywords" content="ASP.NET, Web Development, Blog, ASP.NET Blog" /> 
  2.  name="description" content="This Blog contains posts related to ASP.NET and Web Development" /> 

它的运作机制是,如果meta标签已经出现在HTML标签里,那么只要name属性相同,程序中设定的内容就都会被填写到content里。

虽然这看起来很简单,但是在要根据某些条件或标准来动态设置它们的情况下,这就很有用了。目前,这些内容都是在HTML代码里静态地设定的。现在,有了Page类这一级的访问,它们就可以动态地设置了。

对Webforms还有许多其它的改进,比如Routing的增强,ClientID的设置等。

让我们欢呼吧!

【编辑推荐】

  1. ASP.NET缓存数据添加方法一览
  2. ASP.NET缓存机制基础概念
  3. 再谈ASP.NET缓存机制:开发效率与优化的平衡
  4. .NET分布式缓存之Memcached执行速度检测
  5. 如何避免ASP.NET缓存占用系统资源

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...