技术开发 频道

详细解析ASP.NET 4.0的23项全新功能

  (3)右击web.config,选择'Add config Transfroms ’选项。打开Web.config并添加一个测试键和值。

<appSettings>
<add key="KeyOne" value="A value"/>
</appSettings>

  (4)打开TransformWebConfig.config,并添加下面一行。

<appSettings>
<add key="KeyOne" value="TestOnConfigurationConfig" xdt:Transform="Replace"
    xdt:Locator
="Match(key)" />
</appSettings>

  (5)右击项目,选择'Create Package’。 VS会从TransformWebConfig.config文件获取值,它将改变我们发布的web.config文件中的值。

  在成功生成的OBJ文件夹中,检查TransformWebConfig文件夹下的web.config,您会看到关键字KeyOne的值为TestOnConfigurationConfig。

  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选项,回发的问题能被解决。

  在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>
0
相关文章