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).
3 Réponses :
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
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.
Il y a 3 façons,
Il suffit de les ranger dans votre appsettings.json ou dans un environnement variables.
Pour la mise en scène / la production,
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.
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.
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", }
Comment avez-vous modifié les paramètres lors de l'exécution, puis les avez-vous réenregistrés dans un fichier?
pouvez-vous définir ce que signifiait l'état?