当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET4.0新改进和新特性

ASP.NET
Visual Studio.Net 内幕(7)
.Net 2.0 原汁原味读取注册表
ASP.NET 2.0中预设的cookie
ASP.NET:一段比较经典的多线程学习代码
ASP.NET2.0服务器控件之自定义状态管理
Asp.net给站点某目录增加Aspnet用户
ASP.NET技巧:请求网址并解析返回的html
在Asp.net用C#建立动态Excel
ASP.NET2.0:页面中链入的CSS、js文件带中文时需注意
ASP.NET技巧:数据岛出到Excel最为简易的方法
第一次用.net2.0 LOGIN登陆控件的困惑和解决方法
在ASP.net中保存/取出图片入/从SQL数据库
ASP.NET技巧:做个DataList可分页的数据源
在.NET中利用委托实现窗体间通信
在.NET2.0中使用自定义事务操作
解决 ASP.NET中目录访问权限的问题
ASP.Net防止刷新自动触发事件的解决方案
白刃之战:PHP vs. ASP.NET(节选)-架构比较
C#中使用SendMessage
提取HTML代码中文字的C#函数

ASP.NET4.0新改进和新特性


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 422 ::
收藏到网摘: n/a

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是否应启用,禁用或被继承。例如:

<asp:Panel ID="pnlViewState" runat="server" ViewStateMode="Disabled">
      Disabled: <asp:Label ID="label1" runat="server"  Text="Value set in markup"ViewStateMode="Inherit"  /><br />
           Enabled: <asp:Label ID="label2"  runat="server" Text="Value set in markup"ViewStateMode="Enabled" />
  <hr />
  <asp:button ID="Button1" runat="server"  Text="Postback" />
    </asp:Panel>

后端代码

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            label1.Text = "Value set in code behind";
            label2.Text = "Value set in code behind";
        }
    }

运行这个页面,你会发现两个标签的初值都被设为了"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允许用户像下面这样通过编程的方式设置页面描述和关键词: -

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

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

<meta name="keywords" content="ASP.NET, Web Development, Blog, ASP.NET Blog" />

<meta name="description" content="This Blog contains posts related to ASP.NET and Web Development" />

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

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

对Webforms还有许多其它的改进,比如Routing的增强,ClientID的设置等,我们将在后面的文章里一一详解。

让我们欢呼吧!