Konfiguracja - framework

0

Witam
Czy znacie coś w rodzaju frameworka czy komponentu do konfiguracji?
Np. aplikacja ma kilkadziesiąt różnych parametrów (różne typy proste, silne typowanie, listy itp) i chciałbym to przechowywać w bazie danych i to jeszcze z informacją czy dotyczy usera czy aplikacji.
Wydaje i się, ze to tak standardowe, ze powinno istnieć a nie mogę znaleźć. Komercyje lub na jakiejś otwartej licencji.

Dzięki

0

moze mi ktos wytlumaczyc? Chyba nie do konca rozumiem co chce osiagnac autor

0

Też nie bardzo rozumiem o co chodzi ale jak bym miał zgadywać to ty chcesz użyć coś takiego jak ORM(?).

0

Zadałeś pytanie, uwaga cytuje "Czy znacie coś w rodzaju frameworka czy komponentu do konfiguracji?" no i ja przychodzę ci na pomoc, niestety nie znamy. Pozdrawiam oraz życzę miłego dnia.

0

Chodzi mi o cos co mi dostarczy zestawu danych konfiguracyjnych do aplikacji.
Mam 100 parametrów różnego typu, listy różnych typów i chcę odwoływać się do wartości po nazwach parametrów. ConfigObject.NAZWA_PARAMETRU.
Coś jak Properties.Settings tylko z obsługa list różnych typów prostych i przechowywaniem w db.

coś jak to https://github.com/config-r/config-r/ lub to https://github.com/he-dev/SmartConfig tylko bardziej.

1

Jezli dobrze rozumiem co masz na mysli to potrzebujesz cos takiego:

Name | Value | UserName
Foos | "[ 1, 2, 3, 4 ]" | *
Foos | "[ 12, 80, 33, 5 ]" | palcekj
Baz | 1234.5 | *

czyli jakies domyslne ustawienia "*" i ustawienia uzytkownika.

Do domyslnych ustawien przygotowujesz sobie jeden skrypt gdzie w miejsce uzytkownika wpisujesz "*" (gwiazki). Potem ustawienia uzytkownika albo gdzies w UI zmieniasz albo masz drugi skrypt, ktory takie dopisuje do bazy.

W takim razie konfiguracja wygladac moze tak:

[SmartConfig]
static class MyConfig
{
    public static List<int> Foos { get; set; }
    public static double Baz { get; set; }
}

Jako ze masz dodatkowa kolumne dla uzytkownika to potrzebujesz nowego typu do ustawien czyli:

class CustomSetting : BaseSetting
{
    [SettingFilter(typeof(StringFilter)]
    public string UserName { get; set; }
}

...i ladujesz konfiguracje przy pomocy:

Configuration
    .Load(typeof(MyConfig), converters =>
    {
        converters.Add<JsonConverter>(converter => coverter.AddObjectType<List<int>>());
    })
    .From(new SqlServerStore<CustomSetting>(connectionString, settingTableName), dataStore =>
    {
        dataStore.SetCustomKey("UserName", "palcekj");
    });

Dotyczy to wersji 6.0 (lada dzien bedzie jako NuGet). W poprzedniej bylo to troche bardziej skaplikowane.

Ogolnie chodzi o to zeby dodac nowy konwerter/serializer czy jak go tam zwal ;] i podac mu jakie typy ma obslugiwac. JsonConverter korzysta z biblioteki Json.NET dlatego ustawienia w tym polu musza byc w formacie JSON.

Gotowe. Jako, ze klasa i pola sa statyczne moze ich uzywac bez tworzedania instancji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1