 .NET - 
Tratando com arquivos de configuração
 .NET - 
Tratando com arquivos de configuração
Arquivos de configuração sempre foram usados pelos aplicativos ou sistemas ; Unix , DOS , Windows , independente do sistema sempre houve arquivos de configuração. Para a plataforma Windows os arquivos de configuração com extensão .INI foram largamente usados a partir do Windows 3.1. A partir do Windows 95 foi criado o Registry , uma base de dados com configurações de todo o sistema.
Para tratar os arquivos INI temos toda uma coleção de API´s que permitem tanto a leitura como a gravação das informações a partir de uma aplicação Visual Basic.
Nota: leia o artigo - Arquivos de configuracao .INI - para saber mais sobre o assunto.
Na plataforma .NET não dependemos mais do Registry do Windows e com isto estamos livres de suas mazelas. As configurações geralmente estão armazenadas em arquivos XML e podem ser editadas diretamente com qualquer editor de texto.
Existem quatro tipos diferentes de arquivos de configuração na plataforma 
.NET:
- Machine Configuration Files
- Application Configuration Files
- Security Configuration Files
- ASP.NET Configuration Files
Os arquivos de configuração do tipo Application 
configuration Files podem ser comparados aos arquivos INI , como 
uma diferença : os arquivos de configuração da plataforma .NET somente podem ser 
lidos via aplicação , e , somente por você.
Existem muitos motivos para usar arquivos de configuração , creio que a mais importante delas e que usando arquivos de configuração você tem o poder de alterar as configurações de sua aplicação sem ter que recompilá-la novamente.
Um exemplo clássico é utilização da string de conexão para acessar uma fonte de dados. Se você colocar esta informação no código de sua aplicação qualquer alteração feita irá implicar na necessidade de recompilar a sua aplicação. Imagine então se sua aplicação tiver sido distribuida para diferentes clientes ou se sua aplicação estiver rodando em centenas de diferentes máquinas.
Para aplicações Windows Forms o arquivo de configuração deve estar sempre no mesmo diretório da aplicação e deve possuir o seguinte nome: arquivo.exe.config onde arquivo.exe é o nome de sua aplicação Windows. Assim se sua aplicação Windows chamar-se teste.exe o arquivo de configuração desta aplicação deverá chamar-se teste.exe.config.
Para aplicações Web o arquivo de configuração tem sempre o nome de Web.Config.
Nota: Para saber mais sobre arquivos de configuração para aplicações Web leia os artigos :
Se você precisar usar um arquivo de configuração para sua aplicação Windows deverá criá-lo pois ele não é criado automaticamente com sua aplicação. Usando o Visual Studio Net siga os passos abaixo para criar um arquivo de configuração para sua aplicação Windows:
|  |  | 
O arquivo de configuração terá o seguinte conteúdo inicial :
| <?xml version="1.0" encoding="utf-8" ?> <configuration> </configuration> | 
Para armazenar informações no arquivo de configuração você deve criar elementos XML no seguinte formato:
| <add 
		key="sua_Chave" value="Seu_Valor" /> | 
O par "key-value" é que será lido para recuperar a informação desejada.
Geralmente suas informações devem estar em uma seção chamada: <appSettings>
| <?xml version="1.0" encoding="utf-8" 
		?> <configuration> <appSettings> </appSettings> </configuration> | 
Por exemplo, para armazenar o caminho do banco de dados de minha aplicação Windows no arquivo de configuração fazemos:
| <?xml version="1.0" encoding= "utf-8" ?> <configuration> <appSettings> <add key="CaminhoBD" value="c:\projetos\dados\macoratti.mdb" /> </appSettings> </configuration> | 
Nota: Cuidado pois as informações para chave são sensitivas ao contexto. Ex: CaminhoBD é diferente de caminhoBD , appsettings é diferente de appSettings.
Se você observar a estrutura de sua aplicação no Solution Explorer vai notar a existência do arquivo App.config. Pois bem , é este arquivo que é criado quando você inclui um arquivo de configuração na sua aplicação Windows.
|  | 
Depois que você compilar sua aplicação o arquivo de configuração será criado no diretório bin. Para um projeto chamado Teste teremos os seguintes arquivos na pasta bin:
Teste.exe             
- nome da aplicação
Teste.exe.config - arquivo de configuração
Após a compilação o conteúdo do arquivo app.config será copiado para o 
arquivo de configuração. Quando você distribuir a sua aplicação para os usuários 
você terá que enviar junto o arquivo da aplicação .exe e o arquivo de 
configuração gerado na pasta bin : sua_aplicacao.exe.config 
e não o arquivo App.config , pois os usuários poderão alterar o conteúdo 
do arquivo de configuração sua_aplicacao.exe.config 
mas ser ré-iniciada , sua aplicação lerá os dados do arquivo App.config.

Para acessar as informações em um arquivo de configuração usamos a 
propriedade AppSetting da classe ConfigurationSettings. A sintaxe 
pode ser a seguinte :
Dim valor As String = System.Configuration.ConfigurationSettings.AppSettings("Chave")
Como exemplo vamos supor que temos um arquivo de configuração para um projeto Teste com o seguinte conteúdo:
| <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
     <add key="Teste1" value="Valor para chave Teste1" />
     <add key="Teste2" value="Valor para chave Teste2" />
  </appSettings>
</configuration> | 
Para recuperar os valores armazenados no par key-value podemos criar uma aplicação console que leia estas informações.
A seguir temos o código que lê o arquivo de configuração acima:
| Imports System Imports System.Console Module Macoratti Sub Main() Try Dim config As Configuration.ConfigurationSettings    ' le a chave (key) :Teste1
   WriteLine(config.AppSettings("Teste1"))
   ' le a chave (key) :Teste2
   WriteLine(config.AppSettings("Teste2"))   ' para ler todas as chaves fazemos:
   Dim chave As String
   For Each chave In config.AppSettings.AllKeys
       WriteLine(chave & " -- " & config.AppSettings(chave))
   NextCatch ex As Exception
      WriteLine(ex.ToString)
Finally
      Read()
End Try
End SubEnd Module | 
Antes de encerrar quero lembrá-lo de duas coisas muito importantes:
Abaixo um trecho de código que sugere uma possibilidade de tratamento destas duas situações:
| Dim Valor As Integer = 0 
If Not (ConfigurationSettings.AppSettings(chave) Is Nothing) Then 
 Try 
      Valor = Convert.ToInt32(ConfigurationSettings.AppSettings("Max")) 
 Catch e As Exception 
        //tratamento da exceção
 End Try 
End If | 
Até o próximo artigo VB.NET

| Veja os 
    Destaques e novidades do SUPER DVD Visual Basic 
(sempre atualizado) : clique e confira ! Quer migrar para o VB .NET ? 
 Quer aprender C# ?? 
 Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? | 
  Gostou ?   Compartilhe no Facebook
Compartilhe no Facebook
  
 Compartilhe no Twitter
 
Compartilhe no Twitter 
Referências: