OpSolutions.ConfigurationUi
1.0.0-beta9
dotnet add package OpSolutions.ConfigurationUi --version 1.0.0-beta9
NuGet\Install-Package OpSolutions.ConfigurationUi -Version 1.0.0-beta9
<PackageReference Include="OpSolutions.ConfigurationUi" Version="1.0.0-beta9" />
paket add OpSolutions.ConfigurationUi --version 1.0.0-beta9
#r "nuget: OpSolutions.ConfigurationUi, 1.0.0-beta9"
// Install OpSolutions.ConfigurationUi as a Cake Addin
#addin nuget:?package=OpSolutions.ConfigurationUi&version=1.0.0-beta9&prerelease
// Install OpSolutions.ConfigurationUi as a Cake Tool
#tool nuget:?package=OpSolutions.ConfigurationUi&version=1.0.0-beta9&prerelease
ConfigurationUI
ConfigurationUI is .Net library for managing Asp.Net Core configuration.
It can parse configuration schema from arbitrary .Net type and generate web-page for displaying/editing configuration in
user-friendly manner.
ConfigurationUI is fully integrated with with built-in asp.net core
configuration Microsoft.Extensions.Configuration
, so developers don't have to change existing code, just
continue using well-known patterns: OptionsMonitor<T>
, IConfiguration
, etc ...
Installation & Setup
Using ConfigurationUI is very simple, it is done in 4 steps:
- Install nuget package OpSolutions.ConfigurationUI
- Create class(es) for describing your application configuration (if not already have):
public class Settings { public string StringSetting { get; set; } public int IntegerSetting { get; set; } public bool BooleanSetting { get; set; } public SettingSubSection SettingsSubSection { get; set; } } public class SettingSubSection { public string StringSetting { get; set; } public MyEnum EnumSetting { get; set; } public bool BooleanSetting { get; set; } public string[] ArraySetting { get; set; } } public enum MyEnum { FirstValue, SecondValue }
- Modify Program.cs and insert
.AddConfigurationUi()
method call:public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .AddConfigurationUi<Settings>("settings.json") // insert this line .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); }
- Modify
Startup.Configure
method and add configuration middleware withapp.UseConfigurationUi("/configuration")
:public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseConfigurationUi("/configuration"); // insert this line app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
It's done. Navigate to /configuration
in browser and you will see configuration editor page:
Important Notes
- Library does not support authorization out of box yet. Make sure to place some custom authorization/authentication
middleware before
app.UseConfigurationUi("/configuration");
so configuration endpoint will not be accessible to everyone - Currently web editor does not support or may not work as expected for following .Net types:
- Dictionaries
FlagsAttribute
decorated enums- Nullable value types
Any Contribution, Feature Request or Bug Report is welcome.
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.1 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETStandard 2.1
- Microsoft.AspNetCore.Http.Abstractions (>= 2.2.0)
- Microsoft.Extensions.Configuration (>= 5.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 5.0.0)
- Microsoft.Extensions.Configuration.Json (>= 5.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 5.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 5.0.0)
- Newtonsoft.Json (>= 13.0.1)
- NJsonSchema (>= 9.14.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0-beta9 | 119 | 9/23/2021 |
1.0.0-beta8 | 107 | 9/17/2021 |
1.0.0-beta7 | 128 | 9/16/2021 |
1.0.0-beta6 | 117 | 9/15/2021 |
1.0.0-beta5 | 127 | 9/15/2021 |
1.0.0-beta4 | 134 | 9/15/2021 |
1.0.0-beta3 | 143 | 9/15/2021 |
1.0.0-beta2 | 130 | 9/15/2021 |
1.0.0-beta | 113 | 9/14/2021 |