.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)) Next Catch ex As Exception WriteLine(ex.ToString) Finally Read() End Try End Sub End 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 Twitter
Referências: