2
votes

Quelle est la manière .NET Core de stocker les paramètres d'application?

Je développe une application multiplateforme (win / mac / linux) et je cherche à stocker l'état de mon application. Quelle est la méthode recommandée pour .NET Core pour ce faire?

J'ai fouillé dans la documentation et la chose la plus proche que j'ai trouvée était this , qui est destiné à Visual Studio / .NET Framework (et je suis sur VS Code).


1 commentaires

pouvez-vous définir ce que signifiait l'état?


3 Réponses :


0
votes

Comme décrit ici , vous pouvez utiliser appsettings.json , qui est généré et référencé dans le nouveau modèle de projet dans la commande dotnet new


1 commentaires

Cependant, je n'utilise pas ASP.NET, j'écris une application GUI .NET - en utilisant le QML multiplateforme pour l'interface utilisateur, car aucune solution d'interface utilisateur Windows n'est multiplateforme.



0
votes

Il y a 3 façons,

  1. UNIQUEMENT pour l'hôte local

Il suffit de les ranger dans votre appsettings.json ou dans un environnement variables.

Pour la mise en scène / la production,

  1. Azure Key Vault

En utilisant Azure Key Vault et le package NuGet Microsoft.Extensions.Configuration.AzureKeyVault, vous serez en mesure de stocker les configurations pour vos projets de la meilleure façon possible dans l'environnement réel .

Il vous suffit ensuite de l'injecter dans,

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
 WebHost.CreateDefaultBuilder(args)
 .ConfigureAppConfiguration((context, config) =>
 {
     var root = config.Build();
     config.AddAzureKeyVault(
        $”https://{root["KeyVault:Vault"]}.vault.azure.net/",
        root[“KeyVault:ClientId”],
        root[“KeyVault:ClientSecret”]);
 })
 .UseStartup<Startup>();

Bien que vous deviez toujours cacher ces 3 variables, Azure a Azure AD pour appliquer l'accès uniquement à Applications spécifiées. Par conséquent, vous devez enregistrer une application sous Azure AD pour que cela fonctionne. Il existe également des fonctionnalités restrictives qui vous aideront à mieux sandbox Azure Key Vault.

  1. Stockages Vault existants

Dernier point mais non le moindre, le dernier moyen consiste à utiliser les options de stockage de coffre existantes telles que HashiCorp. Des bibliothèques telles que https://github.com/rajanadar/VaultSharp vous aideront à l'implémenter rapidement et efficacement . Cela vous convient si vous utilisez principalement un fournisseur non Azure pour vos serveurs.


0 commentaires

0
votes

Vous pouvez utiliser le ConfigurationBuilder du package Microsoft.Extensions.Configuration nuget

Bien que les documents soient destinés à ASP Core, vous devriez pouvoir les utiliser dans votre application .Net Core habituelle.

Create settings.json:

var configuration = new ConfigurationBuilder()
    .AddJsonFile("settings.json")
    .Build();

// get the values from the settings.json
var mySetting = configuration["mysetting"];
Console.WriteLine(mySetting);

Et utilisez-le:

{
    "mysetting": "value",
}


1 commentaires

Comment avez-vous modifié les paramètres lors de l'exécution, puis les avez-vous réenregistrés dans un fichier?