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