Desenvolvimento - ASP. NET

Definições da Aplicação (AppSettings)

Este artigo trata de informar o que é e como utilizar o AppSetings da Web.config em suas aplicações ASP.Net.

por Adriano Galesso Alves



Ferramentas: ASP.Net 3.5 / C#

Olá pessoal,

Neste meu 1º artigo aqui no Linha de Código gostaria de falar sobre uma coisa muito interessante e muito importante para nossas aplicações ASP.Net.

Podemos na Web.Config (Configuração da nossa aplicação web), guardar N coisas como string de conexão, modo de autenticação, versão do Assembly e outras coisas... Entre essas coisas está nossa appSettings.

E para que serve o appSettings? No appSettings podemos criar chaves e definir valores para essas chaves e, o que eu acho muito bom, não precisamos recompilar a aplicação para trocar o valor dessas chaves.

Vamos para dois exemplos de onde usar a appSettings:

1- Vamos supor que logo após a homologação do projeto, seu cliente, decidiu trocar o e-mail no qual ele recebe quando a aplicação envia. Ao invés de ir procurar a variável que guardamos o e-mail dele e trocar pelo novo, na appSettings trocamos para o novo e-mail e pronto.

2- "- Que bacana João, olha essa condição, se item == 45. Porque 45???". Claro que não vamos colocar tudo no appSettings, mas seria bem melhor entender se a condição fosse, se item == appSettings["codCarro"]. Um exemplo básico!

Está explicado... Agora mãos a obra!

Vamos na nossa Web.Config criar nossas chaves. É extremamente simples:

http://www.morcegosweb.com/morcegos/arquivos/lightbox/app1.jpg

Onde Key é o nome da chave e Value o valor da mesma.

No ASP.Net, vamos inventar algo para utilizar nossas chaves... Bom, para começar vamos adicionar algumas referências:

using System.Configuration;
using System.Collections.Specialized;
using System.Text;

A primeira é para chamar itens de configuração, a segunda para utilizar um tipo de coleções e a última para usar o StringBuilder, para quem não conhece temos este ótimo artigo.

Vamos criar variáveis e preenchê-las com algumas chaves:

string Nome = ConfigurationManager.AppSettings["Nome"];
string Sobrenome = ConfigurationManager.AppSettings["Sobrenome"];
string Idade = ConfigurationManager.AppSettings["Idade"];

Vamos elaborar um texto e colocar Labels dizendo que eles possuem o valor das minhas variáveis. Poderíamos ter feito direto, mas assim fica bem limpinho...

protected void Page_Load(object sender, EventArgs e)
{
lblNome.Text = Nome +
" " + Sobrenome;
lblIdade.Text = Idade;
lblFerramentas.Text = PreencheFerramentas();
}

Avançando um pouco... Pode-se ver que eu carreguei um Label com um método... Vamos analisar ele!

http://www.morcegosweb.com/morcegos/arquivos/lightbox/app2.jpg

Quero explicar aqui, que o ConfigurationManager.AppSettings retorna uma lista com todas as minhas chaves... Isso também é muito interessante, já que assim podemos saber se existe ou não uma determinada chave... Ah! Se tentarmos usar uma chave que não existe -> NullReferenceException.

E o método???

Fácil. No começo criamos uma Array de strings definidas com 4 elementos, criamos uma objeto do tipo NameValueCollection que é uma coleção com as minhas chaves e, por fim, um StringBuilder para, basicamente, concatenar tudo.

Quero verificar se nos itens da minha Array, existe algum com chave no appSetting. Se tiver, vamos pegar o valor desta chave e concatenar no StringBuilder, no final, transformamos nosso StringBuilder em uma string que é retornada ao Label.

Legal para brincar! Já usa um pouco de tudo: Array, NameValueCollection e StringBuilder... Muito 10!

Este seria o resultado:

http://www.morcegosweb.com/morcegos/arquivos/lightbox/app3.jpg

Link para o projeto.

Esperam que seja de muita utilidade! Abraços...

Adriano Galesso Alves

Adriano Galesso Alves - Técnico em informática e tecnólogo em informática para gestão de negócios, MCP em Framework trabalhando com a plataforma ASP.NET e Visual C# na área de e-commerce e desenvolvimento/criação Web.
Blog:
http://lixeiradodri.blogspot.com.