您的位置:知识库 » .NET技术

ASP.NET 4.0 中新增的23项功能

作者: 麒麟  来源: 博客园  发布时间: 2010-01-07 09:56  阅读: 2644 次  推荐: 0   原文链接   [收藏]  
[1] ASP.NET 4.0 中新增的23项功能
[2] ASP.NET 4.0 中新增的23项功能

 

  12、URL Routing:

  现在,我们看到网站的URL是更具体的SEO。不显示任何描述性信息,例如,不是显示网址http://mywebsite.com/userprofiles.aspx?userid=1开发者更愿意显示: http://mywebsite.com/mydetails。在asp.net 2.0的URL映射为我们提供了一个选项,在一定程度上实现此功能。我们可以提供确切的网址导航和URL显示给用户。

  Url routing在asp.net 3.5中引入。开发者创建不同的route处理类取决于网站url routings的数量。由于有url routing选项,回发的问题能被解决。/p>

  在asp.net 4.0中你不需要为每个单独的处理程序类来定义routing。建立一个辅助函数MapPageRoute,帮助您实现更快速的routing。这些routes在Application_Start中注册。对于这个在Global.asax SetRouting方法的示例中设置routing,第一个参数是routing的友好名称,第二个参数是检查URL进行模式匹配,第三个是在aspx页将这一功能为用户实施。

  Global.asax中是:

代码
protected void Application_Start(object sender, EventArgs e) 

    SetRouting(System.Web.Routing.RouteTable.Routes); 

private void SetRouting(System.Web.Routing.RouteCollection routeCollection) 

    routeCollection.MapPageRoute(
"RouteFriendlyName""MyWebsite/RequestParameterName",
        
"~/Book.aspx"); 
    
// you can add other page routes with different names and combinations here 
}

  现在Book.aspx将使用下面的代码进行进一步处理。

string Parameter = Page.RouteData.Values["RequestParameterName"].ToString(); 

if (Parameter==”Chemistry”){....} 

else if (Parameter==”Physics”){....}

  现在,如果条件满足,如果我们将首先浏览到localhost / MyWebsite /Chemistry 。

  13、Add Reference Dialog:

  在Visual Studio以前的版本中,当打开reference dialog box时,这将需要一些时间来加载.NET程序集文件开始直到它加载从GAC中所有引用。在默认情况下打开项目选项卡,在VS2010上添加引用。

  如果你错误地点击.Net或COM选项卡,你还有一个是取消的所有程序集加载的选项。因此,VS IDE的并不像以前冻结。

  14、Compressing Session Values

  ASP.NET session外的进程的状态值保存在数据库或服务器上。这些都是以序列化格式保存。发送到服务器时候,更多更大的session将消耗更多的资源 。现在,这些可以被压缩在一个新的构建compressionEnabled属性中。这种对sessionState元素属性,可以在web.config这样被声明。

<sessionState
mode="SQLServer" stateConnectionString="connectionstring goes here" 
compressionEnabled
="true"/>

  此选项将用于session外的进程。

  15、Dynamic lookup:

  有一个新的静态类型,dynamic。我们可以使用它作为任何对象的类型。如果有任何关于它的用法,我们能在运行时,得到它的错误。例如:

dynamic integerValue = 1

dynamic stringValue 
= " a string"

dynamic Result 
= integerValue + stringValue;

  输出这将是:字符串 1。

  但是如果你改变最后一行

dynamic Result = integerValue & stringValue;

  你不会得到任何下面的编译错误,在运行时,你会得到下面的错误。

  Operator '&' cannot be applied to operands of type 'int' and 'string'

  16、Optional Parameters

  在asp.net 4之前,为了实现可选的参数,我们创建重载函数。但现在在C#中,可选参数没有更多的限制。但是象VB的可选参数必须放置到最后。例如:

