Miglior Pratica per le Impostazioni di Configurazione della mia Applic...

lunedì 27 febbraio 2012 - 16.43

m.falconi Profilo | Newbie

Salve a tutti,
sono nuovo del forum e aprofitto dell'occasione per farvi i complimenti!

Sto sviluppando una applicazione in C# con visual studio 2010 in .net 3.5.

Tale applicazione è destinata a crescere ed evolversi, quindi avrò bisogno di aggiornarla.

Un primo forte dubbio mi sorge per i file di configurazione. Per configurare vari moduli e connessioni utilizzo dei "File Di impostazioni" (per ora una decina) uno per ogni aspetto.
Ad esempio uno contiene tutti i parametri di connessione SQL.. ecc..

Le domande che vi voglio porre sono queste:

- è questa dei "file di impostazioni" secondo voi la miglior pratica per memorizzare le impostazioni della mia applicazione, oppure vi sono soluzioni migliori?

- in caso di aggiornamento dell'applicazione potrebbe succedere che si aggiungono delle voci ai file presenti, o vengono aggiunti nuovi file che prima non erano presenti. Come potrei comportarmi per gestire automaticamente questo processo senza dover disinstallare e reinstallare l'applicazione per far creare direttamente ad essa i file?

Grazie

ReRosso Profilo | Junior Member

Ciao,

Non ho capito bene cosa intendi per "file di impostazioni"...file .INI ? Comunque esistono vari approcci al problema. Puoi scegliera tra:

Utilizzo del file app.config (presente in ogni applicazione .net) di tipo xml.
Un db sfd...(sql server compact edition) se la configurazione è molto complessa.
Windows registry...(se al contrario la configurazione è semplice)

Per l'applicazione ti consiglio l'uso di DDL in modo da limitare il più possibile la re-installazione dei nuovi eseguibili aggiornati.

Saluti

m.falconi Profilo | Newbie

Ciao,
ti ringrazio per la risposta.

Per file di impostazioni intendo che su visual studio clicco con il tasto destro sul progetto -> aggiungi -> nuovo elemento -> "file di impostazioni".

In questo modo viene aggiunto nella cartella dell'applicazione un file MiaApplicazione.exe.config (credo in formato XML) contenente tutte le voci con le corrispondenti impostazioni precedentemente inserite.
Sembra che venga generato un file unico per tutti i file di impostazione (una decina) che avevo aggiunto al progetto.

Ho scartato il database SQL CE perchè aumenta la complessità di lettura/scrittura di queste impostazioni.
Infatti il framework mi permette di leggere le impostazioni salvate nel file con una sola riga di codice, ad esempio per leggere il campo MioCampo dal file di impostazioni MioFileDiImpostazioni faccio così:

int mioValore = MioFileDiImpostazioni.default.miocampo;

Mentre per memorizzare nuove impostazioni inserite dall'utente a runtime faccio:
MioFileDiImpostazioni.default.miocampo = miovalore; MioFileDiImpostazioni.default.save();


Che rispetto ad un database SQLCE è molto più immediato sia in lettura che scrittura.

Comunque cosa intendi per uso di DDL per l'aggiornamento? O intendevi DLL? in qualsiasi caso potresti spiegarmi con quale principio si usa una DDL (o DLL) per aggiornare un'applicazione?

Grazie mille

ReRosso Profilo | Junior Member

Vedi te....se devi utilizzare 10 file di configurazione forse ti conviene valutare l'opzione SQL Ce ..Comunque si...ti confermo file DLL (errore di battitura). Le DLL sono librerie di classi a collegamento dinamico che possono essere utilizzate da più applicazioni e caricate in memoria soltanto all'occorrenza. Ovviamente una trattazione completa non può essere fatta in questa sede...comunque vengono spesso utilizzate per aggiornare le applicazioni senza dover ripetere l'installazione. Qesta proprietà è legata al fatto che il codice scritto nella DLL è indipendente dall'applicazione principale e quindi sostituendo la DLL si sostituiscono porzioni intere di programma.
Ti consiglio di prendere però confidenza con queste tecnologie prima di imbatterti in situazioni che poi faticheresti a gestire....

Ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5