亚马逊AWS官方博客

AWS Transform 宣布推出全栈 Windows 现代化功能



今年五月初,我们宣布正式推出适用于.NET 的 AWS Transform,这是首个用于大规模现代化 .NET 应用程序的代理式人工智能服务。在服务的早期采用阶段,我们收到了宝贵的反馈。除了 .NET 应用程序现代化外,您也希望实现对 SQL Server 和旧版 UI 框架的现代化改造。您的应用程序通常遵循三层架构——表示层、应用层和数据库层——您需要一个全面的解决方案,能够以协调的方式对所有层进行转换。

今天,根据您的反馈,我们兴奋地宣布推出适用于全栈 Windows 现代化的 AWS Transform,以承接 Windows 应用程序栈中复杂、繁琐的现代化工作。您现在可以通过集中式的体验,识别应用程序和数据库的依赖关系,并以编排好的方式对它们进行现代化改造。

AWS Transform 可将应用层、UI 层、数据库层和部署层的全栈 Windows 现代化速度提升高达五倍。除了将.NET Framework 应用程序移植到跨平台.NET 之外,它还通过智能存储过程转换和相关的应用程序代码重构,将 SQL Server 数据库迁移到 Amazon Aurora PostgreSQL 兼容版。为了进行验证和测试,AWS Transform 会将应用程序部署到 Amazon Elastic Compute Cloud (Amazon EC2) Linux 或 Amazon Elastic Container Service (Amazon ECS),并提供可定制的 AWS CloudFormation 模板和部署配置以供生产使用。AWS Transform 还新增了将 ASP.NET Web Forms UI 现代化为 Blazor 的能力。

有很多内容值得探索,因此在这篇文章中,我将带您初步了解跨越所有层的 AWS Transform 全栈 Windows 现代化功能。

创建全栈 Windows 现代化转换作业
AWS Transform 连接到您的源代码存储库和数据库服务器,分析应用程序和数据库依赖关系,创建现代化批次,并为每个批次编排全栈转换。

要开始使用 AWS Transform,我首先需要完成 AWS Transform 入门用户指南中概述的入门步骤。载入后,我使用自己的凭证登录 AWS Transform 控制台,并创建一个用于全栈 Windows 现代化的作业。

为 Windows 现代化创建新作业
选择 SQL Server Database Modernization 来创建新作业

创建作业后,我完成先决条件。接着,我为 AWS Transform 配置数据库连接器,以便安全访问在 Amazon EC2 和 Amazon Relational Database Service (Amazon RDS) 上运行的 SQL Server 数据库。该连接器可以连接到同一 SQL Server 实例内的多个数据库。

通过添加连接器名称和 AWS 账户 ID 来创建新的数据库连接器

接下来,我设置了一个连接器来连接到源代码存储库。

通过添加连接名称、AWS 账户 ID 和代码连接器 Arn 来添加源代码连接器

此外,我还可以选择是否希望 AWS Transform 部署转换后的应用程序。我选择,并提供用于部署应用程序的目标 AWS 账户 ID 和 AWS 区域。部署选项也可以稍后配置。

选择是否希望部署转换后的应用程序

连接器设置完成后,AWS Transform 会连接到资源并运行验证,以检查 IAM 角色、网络设置和相关的 AWS 资源。

成功验证后,AWS Transform 会发现数据库及其关联的源代码存储库。它可以识别数据库和应用程序之间的依赖关系,以便创建批次,将相关组件一起转换。基于此分析,AWS Transform 会创建一个基于批次的转换计划。

开始评估已发现的数据库和源代码存储库

评估数据库和依赖的应用程序
在评估中,我将查看 AWS Transform 发现的数据库和源代码存储库,并为代码存储库选择相应的分支。AWS Transform 会扫描这些数据库和源代码存储库,然后呈现一个数据库列表及其依赖的 .NET 应用程序和转换复杂度。

开始评估数据库和依赖存储库的批次规划

我选择要进行现代化的目标数据库和存储库。AWS Transform 分析这些选择,并生成一份全面的 SQL 现代化评估报告,其中包含详细的批次计划。我下载报告以审阅提议的现代化计划。该报告包括执行摘要、批次计划、数据库与代码存储库之间的依赖关系以及复杂度分析。

查看 SQL 现代化评估报告

大规模的批次转换
AWS Transform 生成的批次计划为每个批次包含四个步骤。首先,将 SQL Server 模式转换为 PostgreSQL 模式。其次,迁移数据。第三,转换依赖的.NET 应用程序代码,使其与 PostgreSQL 兼容。最后,部署应用程序进行测试。

在转换 SQL Server 模式之前,我可以创建一个新的 PostgreSQL 数据库,也可以选择现有的数据库作为目标数据库。

选择或创建目标数据库

在我选择源数据库和目标数据库后,AWS Transform 会生成转换报告供我审阅。AWS Transform 将 SQL Server 模式转换为 PostgreSQL 兼容的结构,包括表、索引、约束和存储过程。

下载模式转换报告

对于 AWS Transform 无法自动转换的任何模式,我可以在 AWS Database Migration Service (AWS DMS) 控制台中手动处理。或者,我也可以在首选 SQL 编辑器中修复它们,并更新目标数据库实例。

