ASP.net utilizzando Resource (resx) per la configurazione

1

Vorrei iniziare con il fatto che sono pronto a chiudere questa domanda in base all'opinione pubblica, ma cercherò di esprimerla in modo tale da mantenerla meno basata sulle opinioni.

La versione breve

Esistono resons pratici o di best practice perché le impostazioni di configurazione dovrebbero not essere memorizzate in un file Resource (resx)?

La versione lunga

Fino a poco tempo prima stavamo memorizzando le impostazioni dell'applicazione in un file app.config e per quello che mi riguardava andava tutto bene. È stata quindi eseguita una descrizione per spostare queste impostazioni in un file di risorse (resx). L'argomento è che ha fornito un accesso più semplice alle impostazioni nel codice, in quanto non è necessario ricordare la chiave nel file di risorse (potrebbe essere superata con le sezioni di configurazione personalizzate). Avevamo anche altre impostazioni nel file delle risorse, quindi l'argomento addizionale è che ora dobbiamo solo gestire le impostazioni in un unico posto. Per me questo non sembra giusto. Abbiamo altri componenti interni che sono stati in grado di essere configurati tramite un file .config standard, ma ora è stato modificato per adattarsi al nuovo modello.

Esistono resons pratici o di best practice perché le impostazioni di configurazione dovrebbero not essere memorizzate in un file Resource (resx)?

    
posta Jon P 28.07.2016 - 03:06
fonte

1 risposta

3

Secondo me questo è un No-No.

Ci sono molte ragioni, ma dalla parte superiore della mia testa, viola la regola della separazione delle preoccupazioni. I file Resx servono per l'archiviazione delle risorse, che sono risorse statiche, utilizzate principalmente per la localizzazione / internazionalizzazione e che non hanno nulla a che fare con il flusso dell'applicazione; mentre la configurazione ha un impatto significativo sul comportamento dell'applicazione.

I vantaggi di inserire le chiavi di configurazione nei file resx: Nessuna. Sì, puoi fare riferimento alla risorsa usando i tasti con la tipizzazione strong e non devi preoccuparti di ricordare la stringa magica. Ma posso fare praticamente la stessa cosa con la configurazione e un po 'di codice (mi ci è voluto meno di un'ora per scrivere un ConfigurationManager personalizzato per eseguire il cast arbitrario del file di configurazione su un oggetto strongmente tipizzato, e questo è un costo tecnico non ricorrente perché posso usarlo in nessuno dei miei progetti futuri).

Svantaggi: molti. Ad esempio, forse in seguito il tuo team decide di supportare il multi-lingua e avere più versioni di file resx. Ciò potrebbe influenzare le impostazioni di configurazione nel modo in cui non dovrebbe. O se si compilano i file resx insieme al codice, si perderà la libertà di modificare la configurazione in fase di esecuzione. Ancora più importante, organizzare e gestire risorse e configurazioni in un unico posto può essere solo più difficile.

Per me, potrebbe darti un po 'di comodità ora, ma ti metto un enorme debito tecnico in spalla.

    
risposta data 28.07.2016 - 04:03
fonte

Leggi altre domande sui tag