# File di configurazione

I file di configurazione sono file di testo strutturati che contengono informazioni necessarie al funzionamento di software di diverso tipo, dai web browser ai videogiochi. Permettono la configurazione dei parametri e delle impostazioni del software e possono essere modificati manualmente dall'utente. Vengono utilizzati soprattutto per applicazioni, server e impostazioni di sistema.
La modifica dei file di configurazione è molto diffusa negli ambienti Linux in quanto molti programmi ne richiedono la configurazione manuale al primo avvio.

## Uso dei file di configurazione
### Applicazioni .NET

La modifica di un qualsiasi software ASP.NET può avvenire tramite diversi file di configurazione, tra cui uno che prende il nome di machine.config: esso è il primo file che viene esaminato all'avvio di un programma, contiene le impostazioni che vengono applicate al computer e ne permette la gestione. Le impostazioni di questo file hanno effetto anche su tutte le applicazioni .NET. Questo tipo di file si trova nella directory %percorso installazione runtime%\Config.
Le applicazioni windows.NET presentano anche un altro file di configurazione che prende il nome dell'eseguibile stesso. Per esempio, il file di configurazione di un'applicazione chiamata gioco.exe prenderà il nome di gioco.exe.config.
Le applicazioni web.NET invece dipendono da un file chiamato web.config, che si applica alla cartella in cui si trova e alle sue sottocartelle.

### File web.config

Il web.config è il file di configurazione delle applicazioni ASP.NET, è case sensitive poiché si basa sullo standard XML ciò lo rende potente e semplice. Per ogni applicazione sono ammessi più file web.config, uno per ogni sottocartella, e ognuna di esse eredita le impostazioni della cartella padre. Questo file può contenere vari tipi di elementi, come configurazioni base della pagina e informazioni relative alla sicurezza, e si trovano tutti dentro l'elemento di nome <configuration>.
I file web.config hanno due sezioni principali:
* appSettings contiene tutte le impostazioni di configurazione predefinite di ASP.NET.
* system.web contiene variabili di configurazione introdotte dal programmatore, che potranno essere lette dall'applicazione.
Esempio di file Web.config vuoto:
Altre sezioni importanti dei file web.config sono:
* Compilation: viene utilizzata per configurare le impostazioni richieste da ASP.NET, soddisfacendo le richieste degli utenti.
* CustomErrors: viene utilizzata quando si verificano errori non gestiti durante l'esecuzione di una richiesta Web.
* Authentication e authorization: vengono utilizzate per l'autenticazione in un'applicazione e le credenziali di un utente.
* Globalization: viene utilizzata per configurare le impostazioni internazionali e la lingua da associare alle richieste Web.
* SessionState: viene utilizzata per configurare il timeout di sessione.
* Identity: viene utilizzata per impostare l'identità con cui viene eseguito ASP.NET.
* MachineKey: viene utilizzata per specificare le chiavi da utilizzare per la crittografia e la decrittografia dei dati.
* HttpRuntime: viene utilizzata per definire alcune impostazioni di esecuzione HTTP.

### Windows

Nel sistema operativo Windows una classica estensione di file di configurazione è .ini. Questi tipi di file hanno un formato testuale e vengono utilizzati da molti programmi per la memorizzazione delle informazioni. Per aprire questi file si usano diversi programmi tra cui tipicamente:
* Microsoft Notepad: programma preinstallato dal sistema operativo.
* Microsoft Visual Studio: in alternativa a Microsoft Notepad, permette la gestione del file in modo più professionale.
* Adobe Dreamweaver: oltre alla gestione dei file permette la creazione di pagine web.

### MacOS

Nel sistema operativo macOS il formato standard dei file di configurazione è .plist. Questi tipi di file possono essere trovati dall'utente tramite il percorso /etc/; possono essere aperti e modificati tramite editor come:
* Ultraedit: oltre a essere un editor di testo dispone di funzionalità per il confronto di file, crittografia e decrittografia.
* Brackets: editor di testo, contenente molte funzionalità.

### Linux

Nei sistemi operativi basati su Linux sono presenti molti tipi di file a seconda del tipo di applicazione. Hanno tutti in comune la caratteristica di avere una coppia di tag chiamata chiave/valore, e possono essere trovati nella home directory o tramite il percorso /etc/. Alcune estensioni frequentemente utilizzate in questi sistemi operativi sono .cnf, .conf, .cfg, .cf.
Il programma più utilizzato per l'apertura e la modifica dei file è Gedit: editor di testo contenente molte funzionalità.

## Tipi di file

Esistono più di 100 tipi di file di configurazione. Alcuni dei più comuni sono:
| Nome del file | Estensione |
| Installshield Silent Response File | .iss |
| File Playlist di MP3 | .m3u |
| Avchd Playlist File | .mpl |
| Flash Local Shared Object File | .sol |
| Windows Wireless Network Settings File | .wfc |
| Autocad Sheet Set File | .dst |
| Opera Bookmarks File | .adr |
| Adobe Photoshop Actions Settings File | .atn |
| DVD Movie Information File Format | .ifo |
| Windows Initialization File | .ini |
| OEM Setup File | .oem |
| Adobe Coldfusion Template File | .cfm |
| Photoshop Gradient File | .grd |