完成模式转换后,我可以选择继续进行数据迁移,这是一个可选步骤。AWS Transform 使用 AWS DMS 将数据从我的 SQL Server 实例迁移到 PostgreSQL 数据库实例。我可以选择稍后在完成所有转换后执行数据迁移,或者通过将测试数据加载到目标数据库来处理这些数据。

选择是否希望迁移数据

下一步是代码转换。我指定一个目标分支,供 AWS Transform 上传转换后的代码构件。AWS Transform 更新代码库,使应用程序与转换后的 PostgreSQL 数据库兼容。

为转换后的代码库指定目标分支目的地

在此版本中,用于全栈 Windows 现代化的 AWS Transform 仅支持 .NET 6 或更高版本 的代码库。对于.NET Framework 3.1+ 中的代码库,我首先使用适用于.NET 的 AWS Transform 将它们移植到跨平台的.NET。我将在下一节中对此进行详细介绍。

转换完成后,我可以查看源分支和目标分支及其代码转换状态。我还可以下载和审阅转换报告。

下载转换报告

现代化包含 UI 层的 .NET Framework 应用程序
我们今天发布的一项主要功能是将 UI 框架从 ASP.NET Web Forms 现代化到 Blazor。这是在现有的将模型-视图-控制器 (MVC) Razor 视图现代化到 ASP.NET Core Razor 视图 支持基础上的新增功能。

如前所述,如果我有一个使用旧版 .NET Framework 的 .NET 应用程序,那么我继续使用适用于.NET 的 AWS Transform 将其移植到跨平台的 .NET。对于 UI 构建在 ASP.NET Web Forms 上的旧版应用程序,AWS Transform 现在可以在移植后端代码的同时,将 UI 层现代化到 Blazor。

适用于.NET 的 AWS Transform 将 ASP.NET Web Forms 项目转换为 ASP.NET Core 上的 Blazor,从而促进 ASP.NET 网站向 Linux 的迁移。在 AWS Transform Web 控制台和 Visual Studio 扩展程序中,适用于.NET 的 AWS Transform 中默认启用 UI 现代化功能。

在现代化过程中,AWS Transform 处理 ASPX 页面、ASCX 自定义控件和代码隐藏文件的转换,将它们实现为服务器端 Blazor 组件,而非 Web Assembly。转换过程中会进行以下项目和文件更改:

转换前 转换后 描述
*.aspx, *.ascx *.razor .aspx 页面和 .ascx 自定义控件变为 .razor 文件
Web.config appsettings.json Web.config 设置变为 appsettings.json 设置
Global.asax Program.cs Global.asax 代码变为 Program.cs 代码
*.master *layout.razor 主文件变成 layout.razor 文件

显示特定项目文件如何转换的图片

适用于.NET 的 AWS Transform 中的其他新功能
除了 UI 移植,适用于.NET 的 AWS Transform 还增加了对更多转换能力的支持,并增强了开发者体验。这些新功能包括:

  • 移植到.NET 10 和.NET 标准 – AWS Transform 现在支持移植到.NET 10,这是于 2025 年 11 月 11 日发布的最新长期支持 (LTS) 版本。它还支持将类库移植到 .NET Standard,这是一套在所有 .NET 实现中通用的 API 的正式规范。此外,AWS Transform 现已在 AWS Toolkit for Visual Studio 2026 中提供。
  • 可编辑的转换报告 – 评估完成后,您现在可以根据您的具体需求和偏好查看和定制转换计划。例如,您可以更新包替换的详细信息。
  • 实时转换更新与预估剩余时间 – 根据代码库的大小和复杂程度,AWS Transform 可能需要一些时间来完成移植。您现在可以实时跟踪转换更新以及预估的剩余时间。
  • 后续步骤 Markdown – 转换完成后,AWS Transform 现在会生成一个包含完成移植所需剩余任务的后续步骤 Markdown 文件。您可以将其作为修改后的计划,使用 AWS Transform 重复转换,或使用 AI 代码助手来完成移植。

注意事项
其他需要注意的事项:

  • AWS 区域 – 用于全栈 Windows 现代化的 AWS Transform 现已在美国东部(弗吉尼亚州北部)区域正式上市。有关区域可用性和未来路线图,请访问按区域列出的 AWS 功能
  • 定价 – 目前,AWS Transform 的 Windows 现代化功能不收取额外费用。使用 AWS Transform 输出在 AWS 账户中创建或继续使用的任何资源将按标准定价计费。有关限制和配额,请参阅 AWS Transform 用户指南
  • 支持的 SQL 服务器版本 – AWS Transform 支持从 SQL Server 2008 R2 至 2022 的转换,包括所有版本(快捷版、标准版和企业版)。SQL Server 必须托管在与 AWS Transform 相同区域的 Amazon RDS 或 Amazon EC2 上。
  • 支持的 Entity Framework 版本 – AWS Transform 支持现代化 Entity Framework 6.3 至 6.5 以及 Entity Framework Core 1.0 至 8.0 的版本。
  • 开始使用 – 要开始使用,请访问适用于全栈 Windows 现代化的 AWS Transform 用户指南

Prasad