I began my profession as a .NET developer and have seen .NET evolve over the past couple of a long time. Like lots of you, I additionally developed a number of enterprise functions in .NET Framework that ran solely on Home windows. I fondly keep in mind constructing my first enterprise utility with .NET Framework. Though it served us nicely, the expertise panorama has considerably shifted. Now that there’s an open supply and cross-platform model of .NET that may run on Linux, these legacy enterprise functions constructed on .NET Framework should be ported and modernized.
The advantages of porting to Linux are compelling: functions price 40 % much less to function as a result of they save on Home windows licensing prices, run 1.5–2 occasions sooner with improved efficiency, and deal with rising workloads with 50 % higher scalability. Having helped port a number of functions, I can say the hassle is well worth the rewards.
Nonetheless, porting .NET Framework functions to cross-platform .NET is a labor-intensive and error-prone course of. You need to carry out a number of steps, similar to analyzing the codebase, detecting incompatibilities, implementing fixes whereas porting the code, after which validating the adjustments. For enterprises, the problem turns into much more advanced as a result of they may have tons of of .NET Framework functions of their portfolio.
At re:Invent 2024, we previewed this functionality as Amazon Q Developer transformation capabilities for .NET to assist port your .NET functions at scale. The expertise is out there as a unified net expertise for at-scale transformation and inside your built-in improvement surroundings (IDE) for particular person mission and resolution porting.
Now that we’ve integrated your precious suggestions and strategies, we’re excited to announce immediately the overall availability of AWS Remodel for .NET. We’ve additionally added new capabilities to assist initiatives with non-public NuGet packages, port model-view-controller (MVC) Razor views to ASP .NET Core Razor views, and execute the ported unit exams.
I’ll develop on the important thing new capabilities in a second, however let’s first take a fast take a look at the 2 porting experiences of AWS Remodel for .NET.
Giant-scale porting expertise for .NET functions
Enterprise digital transformation is usually pushed by central groups answerable for modernizing tons of of functions throughout a number of enterprise items. Totally different groups have possession of various functions and their respective repositories. Success requires shut coordination between these groups and the applying homeowners and builders throughout enterprise items. To speed up this modernization at scale, AWS Remodel for .NET gives an online expertise that allows groups to attach on to supply code repositories and effectively remodel a number of functions throughout the group. For choose functions requiring devoted developer consideration, the identical agent capabilities can be found to builders as an extension for Visible Studio IDE.
Let’s begin by taking a look at how the online expertise of AWS Remodel for .NET helps port tons of of .NET functions at scale.
Net expertise of AWS Remodel for .NET
To get began with the online expertise of AWS Remodel, I onboard utilizing the steps outlined within the documentation, sign up utilizing my credentials, and create a job for .NET modernization.
AWS Remodel for .NET creates a job plan, which is a sequence of steps that the agent will execute to evaluate, uncover, analyze, and remodel functions at scale. It then waits for me to arrange a connector to hook up with my supply code repositories.
After the connector is in place, AWS Remodel begins discovering repositories in my account. It conducts an evaluation centered on three key areas: repository dependencies, required non-public packages and third-party libraries, and supported mission varieties inside your repositories.
Based mostly on this evaluation, it generates a advisable transformation plan. The plan orders repositories in response to their final modification dates, dependency relationships, non-public bundle necessities, and the presence of supported mission varieties.
AWS Remodel for .NET then prepares for the transformation course of by requesting particular inputs, such because the goal department vacation spot, goal .NET model, and the repositories to be remodeled.
To pick out the repositories to remodel, I’ve two choices: use the advisable plan or customise the transformation plan by deciding on repositories manually. For choosing repositories manually, I can use the UI or obtain the repository mapping and add the personalized listing.
AWS Remodel for .NET mechanically ports the applying code, builds the ported code, executes unit exams, and commits the ported code to a brand new department in my repository. It gives a complete transformation abstract, together with modified recordsdata, check outcomes, and recommended fixes for any remaining work.
Whereas the online expertise helps speed up large-scale porting, some functions might require developer consideration. For these instances, the identical agent capabilities can be found within the Visible Studio IDE.
Visible Studio IDE expertise of AWS Remodel for .NET
Now, let’s discover how AWS Remodel for .NET works inside Visible Studio.
To get began, I set up the newest model of AWS Toolkit extension for Visible Studio and arrange the conditions.
I open a .NET Framework resolution, and within the Resolution Explorer, I see the context menu merchandise Port mission with AWS Remodel for a person mission.
I present the required inputs, such because the goal .NET model and the approval for the brokers to autonomously remodel code, execute unit exams, generate a change abstract, and validate Linux-readiness.
I can evaluation the code adjustments made by the brokers regionally and proceed updating my codebase.
Let’s now discover a few of the key new capabilities added to AWS Remodel for .NET.
Help for initiatives with non-public NuGet bundle dependencies
Throughout preview, solely initiatives with public NuGet bundle dependencies have been supported. With basic availability, we now assist initiatives with non-public NuGet bundle dependencies. This has been probably the most requested options throughout the preview.
The function I actually love is that AWS Remodel can detect cross-repository dependencies. If it finds the supply code of my non-public NuGet bundle, it mechanically transforms that as nicely. Nonetheless, if it may possibly’t find the supply code, within the net expertise, it gives me the pliability to add the required NuGet packages.
AWS Remodel shows the lacking bundle dependencies that should be resolved. There are two methods to do that: I can both use the offered PowerShell script to create and add packages, or I can construct the applying regionally and add the NuGet packages from the packages folder within the resolution listing.
After I add the lacking NuGet packages, AWS Remodel is ready to resolve the dependencies. It’s finest to supply each the .NET Framework and cross platform .NET variations of the NuGet packages. If the cross platform .NET model isn’t accessible, then at a minimal the .NET Framework model is required for AWS Remodel so as to add it as an meeting reference and proceed for transformation.
Unit check execution
Throughout preview, we supported porting unit exams from .NET Framework to cross-platform .NET. With basic availability, we’ve additionally added assist for executing unit exams after the transformation is full.
After the transformation is full and the unit exams are executed, I can see the ends in the dashboard and think about the standing of the exams at every particular person check mission stage.
Transformation visibility and abstract
After the transformation is full, I can obtain an in depth report in JSON format that offers me an inventory of remodeled repositories, particulars about every repository, and the standing of the transformation actions carried out for every mission inside a repository. I can view the pure language transformation abstract on the mission stage to grasp AWS Remodel output with project-level granularity. The abstract gives me with an summary of updates together with key technical adjustments to the codebase.
Different new options
Let’s have a fast take a look at different new options we’ve added with basic availability:
- Help for porting UI layer – Throughout preview, you may solely port the enterprise logic layers of MVC functions utilizing AWS Remodel, and also you needed to port the UI layer manually. With basic availability, now you can use AWS Remodel to port MVC Razor views to ASP.NET Core Razor views.
- Expanded connector assist – Throughout preview, you may join solely to GitHub repositories. Now with basic availability, you may hook up with GitHub, GitLab, and Bitbucket repositories.
- Cross repository dependency – When you choose a repository for transformation, dependent repositories are mechanically chosen for transformation.
- Obtain evaluation report – You’ll be able to obtain an in depth evaluation report of the recognized repositories in your account and personal NuGet packages referenced in these repositories.
- Electronic mail notifications with deep hyperlinks – You’ll obtain e mail notifications when a job’s standing adjustments to accomplished or stopped. These notifications embrace deep hyperlinks to the remodeled code branches for evaluation and continued transformation in your IDE.
Issues to know
Some further issues to know are:
- Areas – AWS Remodel for .NET is mostly accessible immediately within the Europe (Frankfurt) and US East (N. Virginia) Areas.
- Pricing – At present, there’s no further cost for AWS Remodel. Any assets you create or proceed to make use of in your AWS account utilizing the output of AWS Remodel might be billed in response to their commonplace pricing. For limits and quotas, consult with the documentation.
- .NET variations supported – AWS Remodel for .NET helps reworking functions written utilizing .NET Framework variations 3.5+, .NET Core 3.1, and .NET 5+, and the cross-platform .NET model, .NET 8.
- Utility varieties supported – AWS Remodel for .NET helps porting C# code initiatives of the next varieties: console utility, class library, unit exams, WebAPI, Home windows Communication Basis (WCF) service, MVC, and single-page utility (SPA).
- Getting began – To get began, go to AWS Remodel for .NET Consumer Information.
- Webinar – Be part of the webinar Speed up .NET Modernization with Agentic AI to expertise AWS Remodel for .NET via a reside demonstration.
– Prasad
How is the Information Weblog doing? Take this 1 minute survey!
(This survey is hosted by an exterior firm. AWS handles your data as described within the AWS Privateness Discover. AWS will personal the information gathered by way of this survey and won’t share the knowledge collected with survey respondents.)