public void FunctionOptionalParam(string Name, int Age, string Country = ""

  我们可以不提要求的可选参数的值。

FunctionOptionalParam("My Full Name",20);

  17、Named Parameters:

  命名的参数可以忽略的参数顺序,在不同顺序的使用带名称的参数。例如:

public void FunctionNamedParam(int x, int y , int z)

  在函数调用将是:

FunctionNamedParam(x:1, z:3, y:2);

  在函数声明的顺序之前,虽然我们为参数设置了Z的值,但这些仍然等同于x = 1,ý = 2,z=3。

  18、Meta Tags:

  HtmlMeta类可用于动态添加HTML meta的标签和HTMLMeta的名称,内容属性可以被用来在运行时动态添加任何继标记名称和它的值。

  在asp.net 4.0 Page类中有两个属性MetaDescription和MetaKeywords。这些可以用来在运行时在html中为description和keyword元素添加 meta 的值。这些可以在HTML中提及页面属性或以这种方式:

Page.MetaDescription = "this is meta description";
Page.MetaKeywords 
= "this is a meta keyword";

  如果这样我们看到这样的HTML生成:

<head>
<meta name="description" content="this is meta description " />
<meta name="keywords" content="this is a meta keyword" />
head>

  19、Generating Client IDs:

  web控件的客户端ID是根据父控件ID动态的产生。 所以,如果你在一个用户控件中使用textbox,我们必须查看为它生产什么样ID,才能在客户端的脚本中直接使用。

  有时这些是动态的改变用户控件的名称也更改它的子控件ID。在asp.net 4.0中,这个问题是可以由页面的ClientIDMode属性解决。它有如下可能的值:AutoID , Static, Predictable 和Inherit。

  AutoID: 是webpage 的默认值,功能和以前 ASP.NET的版本一样。

  Static:  为控件设置一个静态的ID,所以我们不需要当心父控件的ID,我们也能使用javascript引用它。

  例如一个用户控件里面的 textbox ,它外面胡一个ClientIDMode 设置为static

<asp:TextBox ID="textbox1" runat="server" clientIDMode="Static">asp:TextBox> 

<uc1:WebUserControl ID="WebUserControl1" runat="server" />

  这个用户控件包含了textbox2

<asp:TextBox ID="TextBox2" ClientIDMode="Static" runat="server">asp:TextBox>

  这个代码将产生下面的HTML:

<input name="ctl00$MainContent$textbox1" type="text" id="textbox1" /> 

<input name="ctl00$MainContent$WebUserControl1$TextBox2" type="text" id="TextBox2" />

  如果我们移除ClientIDMode="static" ,输出胡HTML将会是:

<input name="ctl00$MainContent$textbox1" type="text" id="MainContent_textbox1" />

  它将产生象以前asp.net版本的textbox的ID

  Predictable: 如果gridview 或者listview控件中我们设置ClientIDMode的值为Predictable ,它将会串连控件ID和Gridview的ID ,column的值在ClientIDRowSuffiex 属性上提到:

Gridview ID ="GridView1"
ClientIDMode
="Predictable"
ClientIDRowSuffix
="ItemID"

  如果在gridview的模板列中的有一个ID为 Label1的label控件 ,它被绑定在ItemID 列上。

  它的ID将会是: ID= GridView1_Label1_200。

  如果我们用数据绑定控件之外使用web控件,设置ClientIDMode等于Predictable:

代码
<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Predictable">asp:TextBox>

<asp:Panel ID="panel1" runat="server">

<asp:TextBox ID="TextBox2" runat="server" ClientIDMode="Predictable">asp:TextBox> 

asp:Panel>

  你可以看到webcontrols在一个面板输出和另外一个再面板以外输出。

代码
<input name="ctl00$MainContent$TextBox1" type="text" id="MainContent_TextBox1" />

<div id="MainContent_panel1">

<input name="ctl00$MainContent$TextBox1" type="text" id="MainContent_TextBox1" />

div>

  它将产生所有web控件的ID,是panel的页面的ID加上子控件的ID。

  Inherit: WEB控件默认是继承父容器的ID。  控件能覆盖它父控件的属性。所以我能为ClientModeID设置不同的值。

  20、Permanent Redirect :

  在有些情况下,如果当前页面已经过时,我们希望将用户重定向到新开发的网页。 我们可以使用Response.Redirect转移页到新的页面。但是,在这种情况下,搜索引擎保存搜索索引的网页的旧信息。 另外,如果用户浏览到这个网页,他将被重定向到这个网页,然后用命令的response.redriect帮助新打开的一页。

  但在ASP.NET 4.0中一个新的命令Response.RedirectPermanent可用于更改服务器页上的头信息。因此,如果用户去为他直接重定向到新的一页,并为他节省了双行页面。在该网站和网页更新的发现头和更新其索引信息,展示最新的信息重新搜索索引同样的搜索引擎。

  21、New Browser Definitions:
  在ASP.net 3.5近几年,一些浏览器已经更新,其中包括Google chrome和那些支持blackberry智能手机。 ASP.Net 4.0的HttpBrowserCapabilities类被更新符合支持新浏览器。

  22、Package/Publish :

  Package/Publish提供设置 publish和package命令 。配置调试选项,像以前的版本一样,Publish提供设置编译和生成的选项。

  如果托管服务器上没有SQL Express或如果您不希望包含发布的文件,然后选择从App_Data文件夹中排除的那些文件。如果您选择选项创建一个的Web包像ZIP文件,它会创建一个部署的zip文件。否则,将是默认解压缩的文件夹。

  默认情况下,程序包在应用程序的OBJ文件夹下创建。默认它不会在解决方案浏览器中显示,直到您选择显示所有文件选项。我们还可以设置服务器Web应用程序名称以及目标服务器的物理路径。

  23、Deploy SQL :

  部署SQL选项,允许您设置将连接字符串作为部署的一部分。您可以使用不同的名称和值手动添加连接字符串,或按一下import按钮从web.config导出。你可以仅仅选择模式脚本或数据库选项。在一个连接字符串显示源设置,我们可以为设置目标服务器的值。

  您还可以手动添加数据库脚本文件,通过点击添加按钮。您还可以更改SQL文件,以便在服务器上运行。

  参考原文:http://www.codeproject.com/KB/aspnet/Whatis_New_ASP_Net_4.aspx

[第1页][第2页]
0
0
标签:ASP.NET

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