Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aws/porting-assistant-dotnet-datastore

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.
https://github.com/aws/porting-assistant-dotnet-datastore

aws csharp csharp-core porting

Last synced: 7 days ago
JSON representation

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.

Awesome Lists containing this project

README

        

## Porting Assistant for .NET
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 the applications to Linux.

### Porting Assistant Dotnet DataStore
This repository contains the location of data store in S3. The data store contains data files that show package and API compatibility with .NET Core and .NET Standard.

* Porting assistant uses these data files for finding the compatibility of packages and their APIs.
* For each NuGet package in nuget.org, a separate Json file is defined. Each file captures compatibility information of all its packaged versions.
* It shows compatibility information for all the NuGet packages available in nuget.org - 211k unique packages, 2.5 millions packaged versions (The numbers could change over time).

### Format of the data file (Json format)
#### Package Details
| Attribute Name | Description |
| :----------- | :---------- |
| Name | Name of the package.
Example: `"Name": "AWSSDK.EC2"`|
| Format | Version of the Json document.
Example: `"Format": "1.0"` |
| Versions | List of packaged versions of this package.
Example: `"Versions": [ "4.0","4.4"]` |
| Targets | Targets: Compatible targets based on packaged versions.
Example: `{ "netcoreapp3.1" => [ "4.0", "4.1"] }, { "netcoreapp5.0 => ["4.0"] }`.
"netcoreapp3.1" is supported for package versions - 4.0 and 4.1. |
| API details | List of APIs. Refer API Details. |
| License details | License details. Refer License Details |

#### API Details
| Attribute Name | Description |
| :------ | :---------- |
| Name | Name of the Api.
Example: `"Name": ".ctor"` |
| Signature | Signature of the Api.
Example: `"Signature": "AutoMapper.AutoMapperConfigurationException.AutoMapperConfigurationException(string)"` |
| Namespace | Namespace.
Example: `"NameSpace": "AutoMapper"` |
| ClassName | Class name.
Example: `"ClassName": "AutoMapper.AutoMapperConfigurationException"` |
| Parameters | Parameters.
Example: `"Parameters": [ "string" ]` |
| ReturnType | Return type.
Example: `"ReturnType": "Void"` |
| Targets | Targets: Compatible targets based on packaged versions.
Example: `{ "netcoreapp3.1" => [ "4.0", "4.1"] }, { "netcoreapp5.0 => ["4.0"] }`.
"netcoreapp3.1" is supported for package versions - 4.0 and 4.1. |

#### License Details
| Attribute Name | Description |
| :------ | :---------- |
| License | License type.
Example: `"License": { "MIT": [ "4.0.0" ], "Apache": [ "4.4.0" ] }` |
| Title | Title of the package.
Example: `"Title": { "This package is used to analyse C# code": [ "4.0.0", "4.4.0" ] }` |
| Url | Url of the license.
Example: `"Url": { "https://licenses.nuget.org/MIT": [ "4.0.0", "4.4.0" ] }` |
| Description | Description of the package.
Example: `"Details": { "This package is used to analyse C# code": [ "4.0.0", "4.4.0" ] } |

## Contributing
* [Adding Recommendations](https://github.com/aws/porting-assistant-dotnet-datastore/blob/master/RECOMMENDATIONS.md)

## Security
* See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.

## Thank you
* [Portability Analyzer](https://github.com/microsoft/dotnet-apiport) - 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.
* [THIRD-PARTY](./THIRD-PARTY) - This project would not be possible without additional dependencies listed in [THIRD-PARTY](./THIRD-PARTY).

## License

This project is licensed under the Apache-2.0 License.