Earlier this year in May, AWS unveiled the general availability of AWS Transform for .NET, marking a significant advancement in agentic AI services aimed at modernizing .NET applications at scale. During the initial adoption phase, feedback indicated a desire for broader modernization capabilities, specifically targeting SQL Server and legacy UI frameworks. Recognizing that applications often adhere to a three-tier architecture—presentation, application, and database tiers—developers expressed the need for a cohesive solution that could facilitate transformations across all layers in a synchronized manner.
Introducing AWS Transform for Full-Stack Windows Modernization
In response to this feedback, AWS is pleased to announce AWS Transform for full-stack Windows modernization. This service aims to alleviate the burdens associated with complex modernization tasks throughout the Windows application stack. Users can now identify dependencies among applications and databases, allowing for a coordinated modernization process through a unified interface.
AWS Transform enhances the efficiency of full-stack Windows modernization by up to five times, covering application, UI, database, and deployment layers. It facilitates the migration of .NET Framework applications to cross-platform .NET and transitions SQL Server databases to Amazon Aurora PostgreSQL-Compatible Edition, complete with intelligent stored procedure conversion and necessary application code refactoring. For validation and testing, AWS Transform deploys applications to Amazon Elastic Compute Cloud (Amazon EC2) or Amazon Elastic Container Service (Amazon ECS), while offering customizable AWS CloudFormation templates and deployment configurations for production environments. Notably, AWS Transform now includes features to modernize ASP.NET Web Forms UI to Blazor.
To illustrate the capabilities of AWS Transform for full-stack Windows modernization, I will provide an overview of the transformation process across all layers.
Create a Full-Stack Windows Modernization Transformation Job
AWS Transform seamlessly connects to source code repositories and database servers, analyzing dependencies to create modernization waves and orchestrate transformations for each wave. To initiate the process, I follow the onboarding steps detailed in the getting started with AWS Transform user guide. Upon completing onboarding, I log into the AWS Transform console and create a job for full-stack Windows modernization.
After job creation, I fulfill the prerequisites and configure the database connector to securely access SQL Server databases hosted on Amazon EC2 and Amazon Relational Database Service (Amazon RDS). This connector can accommodate multiple databases within a single SQL Server instance.
Next, I set up a connector for my source code repositories. Additionally, I have the option to enable AWS Transform to deploy the transformed applications, providing the target AWS account ID and AWS Region for deployment, with the flexibility to configure this option later.
Once the connectors are established, AWS Transform connects to the resources and conducts validation to ensure IAM roles, network settings, and related AWS resources are correctly configured. Following successful validation, AWS Transform identifies databases and their corresponding source code repositories, mapping dependencies to create waves for transforming related components together. This analysis culminates in the generation of a wave-based transformation plan.
Assessing Database and Dependent Applications
During the assessment phase, I review the databases and source code repositories identified by AWS Transform, selecting the appropriate branches for code repositories. AWS Transform scans these resources, presenting a comprehensive list of databases alongside their dependent .NET applications and transformation complexity.
I then select the target databases and repositories for modernization. AWS Transform analyzes these selections and produces a detailed SQL Modernization Assessment Report, which includes an executive summary, wave plan, dependencies, and complexity analysis. This report is available for download, allowing for thorough review of the proposed modernization strategy.
Wave Transformation at Scale
The wave plan generated by AWS Transform consists of four key steps for each wave: converting the SQL Server schema to PostgreSQL, migrating the data, transforming dependent .NET application code for PostgreSQL compatibility, and deploying the application for testing. Before schema conversion, I can opt to create a new PostgreSQL database or select an existing one as the target database.
Upon selection of source and target databases, AWS Transform generates conversion reports for review, detailing the conversion of SQL Server schema into PostgreSQL-compatible structures, including tables, indexes, constraints, and stored procedures. In cases where automatic conversion is not feasible, I can manually address these issues through the AWS Database Migration Service (AWS DMS) console or my preferred SQL editor.
Following schema conversion, I can proceed with data migration, an optional step where AWS Transform utilizes AWS DMS to transfer data from the SQL Server instance to the PostgreSQL database. This migration can be executed immediately or deferred until all transformations are complete, allowing for the use of test data in the target database.
The next phase involves code transformation, where I designate a target branch for AWS Transform to upload the transformed code artifacts. The service updates the codebase to ensure compatibility with the converted PostgreSQL database.
With this release, AWS Transform for full-stack Windows modernization exclusively supports codebases in .NET 6 or later. For legacy applications built on .NET Framework 3.1 and above, I must first utilize AWS Transform for .NET to port them to cross-platform .NET.
Upon completion of the conversion, I can access the source and target branches along with their respective code transformation statuses and download the transformation report for further examination.
Modernizing .NET Framework Applications with UI Layer
A notable feature introduced today is the modernization of UI frameworks from ASP.NET Web Forms to Blazor, complementing existing support for transforming model-view-controller (MVC) Razor views to ASP.NET Core Razor views. For legacy .NET Framework applications, AWS Transform now facilitates the modernization of the UI layer to Blazor while concurrently porting the backend code.
AWS Transform for .NET effectively converts ASP.NET Web Forms projects to Blazor on ASP.NET Core, enabling the migration of ASP.NET websites to Linux. This UI modernization feature is enabled by default within AWS Transform for .NET, accessible through both the AWS Transform web console and the Visual Studio extension.
During the modernization process, AWS Transform manages the conversion of ASPX pages, ASCX custom controls, and code-behind files, implementing them as server-side Blazor components rather than web assembly. The transformation entails specific project and file changes, as outlined in the following table:
| From | To | Description |
| *.aspx, *.ascx | *.razor | .aspx pages and .ascx custom controls become .razor files |
| Web.config | appsettings.json | Web.config settings become appsettings.json settings |
| Global.asax | Program.cs | Global .asax code becomes Program.cs code |
| *.master | *layout.razor | Master files become layout.razor files |
Other New Features in AWS Transform for .NET
In addition to UI porting, AWS Transform for .NET has introduced a range of new transformation capabilities and enhancements to the developer experience:
- Port to .NET 10 and .NET Standard – AWS Transform now supports porting to .NET 10, the latest Long-Term Support (LTS) release, alongside .NET Standard for class libraries.
- Editable Transformation Report – Users can now view and customize the transformation plan post-assessment, tailoring it to specific requirements.
- Real-Time Transformation Updates – AWS Transform provides real-time tracking of transformation progress, including estimated remaining time based on codebase size and complexity.
- Next Steps Markdown – After transformation completion, AWS Transform generates a markdown file outlining remaining tasks to finalize the porting process.
Things to Know
- AWS Regions – AWS Transform for full-stack Windows modernization is now generally available in the US East (N. Virginia) Region.
- Pricing – Currently, there is no added charge for the Windows modernization features of AWS Transform; standard pricing applies to any resources created or utilized in your AWS account.
- Supported SQL Server Versions – AWS Transform supports SQL Server versions from 2008 R2 to 2022, across all editions, provided they are hosted on Amazon RDS or Amazon EC2 within the same Region as AWS Transform.
- Supported Entity Framework Versions – The service supports modernization of Entity Framework versions 6.3 through 6.5 and Entity Framework Core 1.0 through 8.0.
- Getting Started – For further details, visit the AWS Transform for full-stack Windows modernization User Guide.