减少可能的兼容性问题的策略
通过遵循如下所述的其中一个策略,开发人员可以减少应用程序受 .NET Framework 更改影响的可能性。兼容性测试方案中提供有关测试的更多信息。
在发布 .NET Framework 2.0 的最终版本之前,我们将检查兼容性状态,并考虑在破坏性更改影响应用程序时还原这些更改。在进行兼容性测试时,如果您发现应用程序需要进行一些更改才能在新版本上正确运行,请在 MSDNProductFeedbackCenter 上记录错误。
1. | 测试和修复 使用由 .NET Framework 1.1 构建的应用程序的一种可能方法是:使用 .NET Framework 2.0 测试该应用程序,进行一些必要的更改,并确保该应用程序在 Framework 的两个版本上都能运行。 开发和测试含义这将要求小组测试 Framework 的两个版本,从而扩展应用程序的测试矩阵。它可能还要求开发人员对源代码进行一些修改,以确保应用程序在 .NET Framework 1.1 和 .NET Framework 2.0 上都能运行。 市场和运营含义应用程序所有者需要与客户和用户沟通该问题,并为他们提供兼容 Framework 这两个版本的应用程序更新版本。 |
2. | 使用 .NET Framework 1.1 部署 默认情况下,使用 .NET Framework 构建的托管应用程序将使用构建时所用的版本运行。如果已在目标机器上安装了 .NET Framework 1.1,则不需要更改任何应用程序。要启用该方案,应用程序所有者应该继续连同其应用程序一起发布 .NET Framework 1.1,或确保所有目标机器上都安装有 .NET Framework 1.1。 如果 .NET Framework 应用程序寄宿在本地主机中(例如 Microsoft Office 或 Microsoft Internet Explorer),则该应用程序将使用计算机上安装的最新 .NET Framework 版本。这可能意味着,构建在 .NET Framework 1.1 上的应用程序可能被强制使用 .NET Framework 2.0 运行。如果您编写宿主托管代码的本机应用程序(无论是通过直接宿主还是通过 COM Interop),则可以配置本机 exe 并选择构建托管代码时所用的运行库版本;否则,您的组件需要在计算机上安装的最新版本上运行。有关更多详细信息,请参阅以下并行文档。 开发和测试含义从开发和测试的角度来看,这需要确保在所有机器上安装 .NET Framework 1.1。如果是寄宿组件(加载托管组件的应用程序),您可能需要修改该应用程序的配置文件,以确保即使在该计算机上安装了 .NET Framework 2.0,宿主进程也会加载 .NET Framework 1.1。 市场和运营含义从市场和运营的角度来看,这涉及传达让用户安装 .NET Framework 1.1 的需要。如果是本地主机,当用户在其系统上安装 .NET Framework 2.0 时,它可能还需要让客户和用户安装新版本(或更新应用程序配置文件)。 |
3. | 升级到 2.0: 希望利用 .NET Framework 2.0 中新功能的开发人员应该升级应用程序以使其适合 .NET Framework 2.0。这包括重新编译代码、测试应用程序,以及进行一些必要的更改。 在 Beta 2 中,ASP.NET 开发人员需要了解在项目系统和编译模型中所作的更改,这些更改可能会影响其应用程序升级到 2.0 的方式。基于用户反馈,我们已经实现了对 ASP.NET 项目升级系统的补充,这意味着大多数应用程序只需要进行最少的更改。 开发和测试含义这需要更新应用程序以使其适应所有破坏性更改、在 .NET Framework 2.0 中测试应用程序,以及修改应用程序以利用所有 .NET Framework 2.0 功能。开发人员需要更新应用程序安装程序以发布 .NET Framework 2.0。(请注意:在 Beta 2“保持激活”期间,ISV 可能不会重新发布 .NET Framework 2.0。) 市场和运营含义应用程序所有者需要与客户沟通,并且用户需要安装 .NET Framework 2.0 以及更新的应用程序 BITS。 |
潜在热点
有两个广为人知的兼容性方面热点值得一提:
| • | 序列化:.NET Framework 不同版本之间的任何序列化数据都可能不稳定,因为序列化依赖于对象的内部结构。这可能会影响序列化到文件中的数据,或者通过 .NET Remoting 为通信而序列化的数据。我们目前正在版本容错序列化方面投入精力,预计可以在发布 Visual Studio 2005 和 .NET Framework 2.0 时提供版本容错序列化。 |
| • | 检查 .NET Framework 的特定版本:应用程序将在安装时检查 Framework 的特定版本是否已安装到计算机上,或者在运行时检查 Framework 的特定版本是否是版本敏感的 (version-brittle)。这在利用托管代码的安装程序中是很常见的考虑。 |
提交要测试的应用程序
我们一直想要扩展用于测试兼容性的应用程序列表,尤其需要业务线应用程序。如果您提交应用程序,将获得以下服务:
| • | 我们将在最新的 Whidbey BITS 上测试您的应用程序。根据测试的兼容性需求,各个应用程序的测试程度会有所不同。 |
| • | 我们将向您报告通过/失败结果和 Microsoft 发现(在失败情况下)的应用程序问题,以及缓解该问题的建议。 |
| • | 我们不承诺确保您的应用程序在最新的 BITS 上正常运行。但是,该成果将帮助我们了解客户可能经历的所有兼容性问题。我们将尽力确保现有的应用程序能够在 .NET Framework 2.0 上正常运行。 |
| • | 您负责提供以下内容:应用程序、所有必要的前提(测试数据、其他资源),以及有关如何在全新的计算机上安装和运行该应用程序的安装说明。Microsoft 无法测试需要特定于域的资源或者在其中包含真实客户数据的任何应用程序。 |
我们希望收集的一些附加信息包括:
公司名称
应用程序名称
应用程序类型(Web 应用程序、桌面应用程序、COM 等)
应用程序开发技术(包括语言)
应用程序功能(包括对业务的重要性)
应用程序大小(LOC、模块)
如果您想要提交应用程序,请发送邮件至 netfxcmp@microsoft.com。
付诸行动
| • | 在 2.0 上测试您的 1.1 应用程序并找出是否存在问题。通过 MSDNProductFeedbackCenter 报告这些问题。 |
| • | 通过 netfxcmp@microsoft.com 提供其他问题(包括兼容性和部署问题)的反馈。 |
| • | 提交要测试的更多应用程序。 |