Artigo .net Magazine 61 - Configurações Personalizadas

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Artigo da Revista .NET Magazine - Edição 61.

Esse artigo faz parte da revista .NET Magazine edição 61. Clique aqui para ler todos os artigos desta edição

 

imagem_pdf.jpg

 

Configurações Personalizadas

Tomando controle dos arquivos de configuração no .NET

 

A forma mais comum de armazenar configurações de sistemas e aplicativos, há alguns anos atrás, era utilizar um arquivo INI. Eles têm como conceito a utilização de seções, chaves e valores armazenados como texto. Assim, para configurar um banco de dados em um aplicativo, era utilizada a seguinte forma:

 

[database]

server=192.0.3.26

port=153

 

Onde [database] é o nome da seção da configuração, server e port eram as chaves e 192.0.3.26 e 153 são os valores dessas chaves, respectivamente.

 

Os arquivos INI ganharam esta extensão a partir da palavra initialization, mas não é raro encontrá-los com outras extensões, como cfg ou mesmo txt. Até hoje muitos aplicativos utilizam essa forma para manter seus dados de configurações personalizadas. Com o tempo e com novas necessidades, surgiram outras formas de armazenar configurações, como o registry do Windows e a utilização de arquivos no formato XML. A principal vantagem dos arquivos XML sobre os arquivos INI é a possibilidade de se definir estruturas complexas com vários níveis, uma vez que os arquivos INI são tipicamente limitados a dois níveis de estrutura (seções e chaves). A Listagem 1 mostra um exemplo de um arquivo de configuração em XML.

 

Listagem 1. Exemplo de configuração personalizada

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <configSections>

   <section name="internetSearcher" type="InternetSearcher.SearchConfig, InternetSearcher, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>

  </configSections>

  <internetSearcher defaultProvider="GOOGLE">

   <log enabled="true" file="c:\logs\queries.txt" />

   <searchProviders>

     <add name="GOOGLE" url="http://www.google.com.br/search?q={0}" />

     <add name="MSN" url="http://search.live.com/results.aspx?q={0}" />

     <add name="UOL" url="http://mundo.busca.uol.com.br/buscar.html?q={0}" />

   </searchProviders>

  </internetSearcher>

</configuration>

 

Nota do DevMan

O .NET abraçou a idéia de utilizar arquivos XML para armazenar suas configurações desde as primeiras versões, sendo que eles possuem a extensão “config”. Vemos em aplicações que geram arquivos executáveis (WindowsForms, Console, Windows Services, etc) que estes arquivos ganham o nome da aplicação mais a extensão “config”, por exemplo “MinhaApp.exe.config”. Em aplicações web, este arquivo ganha o nome de “web.config”.

 

Observe o formato XML, contendo vários elementos aninhados. É dessa forma que cada informação é relacionada com as informações hierarquicamente superior e inferiores, montando uma estrutura poderosa e flexível de dados. Como já foi mencionado um arquivo de configuração pode conter várias seções, e o .NET já disponibiliza algumas para diversas finalidades. Um exemplo é a configuração da Listagem 2.

 

Listagem 2. Configuração para envio de e-mail no .NET

<system.net>

  <mailSettings>

   <smtp deliveryMethod="Network">

     <network host="smtp.meudominio.com.br" userName ="meuemail@ meudominio.com.br" password ="minhasenha" port="25"/>

   </smtp>

  </mailSettings>

</system.net>

 

Essa seção trata dos dados necessários para enviarmos um e-mail utilizando as classes do namespace System.Net.Mail. Veja que estão definidos todos os dados necessários para o envio de mensagens: o endereço do servidor de SMTP, o remetente, etc. Depois no código a seguir, vemos o código que faz o envio:

 

System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();

msg.To.Add("fabiogouw@hotmail.com");

msg.Subject = "Assunto da mensagem";

msg.Body = "Corpo da mensagem";

System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();

smtp.Send(msg);

 

Note que não precisamos nos preocupar em informar os dados de SMTP no código, já que os mesmos são recuperados do arquivo de configuração. Trabalhar dessa forma é uma boa prática, pois se tivermos que mudar o servidor de SMTP, nós não precisaremos compilar novamente o código.

Neste artigo veremos como trabalhar com as classes do .NET para a criar e ler configurações personalizadas e também algumas dicas para tirar o melhor proveito no seu uso.

 

Mão na massa

Vamos construir um exemplo que constitui de uma tela que permita escolher um site para efetuar uma pesquisa na Internet e executá-la diretamente nessa aplicação. Para isso, precisamos ter listados todos os sites que iremos utilizar e quais são as suas respectivas urls que nos permitam esta pesquisa. Para adicionar um pouco de complexidade na aplicação, vamos acrescentar um log das pesquisas que foram feitas. Crie um novo projeto Windows Forms no seu Visual Studio, salve a solução como InternetSearcher. Veja o foi criado automaticamente um arquivo de configuração, InternetSearcher.exe.config.

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?