All Projects → aws → porting-assistant-dotnet-client

aws / porting-assistant-dotnet-client

Licence: Apache-2.0 license
The 'Porting Assistant for .NET' is a standalone compatibility analyzer that helps customers to port their .NET Framework (“.NET”) applications to .NET Core on Linux.

Programming Languages

C#
18002 projects
shell
77523 projects

Projects that are alternatives of or similar to porting-assistant-dotnet-client

windicss-analysis
🔍 A visual analyzer for Windi CSS
Stars: ✭ 120 (-1.64%)
Mutual labels:  analyzer
active endpoint
[ARCHIVE] 🔧 ActiveEndpoint is middleware for Rails application that collect and analize request and response per request for route endpoint. It works with minimum affecting to application response time.
Stars: ✭ 13 (-89.34%)
Mutual labels:  analyzer
degiro-trading-tracker
Simplified tracking of your investments
Stars: ✭ 16 (-86.89%)
Mutual labels:  analyzer
churnalizer
Analyze your Ruby app for Churn vs Complexity
Stars: ✭ 17 (-86.07%)
Mutual labels:  analyzer
ApkCompare
A tool to compare 2 version APKs to find out files change. 比较两个版本的APK以找出文件大小变化的工具
Stars: ✭ 68 (-44.26%)
Mutual labels:  analyzer
pronto-reek
Pronto runner for Reek, code smell detector for Ruby
Stars: ✭ 27 (-77.87%)
Mutual labels:  analyzer
flvAnalyser
FLV v1.0 analyser
Stars: ✭ 76 (-37.7%)
Mutual labels:  analyzer
hollow-knight-completion-check
App for reading and analyzing a Hollow Knight save file. Shows what remains to do for full 112% Game Completion, Achievements, Hunter's Journal, Collectibles, True Completion %. Includes a self-designed Hint system.
Stars: ✭ 23 (-81.15%)
Mutual labels:  analyzer
flutter ast
Flutter and Dart AST Analyzer/Parser
Stars: ✭ 87 (-28.69%)
Mutual labels:  analyzer
custom-bytecode-analyzer
Java bytecode analyzer customizable via JSON rules
Stars: ✭ 66 (-45.9%)
Mutual labels:  analyzer
spring-startup-analysis
Simple module to analyse bean construction in Java Spring
Stars: ✭ 76 (-37.7%)
Mutual labels:  analyzer
iDeviceLogAnalyzer-public
A quick and easy panic log extraction and analysis tool for iDevices.
Stars: ✭ 105 (-13.93%)
Mutual labels:  analyzer
pronto-flay
Pronto runner for Flay, structural similarities analyzer
Stars: ✭ 18 (-85.25%)
Mutual labels:  analyzer
sonarlint4netbeans
SonarLint integration for Apache Netbeans
Stars: ✭ 23 (-81.15%)
Mutual labels:  analyzer
audria
audria - A Utility for Detailed Ressource Inspection of Applications
Stars: ✭ 35 (-71.31%)
Mutual labels:  analyzer
lindera
A morphological analysis library.
Stars: ✭ 226 (+85.25%)
Mutual labels:  analyzer
AndroidApkAnalyzer
Android application for analyzing installed apps
Stars: ✭ 159 (+30.33%)
Mutual labels:  analyzer
pingnoo
An open-source cross-platform traceroute/ping analyser.
Stars: ✭ 149 (+22.13%)
Mutual labels:  analyzer
audio-tag-analyzer
Extracts metadata music metadata found in audio files
Stars: ✭ 18 (-85.25%)
Mutual labels:  analyzer
tracked
Header-only C++17 library enables to track object instances with varied policies and gives you to control exceptions on policy rule break.
Stars: ✭ 12 (-90.16%)
Mutual labels:  analyzer

Porting Assistant for .NET

Porting Assistant for .NET SDK

Build Test

Porting Assistant for .NET provides tools such as Porting Assistant for .NET standalone tool and Porting Assistant for .NET Visual Studio IDE Extension. Both tools provide functionality that scans .NET Framework applications and generates a .NET Core compatibility assessment, helping customers port their applications to Linux faster.

Porting Assistant for .NET tools quickly scans .NET Framework applications to identify incompatibilities with .NET Core, finds known replacements, and generates detailed compatibility assessment reports. This reduces the manual effort involved in modernizing applications to Linux.

PortingAssistant.Client SDK package provides interfaces to analyze .NET applications, find the incompatibilities, and port applications to .NET Core. Please note that current support for porting is limited.

