E 'una cattiva pratica usare i valori hard-code nel file web.config di ASP.NET?

0

Lavoro per un'azienda che sta costruendo un'applicazione web con ASP.NET e amp; MVC, che è stato l'ultimo lavorato pochi mesi fa. Faccio parte del team che lavora al progetto e ho riscontrato dei valori (come i nomi dei luoghi) codificati nel file web.config del progetto.

Secondo me è una cattiva pratica dato che più sviluppatori hanno versioni diverse di web.config, quindi i valori hard-coding in questo file potrebbero causare incongruenze. Inoltre, i non sviluppatori potrebbero dover aggiungere / rimuovere valori e avere una maggiore possibilità di causare comportamenti instabili se interrompono accidentalmente il web.config (poiché il codice non può essere compilato con errori come le virgolette mancanti attorno alle stringhe, ma tali errori nel web .config potrebbe non essere catturato poiché sono considerati "validi").

La comprensione dei miei colleghi è che i valori hard-coding in questo modo rendono più semplice per gli altri modificare questi valori, al contrario di mantenere una classe centralizzata contenente i valori (di cui verranno rilevati eventuali errori di sintassi).

Il web.config può essere modificato al volo senza richiedere la ricompilazione, mentre le modifiche al codice richiedono la ricompilazione. Eventuali modifiche a questi valori verranno apportate quando l'applicazione Web non è in uso e l'ambiente di distribuzione verrà automaticamente ricompilato prima di ridistribuire comunque.

Sono sicuro che memorizzare tali valori nel file di configurazione Web per l'applicazione è una cattiva pratica?

    
posta cybermonkey 08.08.2018 - 13:35
fonte

1 risposta

2

Hmm. Penso che la risposta rigorosa alla tua domanda

"Is it bad practice to hard-code values in ASP.NET's web.config file?"

è: No. Ecco a cosa serve.

Tuttavia, evidenzia alcune cattive pratiche

  • non sviluppatori che aggiungono e rimuovono valori.
  • modifica al volo di web.config

Devi impostare le impostazioni di configurazione di un'app / sito Web quando distribuisci l'app. Dovrebbero essere parte dello script / processo di distribuzione. Nessun mucking con loro manualmente !!

  • più sviluppatori hanno versioni diverse di web.config

web.config con alcuni valori di "dev" dovrebbe essere memorizzato con il codice sorgente. a meno che uno sviluppatore non stia lavorando su una funzione specifica che modifica la configurazione, tutti dovrebbero avere la stessa versione.

  • in questo modo rende più semplice per gli altri modificare questi valori, al contrario di mantenere una classe centralizzata contenente i valori

Penso che questo sia davvero il tuo problema con la metodologia. Sembra che tu stia mettendo più di una semplice configurazione nel file web.config. Le enumerazioni dovrebbero essere enumerazioni e stringhe magiche / i numeri sono cattivi ovunque tu li abbia.

Ma per giudicare dovremmo sapere quali sono stati i valori e come sono stati utilizzati.

    
risposta data 08.08.2018 - 13:47
fonte

Leggi altre domande sui tag