`

ASP.Net4.0中新增23项功能

 
阅读更多

出处:http://www.cnblogs.com/zhuqil/archive/2010/01/05/1639405.html

这篇文章介绍Visual Studio 2010 (ASP.Net 4.0)的新功能。

1、代码片段(Code Snippets):

代码段是预先开发的代码模板,可以节省我们对有关语法思考的时间。在VS 2005和VS 2008中,已经有建立了很多代码段。不过,这些只适用于隐藏代码(code behind)。在VS 2010中代码片段支持JScript,HTML以及asp.net标记。在下面画面,展示了JScript和HTML片段的快捷菜单。

在JS中:

在Html中 :

2、New Profiles:

在以前的dotnet版本中,我们已经看到过不同的开发环境的配置。如VB, C#, Web development 和General Development。我们根据自己的需要选择一个环境配置。这些选择将在第一次安装visual studio之后或者通过import export选项。

这里介绍两个VS 2010中配置环境,两个都是进行HTML开发的。他们是

  1. Web Development
  2. Web Development (Code Optimized)

Web Development,配置隐藏了客户对象和HTML Mode顶端的事件栏。

Code Optimized ,你将发现是没有code, designer tabs的html 编辑器。它提供了一个更大的空间去玩转html。

在你安装visual studio之后,第一次使用的时候,你能选择一个配置。你也能改变你的工作环境的配置通过:Tools > Import & Export Settings > Reset all settings option。 如果在IDE中没有什么改变,你必须通过重新打开visual studio 使它生效。

3、Generate From Usage:

在ASP.Net以前的版本,微软推出了从现有的代码中进行代码重构来生成方法,在In ASP.NET 4.0 中,Generate From Usage 有了新概念,能基于现有的代码来生成属性,方法,类和的其它类型。

写一些代码,选中它,右击最右侧的字符,你将得到去提取属性和方法的选项。此选项仅当你没有定义过这个标识符才显示。对于下面的例子智能感应不会显示选项来提取属性,例如,如果您右键点击变量 i 。

4、Multi-Targeting:

在2008中就能创建一个2.0或者3.0版本创建项目,而不是用默认的3.5去开发。也是是说,有一个选择项去改变开发项目的framework版本。

在2010中亦有相同选项功能,并做出相应的提高。在以前的版本中,如果你使用framework 2.0创建一个项目。智能感仍将能显示3.5版本的类型和成员。如果你不能确定所选择的framework内的成员,所以你就会有更多的机会去出错。但是,在VS2010的智能感知会只向您显示你选择的framework 版本。

5、MultiMonitor:

Visual Studio 2010 给我们提供能将IDE的窗体移动visual studio IDE之外,将它放至在桌面上。它还支持多面去地去看不同的IDE窗体。如果我们关闭Visual Studio,并再次打开它,我们会发现所有的窗体在我们最后一次放置的地方。

6、Code Navigation:

新的导航使我们在文件中更快搜索术语。但它只能即在App_Code文件夹类文件,搜索您键入文本。它不适用于HTML或代码隐藏文件。在下面的例子,它显示出我的键入函数名称,它导航到窗口,选择窗体中的任何一个,它将能定位到选择的函数定义。

7、View Call Hierarchy:

这有助于查看函数和属性的使用,例如,如果你在一个函数名右键,它会告诉你的函数使用分层列表。

如果您单击查看调用层次,它会显示一个窗体,告诉你详细的函数调用:

在层次结构中选择窗口函数调用它会显示的参数和函数调用的位置的详细信息。

8、代码高亮突出显示:

选择一个标识符,IDE会为你突出的被使用的地方。例如我选择变量i,在它不同的使用地方,突出的显示。

9、智能提示的改进:

在VS 2008中,为一个对象选择属性时,它将根据输入的字母的顺序排列,为你提供智能提示。

在VS2010中它将向你显示基于组的属性,例如,如果您的文本框对象后键入text, 它将向你显示Text, TextChanged, TextMode。它也支持Pascal的智能提示。例如,你输入TC,它将导航TextChanged 成员。

在下面的图片中可以看到4.0版本的ClientIDMode属性:如果我们从项目属性上改变framework 版本。它不会显示这个文本框的这个属性。

10、EnablePersistedSelection:

当我们选择像datalist 或者gridview 控件中的一行时,如果我们移动到另一个网页,在新的页上,它选择同编号行,虽然我们只在第一页选择了它。

为了避免这个,ASP.Net 4.0为这些控件推出了一种新的属性,这是EnablePersistedSelection。如果设置为true,在其他网页中,将不能选择同一编号。例如,导航到原始网页,第一页将显示选定的最初选定的行。

11、Web.Config Transformation

通常为我们的开发环境需要在web.config中设置一些值,然后在部署或测试的时候,我们手工地改变这些值。

例如,如果我们在Web.config文件中有连接字符串或其他任何键值组合,在项目发布或部署的时候,我们要去替换他们,这里我们将使用新的术语:Web.Config Transformation。这是一种自动的方式来执行此操作。Web.config 设置能被其他的配置文件覆盖,如:web.release.config,web.debug.config 等等,在项目debug和release时候。这些值不会覆盖原web.config,但会在发布的web.config中。

有了transformation的帮助,我们可以替换,移除,删除一个节点和我们可以删除或设置节点自身的属性。例如:

1、创建一个配置文件,从configuration manager > New

2、将其命名为 TransformWebConfig。从copy setting from 选项中选择Release。

这将会创建TransformWebConfig.config。

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><appSettings>
<addkey="KeyOne"value="Avalue"/>
</appSettings>

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><appSettings>
<addkey="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中是:现在Book.aspx将使用下面的代码进行进一步处理。

代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->protectedvoidApplication_Start(objectsender,EventArgse)
{
SetRouting(System.Web.Routing.RouteTable.Routes);
}
privatevoidSetRouting(System.Web.Routing.RouteCollectionrouteCollection)
{
routeCollection.MapPageRoute(
"RouteFriendlyName","MyWebsite/RequestParameterName",
"~/Book.aspx");
//youcanaddotherpagerouteswithdifferentnamesandcombinationshere
}

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->stringParameter=Page.RouteData.Values["RequestParameterName"].ToString();

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

elseif(Parameter==”Physics”){....}

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这样被声明。

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><sessionState
mode="SQLServer"stateConnectionString="connectionstringgoeshere"
compressionEnabled
="true"/>

此选项将用于session外的进程

15、Dynamic lookup:

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->dynamicintegerValue=1;

dynamicstringValue
="astring";

dynamicResult
=integerValue+stringValue;

但是如果你改变最后一行

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->dynamicResult=integerValue&stringValue;

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

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

16、Optional Parameters

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->publicvoidFunctionOptionalParam(stringName,intAge,stringCountry="")

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->FunctionOptionalParam("MyFullName",20);

17、Named Parameters:

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->publicvoidFunctionNamedParam(intx,inty,intz)

在函数调用将是:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->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中提及页面属性或以这种方式:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->Page.MetaDescription="thisismetadescription";
Page.MetaKeywords
="thisisametakeyword";

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><head>
<metaname="description"content="thisismetadescription"/>
<metaname="keywords"content="thisisametakeyword"/>
</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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><asp:TextBoxID="textbox1"runat="server"clientIDMode="Static"></asp:TextBox>

<uc1:WebUserControlID="WebUserControl1"runat="server"/>

这个用户控件包含了textbox2

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><asp:TextBoxID="TextBox2"ClientIDMode="Static"runat="server"></asp:TextBox>

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><inputname="ctl00$MainContent$textbox1"type="text"id="textbox1"/>

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

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><inputname="ctl00$MainContent$textbox1"type="text"id="MainContent_textbox1"/>

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

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->GridviewID="GridView1"
ClientIDMode
="Predictable"
ClientIDRowSuffix
="ItemID"

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

它的ID将会是:ID= GridView1_Label1_200。

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

代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><asp:TextBoxID="TextBox1"runat="server"ClientIDMode="Predictable"></asp:TextBox>

<asp:PanelID="panel1"runat="server">

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

</asp:Panel>

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

代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><inputname="ctl00$MainContent$TextBox1"type="text"id="MainContent_TextBox1"/>

<divid="MainContent_panel1">

<inputname="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

作者:朱祁林
出处:http://zhuqil.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
分享到:
评论

相关推荐

    ASP.NET4高级程序设计(第4版).zip.001|中文版.完整书签

    ASP.NET4高级程序设计(第4版).zip.001|中文版.完整书签 《ASP.NET 4高级程序设计...另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。 《ASP.NET 4高级程序设计(第4版)》适合各层次的ASP.NET程序员阅读。

    ASP.NET4高级程序设计(第4版).part5.rar

    共5卷,请全部下载完成后解压! 作 者: Matthew MacDonald 等 著 博思工作室...另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。  《ASP.NET 4高级程序设计(第4版)》适合各层次的ASP.NET程序员阅读。

    DataGridTree(asp.netmvc4.0)

    2.代码包含asp.net webForm版DataGridTree 3./*表格树控件说明 * 表格树模型属性说明: * 1.TreeParentCode:顶级根节点parentcode * 2.TreeDisplayDeep:展现表格树深度默认为1 * 3.实现事件SumParentNode_...

    DotNet平台与Visual Studio.Net开发工具新增功能介绍

    1.8. .NET FRAMEWORK 4.0 新增功能介绍-ASP.NET编程 2. VISUAL STUDIO 2008 中的新增功能 3. VISUAL STUDIO 2008 SERVICE PACK 1 (SP1) 中的新增功能 4. VISUAL STUDIO 2008 原始发行版本中的新增功能 5. 微软...

    Jokul Forum 社区论坛软件(.net 4.0) v1.5.5234.2

    Jokul Forum 是 ASP.Net 论坛中的新成员,致力于为您打造基于Windows平台最优秀的论坛产品。Jokul Forum 是一款采用ASP.Net(MVC)与Microsoft SQL Server构建的高效论坛解决方案,可以帮助您轻松搭建并管理论坛。...

    C# 任务管理器中隐藏进程.rar

    ASP.Net4.0中新增23项功能 这里说的只是在WINDOWS 任务管理器里隐藏,不是在进程里消失例如我们要隐藏QQ进程,不在WINDOWS任务管理器里显示 个人页面 登陆交谈

    ASP.NET4.0新特性

    新增了项目模板 在创建Web项目时可以看到增加了更多的Web项目模板在VS2008中对应的情况如下:在新模板中有如下改进:基础MemberShip功能。在大多数网站和应用程序中需要进行认证,因此在新模板中增加了认证功能使得...

    asp.net固定资产管理系统(源码+数据库).zip

    固定资产管理系统源码 功能介绍: 一.... 二....1)固定资产查询/管理(由于列数比较多,采用固定前面4列的方式,后面的列可拉动横向滚动条),点击查看打印列表, ...2)固定资产新增 ...运行环境:.net4.0,集成

    免费分享ASP.NET会员管理系统project+源码 C# ASP.NET 会员管理系统源码,数据库使用SQLServer

    今天的分享是一款之前收集的 C# ASP.NET 会员管理系统源码,数据库使用SQLServer,代码清晰、注释完善、简单易读,界面美观大气,非常适合初学者学习或有相应软件需求的二次开发借鉴、源码收藏。数据库为SQL语句,...

    [CHM格式] DotNet Framework 4.0 参考手册 ([微软官方 MSDN]) 6-5

    .NET Framework 4 中的新增功能 .NET Framework 概述 .NET Framework 核心开发 .NET Framework 高级开发 .NET Framework 中的安全性 ASP.NET 门户网站 Windows 窗体门户网站 .NET Compact Framework 门户 Windows ...

    网奇.net网络商城系统4.0

    无需任何设置,上传到支持asp.net的主机空间即可使用。 系统内置多套网络商城专业模板,适合开网上书店、花店、数码产品店、化妆品、手机店。网奇官方网站(http://www.wangqi.com)更不定时的推出新的精美模板。 ...

    ASP.net超市商店会员刷卡消费综合管理系统源码

    一、源码描述 这是超市商店会员刷卡消费综合管理系统,功能十分的强大,可以作为二次开发或者... 使用.net 4.0开发。 3、默认数据库连接字符串在webconfig配置文件中修改。 4、会员登陆页面为User_Default.aspx。

    Jokul Forum 社区论坛软件(.net 4.0) v1.5.5234.1

    Jokul Forum 是 ASP.Net 论坛中的新成员,致力于为您打造基于Windows平台最优秀的论坛产品。Jokul Forum 是一款采用ASP.Net(MVC)与Microsoft SQL Server构建的高效论坛解决方案,可以帮助您轻松搭建并管理论坛。 ...

    宠物商店V4.0版源码 (PetShop V4.0)

    PetShop 4.0使用ASP.NET 2.0技术开发,其中加入了众多新增特性,因此,在性能、代码数量、可扩展性等方面有了重大改善。可以说,学习PetShop 4.0是深入掌握ASP.NET 2.0技术的捷径。本节将引领读者逐步了解PetShop ...

    ASP.NET2.0典型模块(1-16)

    ThumbnailImage 使用ASP.NET 2.0实现缩略图模块 AspJpegSample 使用第三方组件在ASP.NET 2.0中实现对图片的处理 &lt;br&gt;第12章(\C12) 示例描述:本章示例展现了ASP.NET2.0中的防盗链技术。 ...

Global site tag (gtag.js) - Google Analytics