For more information about Porting Assistant and to try the tool, please refer to the documenation: https://aws.amazon.com/porting-assistant-dotnet/

Getting Started

   var solutionPath = "/user/projects/TestProject/TestProject.sln";
   var outputPath = "/tmp/";
   
   /* Create configuration object */
   var configuration = new PortingAssistantConfiguration();

   /* Create PortingAssistatntClient object */
   var portingAssistantBuilder = PortingAssistantBuilder.Build(configuration, logConfig => logConfig.AddConsole());

   var portingAssistantClient = portingAssistantBuilder.GetPortingAssistant();

   /* For exporting the assessment results into a file */
   var reportExporter = portingAssistantBuilder.GetReportExporter();

   var analyzerSettings = new AnalyzerSettings
   {
       TargetFramework = "netcoreapp3.1",
    };

   /* Analyze the solution */
   var analyzeResults =  await portingAssistantClient.AnalyzeSolutionAsync(solutionPath, analyzerSettings);

   /* Generate JSON output */
   reportExporter.GenerateJsonReport(analyzeResults, outputPath);
   

   var filteredProjects = new List<string> {"projectname1", "projectname2"};

   /* Porting the application to .NET Core project */
   var projects = analyzeResults.SolutionDetails.Projects.Where(p => !filteredProjects.Contains(p.ProjectName)).ToList();
   var PortingProjectResults = analyzeResults.ProjectAnalysisResults
       .Where(project => !filteredProjects.Contains(project.ProjectName));

   var FilteredRecommendedActions = PortingProjectResults
       .SelectMany(project => project.PackageAnalysisResults.Values
       .Where(package =>
       {
            var comp = package.Result.CompatibilityResults.GetValueOrDefault(analyzerSettings.TargetFramework);
            return comp.Compatibility != Compatibility.COMPATIBLE && comp.CompatibleVersions.Count != 0;
        })
        .SelectMany(package => package.Result.Recommendations.RecommendedActions));

   var portingRequest = new PortingRequest
   {
       Projects = projects, //By default all projects are ported
       SolutionPath = solutionPath,
       TargetFramework = analyzerSettings.TargetFramework,
       RecommendedActions = FilteredRecommendedActions.ToList(),
       IncludeCodeFix = true
   };

   var portingResults =  portingAssistantClient.ApplyPortingChanges(portingRequest);

   /* Generate JSON output */
   reportExporter.GenerateJsonReport(portingResults, solutionPath, outputPath);          

Getting Help

Please use these community resources for getting help. We use the GitHub issues for tracking bugs and feature requests.

How to use this code?

  • Clone the Git repository.
  • Load the solution PortingAssistant.Client.sln using Visual Studio or Rider.
  • Create a "Run/Debug" Configuration for the "PortingAssistant.Client" project.
  • Provide command line arguments for a solution path and output path, then run the application.

Other Packages

Codelyzer: Porting Assistant uses Codelyzer to get package and API information used for finding compatibilities and replacements.

Porting Assistant for .NET Datastore: The repository containing the data set and recommendations used in compatibility assessment.

Code translation assistant: The repository used to apply code translations

Contributing

  • Adding Recommendations

  • We welcome community contributions and pull requests. See CONTRIBUTING for information on how to set up a development environment and submit code.

Additional Resources

Porting Assistant for .NET

AWS Developer Center - Explore .NET on AWS Find all the .NET code samples, step-by-step guides, videos, blog content, tools, and information about live events that you need in one place.

AWS Developer Blog - .NET Come see what .NET developers at AWS are up to! Learn about new .NET software announcements, guides, and how-to's.

Thank you

  • CsprojToVs2017 - CsprojToVs2017 helps convert project files from from the legacy format to the Visual Studio 2017/2019 format.
  • Buildalyzer - Buildalyzer lets you run MSBuild from your own code and returns information about the project.
  • Nuget.Client - Nuget.Client provides tools to interface with Nuget.org and parse Nuget configuration files.
  • Portability Analyzer - Portability Analyzer analyzes assembly files to access API compatibility with various versions of .NET. Porting Assistant for .NET makes use of recommendations and data provided by Portability Analyzer.
  • The .NET Compiler Platform ("Roslyn") - Roslyn provides open-source C# and Visual Basic compilers with rich code analysis APIs.
  • .NET SDKs - .NET SDKs is a set of libraries and tools that allow developers to create .NET applications and libraries.
  • THIRD-PARTY - This project would not be possible without additional dependencies listed in THIRD-PARTY.

License

Libraries in this repository are licensed under the Apache 2.0 License.

See LICENSE and NOTICE for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].