Generera efterlevnadsrapporter för en kommenterad molnbaserad app

Slutförd

Efterlevnadsavdelningar måste kunna granska kod- och efterlevnadsrapporter för att säkerställa att programmet är kompatibelt med företagets principer. Med .NET-efterlevnadsramverket kan du generera rapporter som visar programmets efterlevnadsstatus.

Vad är en efterlevnadsrapport?

En efterlevnadsrapport kan genereras vid kompileringstillfället. .NET-efterlevnadsramverket genererar en JSON-fil som innehåller information om de dataklassificeringar och redigeringsmetoder som används i programmet.

{
    "Name": "DataEntities",
    "Types": [
        {
            "Name": "DataEntities.Order",
            "Members": [
                {
                    "Name": "CustomerAddress",
                    "Type": "string",
                    "File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\DataEntities\\Order.cs",
                    "Line": "25",
                    "Classifications": [
                        {
                            "Name": "EUIIData"
                        }
                    ]
                },
                {
                    "Name": "CustomerName",
                    "Type": "string",
                    "File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\DataEntities\\Order.cs",
                    "Line": "21",
                    "Classifications": [
                        {
                            "Name": "EUIIData"
                        }
                    ]
                },
    ...

Rapporten ovan är ett exempel från eShopLite.DataEntities projektet. Den visar att Order klassen har två egenskaper som klassificeras som EUIIData.

{
    "Name": "Store",
    "Types": [
        {
            "Name": "Store.Services.Log",
            "Logging Methods": [
                {
                    "Name": "LogOrders",
                    "Parameters": [
                        {
                            "Name": "logger",
                            "Type": "Microsoft.Extensions.Logging.ILogger",
                            "File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\Store\\Services\\ProductService.cs",
                            "Line": "103"
                        },
                        {
                            "Name": "order",
                            "Type": "DataEntities.Order",
                            "File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\Store\\Services\\ProductService.cs",
                            "Line": "103"
                        }
                    ]
                }
            ]
        }
    ]
}

Rapporten ovan är ett exempel från eShopLite.Store projektet. Den visar att LogOrders metoden i ProductService klassen tar ett Order objekt som en parameter för loggning.

Så här genererar du en efterlevnadsrapport

Det finns två steg som du måste utföra för varje projekt som du vill generera en rapport för:

  1. Microsoft.Extensions.AuditReports Lägg till NuGet-paketet i varje projekt.

  2. Lägg till två poster i PropertyGroup avsnittet i csproj-projektfilen :

    <GenerateComplianceReport>true</GenerateComplianceReport>
    <ComplianceReportOutputPath>$(MSBuildThisFileDirectory)\path to folder location</ComplianceReportOutputPath>
    

    Den första växlar genereringen av efterlevnadsrapporten till. Den andra anger sökvägen till mappen där rapporten ska genereras. Filnamnet är ComplianceReport.json.

Med dessa uppdateringar genererar körning dotnet build i lösningsmappen en efterlevnadsrapport för varje projekt som har GenerateComplianceReport egenskapen inställd på true.