风舞残阳 2008-4-2 13:44
.NET3.5和VS2008中的ASP.NET AJAX
在过去,我曾在《VS2008JavaScriptIntellisense》和《VS2008JavaScriptdebugging》中讨论过JavaScript和AJAX方面的改进。下面是作为VS2008和.NET3.5一部分发布的一些ASP.NETAJAX运行时特性的几个备注,以及你在VS2008中打开现有ASP.NETAJAX1.0项目时需要知道的几个重要事项。 包括在.NET3.5中的ASP.NETAJAX
[img]http://img.ddvip.com/2007_08/1186113454_ddvip_2206.jpg[/img]
ASP.NETAJAX1.0是以可以在ASP.NET2.0之上安装的单独一个下载的形式发布的。从.NET框架3.5开始,所有这些特性都成为ASP.NET所固有的,这意味着在构建或部署应用时,你不再需要下载和安装单独的ASP.NETAJAX安装文件。
当你在VS2008中创建针对.NET框架3.5的新ASP.NET应用或[wiki]网站[/wiki]项目时,VS会自动在你的web.config文件里添加适当的AJAX注册设置,而且核心ASP.NETAJAX[wiki]服务器[/wiki]控件会出现在你的工具箱里。
随.NET3.5发布的ASP.NETAJAX版本有不少很好的改进-包括对可与WebPart一起使用的UpdatePanel的支持,对基于WCF的JSON结点的支持,对在JavaScript中使用ASP.NET用户数据,角色和登录应用服务的支持,以及N个缺陷修补和性能改进。
理解ASP.NETAJAX的版本
ASP.NETAJAX1.0和.NET3.5两者可以在同个机器上并行安装。ASP.NETAJAX1.0是在System.Web.Extensions.dll的V1.0[wiki]程序[/wiki]集中实现的,而包括在.NET3.5中的ASP.NETAJAX实现存在于System.Web.Extensions.dll的V3.5程序集中。System.Web.Extensions.dll的V3.5版本是个完全兼容于1.0版本的扩展集(这意味着你不要改动任何代码就可以使用它)。
机器上的每个ASP.NET应用都可以选择使用任何一个ASP.NETAJAX版本来构建和运行。这是通过在web.config文件中部分节点,以及应用编译时所引用的System.Web.Extensions.dll程序集版本来配置的(在网站项目中,这些引用是注册在web.config文件中的部分的,而web应用项目则是通过项目文件来指定这些引用的)。
你将能使用VS2008来开发针对ASP.NETAJAX3.5的应用,以及使用新的VS2008多定向支持来构建使用ASP.NETAJAX1.0的ASP.NET2.0应用。在下面的部分,我将讨论怎么做。
重要的Beta2[wiki]信息[/wiki]
在我们在web上发布Beta2前几天,我们发现了一个并行安装ASP.NETAJAX的问题。如果你读过我原先的《VS2008和.NET3.5Beta2发布了》的博客贴子的话,你会记得下面这个我特别指出的来修正这一问题的安装后补丁步骤:
你应该下载和运行这个批文件。这只要几秒钟就可以运行完,它修补了这个星期早些时候我们发现的System.Web.Extensions.dll版本政策的问题,该程序集包含了ASP.NETAJAX。如果你不运行这个批文件,那么用ASP.NETAJAX1.0和VS2005构建的现有的ASP.NET2.0项目就会自动地运载随.NET3.5Beta2发布的新ASP.NETAJAX版本。这会工作而且运行良好,但会不小心导致你的VS2005应用依赖于.NET3.5。运行这个批文件会改变新的System.Web.Extensions.dll程序集的版本绑定政策,确保你只在你明确构建.NET3.5项目时才使用新的.NET3.5ASP.NETAJAX版本。
好消息是,这会修正我们发现的并行安装问题,使得我们可以[wiki]安全[/wiki]地在同一台机器上使用VS2005和VS2008同时开发ASP.NETAJAX应用。
但有一个问题是,在VS2008中第一次打开老的ASP.NET2.0项目时,它会导致VS2008不正确地检测出所用ASP.NETAJAX的版本,特别地,它会导致VS2008认为当前项目已经使用了.NET3.5。这要求你在VS2008Beta2中第一次打开现有的ASP.NETAJAX1.0网站项目时,采取额外的步骤来更正这个问题。在VS2008的最终版本中,你将不需要采取这些步骤。 把ASP.NETAJAX1.0应用升级到使用ASP.NETAJAX3.5
[img]http://img.ddvip.com/2007_08/1186113454_ddvip_2770.jpg[/img]
当你使用VS2008打开使用了ASP.NETAJAX1.0的现有ASP.NET2.0应用时,你可以选择将应用升级到使用.NET3.5(以及包含在其中的ASP.NETAJAX版本)。
VSWeb工具组最近发表了《UpgradingASP.NETAJAX1.0WebsitesandWebApplicationsto.NETFramework3.5》的博客贴子,其中描述了怎么使用VS2008Beta2来实现升级的逐步指令。好消息是,把ASP.NETAJAX1.0应用更新到.NET3.5时,不要求你改动任何代码,只需要花几分钟就可以完成。
作为升级ASP.NETAJAX1.0应用到.NET3.5的一部分,你要更新你也许在用的编译过的ASP.NETAJAX控件库。ASP.NETAJAX控件工具包开发组刚发表了AJAX控件工具包的ASP.NETAJAX1.0和.NET3.5版本,你可以在这里下载:
《UpgradingASP.NETAJAX1.0WebsitesandWebApplicationsto.NETFramework3.5》博客贴子讨论了如何将AJAX控件工具包的ASP.NETAJAX3.5版本加到VS2008工具箱里。
使用VS2008构建ASP.NETAJAX1.0应用(使用多定向)
当你使用VS2008打开使用了ASP.NETAJAX1.0的现有ASP.NET2.0应用时,你也可以选择不升级到.NET3.5,而是使用VS2008中新的多定向特性来构建使用了ASP.NET2.0和ASP.NETAJAX1.0的应用。
VSWeb工具组最近发表了《UsingVS2008toTargetASP.NETAJAX1.0》的博客贴子,其中描述了如何使用VS2008Beta2来实现这个开发的逐步指令。
在该博客贴子里,还包括了几个你要在Beta2中采取的手工步骤,来把ASP.NETAJAX1.0和ASP.NETAJAX控件工具包服务器控件填充到VS2008工具箱中。在VS2008的最终版本中,我们会发布一个安装包来自动化这个过程,以及在VS2008中添加可为你所用的ASP.NETAJAX1.0项目和文件模板。
你也许在想,为什么使用VS2008来针对ASP.NETAJAX1.0应用,而不就用VS2005呢?好处是,它允许你构建能在你现有的服务器上工作的ASP.NETAJAX1.0应用(不必马上把它们升级到.NET3.5),同时,还允许你利用VS2008IDE的一些新特性,象JavaScriptIntellisense,JavaScriptDebugging,更棒的所见即所得的HTML设计器,CSS[wiki]管理[/wiki],改进的代码编译器,VSProfessional中的单元[wiki]测试[/wiki],TFS中的连续集成支持,等等。
结语
.NET3.5现在包括了对所有ASP.NETAJAX1.0特性的内置支持。我会在将来撰写更多的博客贴子,描述如何利用它提供的新特性。
你可以使用VS2008针对用ASP.NETAJAX1.0开发的现有ASP.NET应用,也可以针对内置于.NET3.5的ASP.NETAJAX的新版本。上面提到的VSWeb工具组的博客贴子在这2个方面的逐步指导应该对你有所帮助。
希望本文对你有所帮助.