Aplikacja Asp.Net MVC - ustawienia i parametry

Odpowiedz Nowy wątek
2018-06-13 15:30
0

Cześć,
Zastanawiam się nad sposobem przechowywania i pobierania różnych ustawień aplikacji (np. parametry dotyczące hasła: minimalna długość, czas ważności czy parametry dotyczące adresu siedziby firmy). Myślałem o tym aby umieścić je w bazie danych. Użycie pliku web.config raczej odpada z uwagi na fakt, że są to ustawienia które mogą się zmieniać z czasem.
A jakie są wasze doświadczenia w tej kwestii? Możecie polecić jakieś ciekawe materiały?

Pozostało 580 znaków

2018-06-13 17:20
1

Możesz w bazie, możesz w jakimś JSONie na dysku, jak Ci wygodniej.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2018-06-13 18:15
0
somekind napisał(a):

Możesz w bazie, możesz w jakimś JSONie na dysku, jak Ci wygodniej.

Z plikiem jest chyba o tyle kiepsko, że trzeba pilnować aby podczas wgrywania nowej wersji aplikacji go nie podmienić. Baza danych wydaje się być lepszym rozwiązaniem.

Pozostało 580 znaków

2018-06-13 18:56
0

Ale kto każe trzymać ten plik w tym samym katalogu, w którym jest aplikacja?


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2018-06-13 19:27
1

(...) parametry dotyczące adresu siedziby firmy

Czemu konkretnie ma sluzyc ten adres? Jesli wyswietlaniu statycznej informacji (np. na stronie About/Contact) i jest male prawdopodobienstwo czestych zmian to nie widze problemu z zakodzeniem tego we frontendzie. W przeciwnym razie miejscem na takie dane jest raczej baza danych.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.

Pozostało 580 znaków

2018-06-13 20:21
0

Oprócz adresu są to np. numery telefonów czy adresy mailowe, które mogą być zmieniane (lub dodawane). Założenie jest takie żeby nie musieć przy każdej zmianie aktualizować html'a we wszystkich miejscach gdzie te dane występują. Myślę że baza danych będzie lepszym rozwiązaniem, bo trzymanie pliku z danymi po za projektem raczej nie wchodzi w grę

Pozostało 580 znaków

2018-06-13 20:39
0

Jeśli możecie to zerknijcie na mój kod. Będę wdzięczny za wszelkie sugestie.

Model:

public class Settings
    {
        public int ID { get; set; }
        public int CATALOG { get; set; }
        public string KEY { get; set; }
        public string VALUE { get; set; }
        public string DESC { get; set; }
    }

Klasa Settings:

public class Settings
    {
        private DataBaseContext db;
        private IEnumerable<Models.Settings> sett;

        public string Address => ReadProperty(3, "Address");
        public int PasswordLength => Convert.ToInt32(ReadProperty(2, "PasswordLength"));

        public Settings(DataBaseContext db)
        {
            this.db = db;
        }

        private void Init()
        {
            sett = db.TAB_SETTINGS;
        }

        private string ReadProperty(int catalog, string key)
        {
            if (sett == null)
                Init();

            return sett
                .Where(x => x.CATALOG == catalog && x.KEY == key)
                .FirstOrDefault()
                .WARTOSC;
        }

        public void UpdateProperty(int catalog, string key, string value)
        {
            var appSett = sett
                .Where(x => x.CATALOG == catalog && x.KEY == key)
                .FirstOrDefault();

            appSett.WARTOSC = value;

            db.SaveChanges();
        }
    }

Klasa AppConfig:

public class AppConfig
    {
        public static Settings Configuration;

        static AppConfig()
        {
            Configuration = new Settings(new DataBaseContext());
        }
    }

A tak używam:

AppConfig.Configuration.Address
AppConfig.Configuration.PasswordLength

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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