

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 移植 UI 层代码
<a name="dotnet-porting-ui"></a>

AWS Transform 可以将 ASP.NET 网站的用户界面层移植到与 ASP.NET Core 兼容的 UI 框架，该框架可以在 Linux 上运行。有以下转换可供选择：
+ MVC Razor 用户界面移植
+ 将 Web 表单移植到 Blazor 用户界面

## MVC Razor 用户界面移植
<a name="dotnet-mvc-razor-porting"></a>

ASP.NET 带有 Razor Views 用户界面的 MVC 项目可以移植到 C ASP.NET ore 上的 MVC Razor Views 中，保持在同一个用户界面框架上。虽然与 C ASP.NET ore 之间 ASP.NET 的 Razor 视图类似，但有一些差异需要更改移植代码：
+ ASP.NET MVC Razor 视图使用 System.Web.Mvc 命名空间，并且与.NET 框架紧密相关。
+ ASP.NET Core Razor Views 采用模块化构建 Microsoft.AspNetCore.Mvc，并改进了依赖注入。
+ ASP.NET Core 具有新功能，包括标签助手和视图组件。

AWS Transform 会检测并移植 Razor Views 中常见的不兼容组件和结构。

## 将 Web 表单移植到 Blazor 用户界面
<a name="dotnet-webforms-blazor-porting"></a>

ASP.NET Web 表单用户界面在 C ASP.NET ore 上没有对应的界面。 AWS Transform 可以将 Web 表单用户界面层代码移植到 Core 上 ASP.NET 的 Blazor 服务器 为目标 UI 框架重写了 UI 层代码。

要启用或禁用 Web 表单到 Blazor 用户界面的移植，请选中或清除 “将用户界面 ASP.NET Web 表单转换为 Blazor” 作业设置。

### 转型细节
<a name="dotnet-transformation-details"></a>

您的 Web 表单项目已转换为使用服务器端托管的 Blazor 项目。在转换过程中对项目和文件进行了以下更改：


**文件转换映射**  

| 来源 | 目标 | 说明 | 
| --- | --- | --- | 
| \*.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 | 主文件变为布局.razor 文件 | 

### Post-transformation 项目结构
<a name="dotnet-post-transformation-structure"></a>

转换后，转换后的文件位于以下项目位置：
+ 组件文件夹：所有 razor 组件 (\*.razor) 都放置在与项目.csproj 文件相同级别创建的组件文件夹中。
+ 页面映射：Web 表单页面 (\*.aspx) 转换为 Components/Pages 文件夹结构。
+ 控件映射：Web 表单控件 (\*.ascx) 直接放置在 “组件” 文件夹下。

### 限制和不支持的功能
<a name="dotnet-limitations-unsupported"></a>

目前不支持以下功能。如果您的工作负载使用这些功能，则需要手动移植该代码或在转换后与 AI 代码配套一起移植。
+ .svc 文件（服务文件）
+ .ashx 文件（通用处理程序文件）
+ 服务参考和网络引用（reference.map、reference.cs、.wsdl 文件）
+ .aspx（Web 表单）文件和.cshtml（Razor）文件混合在同一个项目中
+ .NET AWS 转换尚不支持对项目类型的依赖关系
+ Third-party 供应商用户界面 libraries/controls
+ 网站项目

仅支持 Web 应用程序项目（包含.csproj 文件）。要将网站项目转换为 Web 应用程序项目，请参阅 Microsoft 指南[将网站项目转换为 Web 应用程序项目](https://devblogs.microsoft.com/dotnet/converting-a-web-site-project-to-a-web-application-project/)。