(3)右击web.config,选择'Add config Transfroms ’选项。打开Web.config并添加一个测试键和值。
<add key="KeyOne" value="A value"/>
</appSettings>
(4)打开TransformWebConfig.config,并添加下面一行。
<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中是:
{
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将使用下面的代码进行进一步处理。
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这样被声明。
mode="SQLServer" stateConnectionString="connectionstring goes here"
compressionEnabled="true"/>
此选项将用于session外的进程。
15.Dynamic lookup:
有一个新的静态类型,dynamic。我们可以使用它作为任何对象的类型。如果有任何关于它的用法,我们能在运行时,得到它的错误。例如:
dynamic stringValue = " a string";
dynamic Result = integerValue + stringValue;
输出这将是:字符串 1。
但是如果你改变最后一行
你不会得到任何下面的编译错误,在运行时,你会得到下面的错误。
Operator '&' cannot be applied to operands of type 'int' and 'string'
16.Optional Parameters
在asp.net 4之前,为了实现可选的参数,我们创建重载函数。但现在在C#中,可选参数没有更多的限制。但是象VB的可选参数必须放置到最后。例如:
我们可以不提要求的可选参数的值。
17.Named Parameters:
命名的参数可以忽略的参数顺序,在不同顺序的使用带名称的参数。例如:
在函数调用将是:
在函数声明的顺序之前,虽然我们为参数设置了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.MetaKeywords = "this is a meta keyword";
如果这样我们看到这样的HTML生成:
<meta name="description" content="this is meta description " />
<meta name="keywords" content="this is a meta keyword" />
</head>