.NET on AWS Blog

Modernize ASP.NET MVC Razor UI with AWS Transform

AWS Transform is an agentic service that accelerates modernization, including .NET applications. With it, you can transform .NET Framework Windows applications to cross-platform .NET and reduce operating costs up to 40% by running on Linux. For ASP.NET web applications, AWS Transform can port the UI layer to ASP.NET Core. In this post, I’ll explain how to transform ASP.NET MVC projects with Razor Views UI to modern .NET.

The ASP.NET MVC Razor Views engine is supported on both ASP.NET and ASP.NET Core, so you can remain on the same UI framework when modernizing (“apples to apples” porting). However, there are some differences that require code changes, including the following:

  • ASP.NET MVC Razor Views use the System.Web.Mvc namespace and are closely tied to the .NET Framework.
  • ASP.NET Core Razor Views are modular, built on Microsoft.AspNetCore.Mvc, with improved dependency injection.
  • ASP.NET Core has new features, including Tag Helpers and View Components.

In the walkthrough that follows, I’ll review the steps to transform MVC Music Store, a public MVC Razor sample, from ASP.NET to ASP.NET Core using AWS Transform in Visual Studio 2026. When we’re done, we’ll have transformed the .NET Framework 4 web application to ASP.NET Core on .NET 10, including the Razor Views UI layer.

Walkthrough

Prerequisites

To follow along and perform the walkthrough on your own machine, be sure you have the following:

  1. A Windows development machine.
  2. Visual Studio 2026 is installed.
  3. AWS Toolkit is installed from Visual Studio Marketplace (if already installed, confirm you are on the latest version).
  4. AWS Transform setup is complete.
  5. An IAM Identity Center user credential for AWS Transform.

Step 1: Setup

In this step, you’ll download the sample application and get familiar with it.

  1. Download the MVC Music Store sample from aws-samples/dotnet-modernization-music-store.
  2. Open the solution in Visual Studio.
  3. Confirm the MvcMusicStore project is a .NET Framework 4 project, and that it builds, as shown in Figure 1.
Screenshot of Visual Studio project properties showing .NET Framework version .

Figure 1: MVC Music Store in Visual Studio

  1. Start the app with F5 or Debug > Start Debugging to see its appearance and behavior, then stop debugging. It should look like Figure 2.
Screenshot of original app running in browser

Figure 2: Music Store running in browser

Step 2: Sign in to AWS Transform

Next, we’ll sign in to AWS Transform.

  1. From the Visual Studio menu, select Extensions > AWS Transform > Getting Started.
  2. On the AWS Transform panel, sign-in to AWS Transform with your IAM Identity Center credential. Once you complete sign-in, Connected with IAM Identity Center should appear in the panel, as shown in Figure 3.
Screenshot of AWS Toolkit Getting Started screen with AWS Transform panel.

Figure 3: Signed in to AWS Transform

Step 3: Transform the application

Now we’re ready to transform. Let’s get a transformation job started.

  1. Open a .cs code file from the solution in the code editor, such as HomeController.cs.
  2.  In Solution Explorer, right-click the MvcMusicStore project and choose Port project with AWS Transform.
  3. On the Port project dialog, shown in Figure 4, create or choose a workspace and set the .NET target to net10.0.
Screenshot of port project with AWS Transform dialog showing target of .NET 10.

Figure 4: Port project dialog

  1. Choose Start to begin the transformation. You’ll soon see a notification at the top confirming that a transformation job is in progress, as shown in Figure 5. Job progress will be shown in the AWS Transform Hub pane.
Screenshot of Visual Studio with transformation job started notification.

Figure 5: Transformation job started

  1. After a few minutes, AWS Transform will ask if you want to review a transformation plan. Choose Continue with Transformation.
  2. As the code is transformed, monitor transformation progress and view details in the AWS Transform Hub window, shown in Figure 6.
Screenshot of AWS Transform Hub showing transformation progress steps and details.

Figure 6: AWS Transformation Hub

  1. Wait for the transformation to complete. When it finishes, a Your transformation is completed notification will appear at the top of Visual Studio, shown in Figure 7.
Screenshot of porting complete notification.

Figure 7: Transformation complete

Step 4: Review the transformation report

Let’s understand what AWS Transform did, and why.

  1. Choose View code transformation summary and then Download transformation report.
  2. Open the HTML transformation report and review the description of what changed, shown in Figure 8. In our case, we see UI-related changes under the MVC Framework and View Rendering sections.
Transformation report summarizing transformation changes.

Figure 8: Transformation Report

  1. Choose View code transformation summary and then View diffs. A list of file changes appears.
  2. Review the file changes to see what was added, removed, and modified. Give special attention to modifications to the .cshtml files. For example, in _Layout.cshtml, Html.RenderAction methods have become Html.PartialAsync, shown in Figure 9.
  3. Also note using statement changes to controller files, which no longer use System.Web.Mvc and instead use Microsoft.AspNetCore namespaces.
Screenshot of code diff comparison in Visual Studio.

Figure 9: Reviewing code diff changes

Step 5: Apply the code changes

Now, we’ll apply the code changes and examine the updated application.

  1. On the View diff list, choose Select all and then Apply changes. The file changes are applied to your project, and Visual Studio prompts you to reload all files.
  2. In Solution Explorer, check the project properties. MvcMusicStore is now a .NET 10 project, as shown in Figure 10.
  3. Next, build the solution. In our case, there were no build errors.
Screenshot of Visual Studio showing project is now .NET version 10.

Figure 10: Application is .NET 10 and builds successfully

Step 6: Complete porting

AWS Transform does the heavy lifting in modernizing your code, but a transformed application is not necessarily complete, even if it builds. As the developer, your role is to review the application for correctness and complete any remaining porting tasks. There may be build errors or runtime errors to address. In my example, I had runtime errors and used an AI code companion to resolve them. If the project does not build, review the transformation report from Step 4, which provides details and advice about build errors as well as a downloadable Next Steps prompt.

I added “Core” to the _Layout.cshtml page to display the new platform. You can see the transformed ASP.NET Core code running on .NET 10 in Figure 11.

Screenshot of transformed application running.

Figure 11: Transformed application running in browser

Conclusion

AWS Transform provides full-stack Windows modernization, including ASP.NET UI porting to ASP.NET Core. In this post, we learned how to port MVC Razor Views UI to ASP.NET Core. For more information about AWS Transform, refer to the AWS Transform User Guide.

David Pallmann

David Pallmann

David Pallmann is a senior product manager on the AWS Transform team who focuses on the .NET developer experience. David has previously served in engineering, consulting, product, and tech manager roles. He worked on WCF, and later created Neuron ESB, the first .NET-based enterprise service bus. Follow him on X at @davidpallmann.