dotnet-apiport icon indicating copy to clipboard operation
dotnet-apiport copied to clipboard

Add description of .NET platform targets

Open conniey opened this issue 9 years ago • 3 comments

It's hard to decipher what some of the targets are. It would be nice to add a sentence describing what each target is. (ie. What is the difference between .NET Standard and .NET Core App?)

conniey avatar Oct 14 '16 23:10 conniey

so what is the target that we should use while scanning our applications. I don't understand what to set as target. Mine is an MVC project (webapi), I created it in .NET Core (VS2015), wanted to see what the analyzer will say (I was expecting 100% against the class libraries and mvc project) when I target asp.netcore, but it was not 100% then pointed it to .net standard, again its not 100% and tried .netcore1.0 still not 100%. Don't know what to do with this tool

rajasimhanv avatar Dec 05 '16 21:12 rajasimhanv

@rajasimhanv Hi,

The reason that the results are confusing is because currently we do not analyse APIs in the .NET Framework and ASP.NET together.

When you sent your web application for analysis against ".NET Framework", we checked for API calls in libraries that are part of what the .NET Framework team ships, that is System.*, Microsoft.CSharp, Microsoft.Build, etc. assemblies. APIs like System.Web.Http.ApiController are not part of .NET Framework surface area and are additional components shipped by the ASP.NET team.

The "ASP.NET Core" target only contains the assemblies that are shipped by the ASP.NET team, so on its own is not particularly useful at the moment.

Additionally, many of the ASP.NET Core assemblies were renamed from Microsoft.Owin to Microsoft.AspNetCore.Owin. When we perform an analysis, we compare the API name with its corresponding assembly name. So, there may be some false negatives in the report.

One thing you can do is perform an analysis against the two targets and compare the results to see if at least one of the ".NET Standard" or "ASP.NET Core" columns says that it is supported in the row. If it does, then that API would be available if you wrote your application against ASP.NET Core. Because of the assembly renames, you would want to double check the missing class in http://packagesearch.azurewebsites.net/ to see if it actually is missing in ASP.NET Core. The command is: ApiPort.exe analyze -f <path to binary> -t "ASP.NET Core" -t ".NET Framework" -t ".NET Standard, Version=1.6"

conniey avatar Dec 06 '16 14:12 conniey

@terrajobst Do we have descriptions of the platform targets in the apicatalog?

conniey avatar Jun 05 '17 23:06 conniey

Closing as API Port was deprecated in favor of binary analysis in .NET Upgrade Assistant.

terrajobst avatar Nov 15 '22 23:11 terrajobst