Skip to content

Porting Assistant for .NET is an analysis tool that scans .NET Framework applications and generates a .NET Core compatibility assessment, helping customers port their applications to Linux faster.

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
LICENSE-THIRD-PARTY.txt

aws/porting-assistant-dotnet-visual-studio-ide-extension

Porting Assistant for .NET Visual Studio IDE Extension

Porting Assistant for .NET is an analysis tool that scans .NET Framework applications and generates a .NET Core compatibility assessment, helping customers port their applications to Linux faster.

Porting Assistant for .NET 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.

Porting Assistant for .NET Visual Studio IDE Extension package provides a Visual Studio IDE extension implementation to analyze .NET applications, find incompatibilities, and port applications to .NET Core. Please note that current support for porting is limited.

For more information about Porting Assistant for .NET Visual Studio IDE Extension and to try the tool, please refer to the documentation: https://aws.amazon.com/porting-assistant-dotnet/

Getting Started

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?

Prerequisites

We require the following:

  • Visual Studio 2019 or later
  • .NET 6

Steps to build a dev vsix package

  • Unload the Visual Studio Client project you do not want to build for. For example if you want to install on Visual Studio 2022, unload the Porting AssistantVSExtensionClient2019 project.
  • Build the solution using the release configuration
  • Find the dev vsix package in the bin\Release directory of the Visual Studio client version you are building for
    • PortingAssistantVSExtensionClient2019\bin\Release
    • PortingAssistantVSExtensionClient2022\bin\Release
  • Run the vsix to install the extension

Getting started with development

  • Clone the Git repository.
  • Install git-secrets https://github.com/awslabs/git-secrets
  • Run git config core.hooksPath hooks
  • Load the solution PortingAssistantVSExtension.sln using Visual Studio or Rider.
  • Unload the Visual Studio Client project you do not want to build for. For example if you want to install on Visual Studio 2022, unload the Porting AssistantVSExtensionClient2019 project.
  • Create a "Run/Debug" Configuration for the "PortingAssistantVSExtension.sln" solution.
  • Select 'Set Startup Projects'>'Multiple Startup Project' and set one of the following combinations as startup projects:
    • PortingAssistantExtensionServer and PortingAssistantVSExtensionClient2019
    • PortingAssistantExtensionServer and PortingAssistantVSExtensionClient2022
  • Provide command line arguments for configuration, then run the application.
  • It should start a new Visual Studio Client with the Extension setup.
  • Open the solution to analyze/port in the new Visual Studio Client.

Other Packages

PortingAssistant.Client: PortingAssistant.Client 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.

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.

Learn more about developing extensions for Visual Studio

Thank you

  • Omnisharp - Omnisharp is an implementation of the Language Server Protocol written entirely in C# for .NET.
  • 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.

About

Porting Assistant for .NET is an analysis tool that scans .NET Framework applications and generates a .NET Core compatibility assessment, helping customers port their applications to Linux faster.

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
LICENSE-THIRD-PARTY.txt

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published