【翻译】如何把ASP.NET AJAX Beta 2的程序转换为ASP.NET AJAX RC的程序
这篇文章的重点在于如何一步一步的教你如何把一个整合了 Microsoft ASP.net ajax 的程序迁移到Microsoft Asp.net ajax rc上。这篇文章只是个快速参考,详细的内容请阅读白皮书,Changes between the ASP.NET AJAX (“Atlas”) CTP and the RC and RTM Releases.
1.安装新的发行版本。
2.编辑程序配置文件(web.config)。
3.升级web服务。
所有这些步骤将在下面详细解释。
1. 安装新的ASP.NET AJAX 发行版本
从ajax.asp.net下载最新的asp.net ajax发行版本,然后依照下面的步骤来做:
- 利用控制面板里面的添加删除程序删除asp.net ajax beta2
- 安装Microsoft ASP.NET 2.0 AJAX Extension 1.0 RC.
- 决定Microsoft ASP.NET 2.0 AJAX Futures December CTP中那些选项你需要安装。如果你使用了AutoCompleteExtender控件或者其他不再Core包中的“Atlas” CTP的项,那么你就要安装了。详细的需求列表看Feature Matrix。
- 如果你使用了CTP的项,安装CTP的发行版本并且用下面目录的文件替换Bin目录下的Microsoft.web.preview.dll assembly:
%ProgramFiles%\Microsoft ASP.NET\ASP.NET 2.0 AJAX Futures December CTP\v1.0.61025
- 如果你使用了“Atlas”控件工具集,请安装新的Asp.net ajax 工具集。关于她的更改请参考在线文档Control Toolkit Web site。
- 如果合适,最好复制新的AJAX Futures December CTP 和 ASP.NET AJAX Control Toolkit assemblies 到程序的Bin目录.
2. 更新配置文件
核心的Asp.net ajax assembly从Microsoft.web.extensions.dll转变到System.web.extensions.dll。另外,他们的命名空间也从Microsoft.Web.*变成了System.Web.*。
要在现有项目中使用最新的Asp.net ajax,你必须更新你程序文件夹下面的Web.config文件。我们强烈建议你复制一下目录中我们提供给你的web.config模版,然后根据自己的情况更新web.config中的设置:
%ProgramFiles%\Microsoft ASP.NET\ASP.NET 2.0
如果你想手动的编写你的web.config文件,请参考本文的Appendix。
3. 更新你的web服务
核心的Asp.net ajax assembly从Microsoft.web.extensions.dll转变到System.web.extensions.dll。因此,你必须改变你所有web服务的ScriptService属性指向新的namespace. 下面的例子(使用C#)展示了CTP版本和RC版本的web服务的ScriptService属性。
CTP
[Microsoft.Web.Script.Services.ScriptService]
public class UIService : System.Web.Services.WebService {
// Web service implementation goes here.
}
ASP.NET AJAX v1.0
[System.Web.Script.Services.ScriptService]
public class UIService : System.Web.Services.WebService {
// Web service implementation goes here.
}
Appendix – 手动更改配置文件
这节主要描述了如何手动配置你的程序配置文件(web.config)以让他可以在asp.net ajax rc版本中工作。
<configuration>
<configSections>
- 使用下面路径中文件的相应内容替换下面的内容:
%ProgramFiles%\Microsoft ASP.NET\ASP.NET 2.0
<system.web>
<compilation>
<assemblies>
- 更新现有的entry到新的assembly name:
<add assembly="System.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<system.web>
<pages>
<controls>
- 去除下面的entry:
<add namespace="Microsoft.Web.UI.Controls"
assembly="Microsoft.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
tagPrefix="asp" />
- 更新现有的entry指向新的assembly name和namespace:
<add namespace="System.Web.UI"
assembly="System.Web.Extensions,
Version=1.0.61025.0,
Culture=neutral,
PublicKeyToken=31bf3856ad364e35"
tagPrefix="asp" />
如果你使用的ASP.NET Futures release, 确保有一下两行:
<add tagPrefix="asp" namespace="Microsoft.Web.Preview.UI"
assembly="Microsoft.Web.Preview"/>
<add tagPrefix="asp"
namespace="Microsoft.Web.Preview.UI.Controls"
assembly="Microsoft.Web.Preview"/>
<system.web>
<pages>
<tagMapping>
- Update the existing entries to reflect the new assembly name and namespace:
<add tagType="System.Web.UI.WebControls.CompareValidator"
mappedTagType="System.Web.UI.Compatibility.CompareValidator,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.CustomValidator"
mappedTagType="System.Web.UI.Compatibility.CustomValidator,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.RangeValidator"
mappedTagType="System.Web.UI.Compatibility.RangeValidator,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.RegularExpressionValidator"
mappedTagType="System.Web.UI.Compatibility.RegularExpressionValidator,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.RequiredFieldValidator"
mappedTagType="System.Web.UI.Compatibility.RequiredFieldValidator,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.ValidationSummary"
mappedTagType="System.Web.UI.Compatibility.ValidationSummary,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<configuration>
<System.web>
<httpHandlers>
- 更新现有的entry指向新的assembly name and namespace:
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler,
System.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
validate="false"/>
<configuration>
<System.web>
<httpModules>
- 更新现有的entry指向新的assembly name and namespace:
<add name="ScriptModule"
type="System.Web.Handlers.ScriptModule,
System.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<configuration>
<System.webserver>
<httpModules>
- 更新现有的entry指向新的assembly name and namespace:
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="ScriptModule" preCondition="integratedMode"
type="System.Web.Handlers.ScriptModule,
System.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx"
preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptResource" verb="GET" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler,
System.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
浙公网安备 33010602011771号