sábado, março 28, 2009

Configuração de uma aplicação em ASP.NET

Este artigo se trata de uma visão geral dos arquivos de configuração usados pelo ASP.NET. Pretendo dar uma introdução sobre os arquivos de configuração do ASP.NET e expor algumas funcionalidades interessantes do framework.


1. Introdução


Arquivos de configuração são usados para setar dados iniciais em um sistema. São usados nas mais diversas aplicações, nos dá a flexibilidade de alterar propriedades sem auxílio de um compilador. E isso pode nos ser útil. Imagine o seguinte cenário: você acaba de desenvolver uma ferramenta que auxilia o gerenciamento de usuários de uma pequena rede e o administrador deverá escolher quais grupos tem permissões. Você tem três opções: a primeira era forçar o administrador a dizer quais permissões pertencem a quais grupos todas as vezes que rodar o programa, a segunda é criar propriedades por código e fazer com que o administrador aprenda a sintaxe para altere os campos, ou ter um arquivo fácil de ser manipulado e de leve curva de aprendizado, da qual deixaria o administrador mais motivado.

A importância de um arquivo de configuração no ASP.Net é essencial para um bom desenvolvimento. Você pode controlar sua aplicação com praticamente todos as funcionalidades do ASP.NET. Trata-se de um conjunto poderoso de especificações que são guardadas em cachê, disponíveis globalmente para sua aplicação.

Os arquivos de configuração se comportam de maneira hierárquica, ou seja, as configurações de um arquivo “inferior” podem ser substituídas. Há dois arquivos de configuração:

• Machine.Config – Este arquivo se encontra no topo hierárquico. Contém configurações que serão aplicadas em todas as aplicações.NET. Nas versões anteriores à 3.0, se encontra em “C:\WINDOWS\Microsoft.NET\Framework\vx.x.xxxx\CONFIG".

• Web.Config – Este arquivo se encontra em uma aplicação específica, de acordo com as necessidades da mesma. Cada aplicação pode conter um web.config. Esse arquivo de configuração é opcional.

Como o arquivo “Web.Config” é mais específico, ele tende a substituir as configurações do “Machine.Config” por padrão. Caso não seja desejado, o atributo allowOverride na tag deve ser setado como false.

2. Usando uma interface gráfica para configuração

Para administradores, há uma preferência por uma interface para gerenciar a configuração. O ASP.NET provê uma interface chamada Web Site Administrator Tool, que permite editar configurações de diversos tipos como segurança e habilitar/desabilitar opções de tracing. Você encontra na opção WebSite -> ASP.NET Configuration, .


Figure 1: Interface para o Web.Config (Web Site Administrator).


3. Definindo variáveis globais a sua aplicação

A tag appSettings provê uma definição de variáveis estáticas, que podem ser usadas em toda aplicação. Isso nos dá a capacidade de configurar nossa aplicação em um único arquivo, modificando apenas os parâmetros. Sem precisar de que um desenvolvedor faça o trabalho.



   1:  <configuration>

   2:    <appSettings>

   3:      <add key="initialRow" value="15"/>

   4:      <add key="finalRow" value="55"/>

   5:    </appSettings>

   6:    </configuration>



//Primeiro Método:


   1:  ApplicationStarter.InitialNumber = (int) ConfigurationSettings.AppSettings["initialRow];



//Segundo Método:


   1:  ConfigurationManager.AppSettings["initialRow”];



O primeiro método se encontra depreciado. Isso significa que você pode usá-lo, mas o framework parou de fazer manutenção neste método. Apenas para fins didáticos.


4. Fornecendo suporte com a tag


A tag permite configurar a aplicação para responder diferentes opções de codificação, garantindo assim o tipo de codificação correta da cada país. Por padrão, o requestEnconding dentro do arquivo machine.config é utf-8.

requestEnconding - Especifica a codificação assumida para as requisições que chegarem.
responseEnconding - Especificação de resposta
fileEnconding - Especifica a codificação para análise de arquivos asmx, aspx e asax.
Culture - Especifica a cultura padrão para processar as requisições que chegam
uiCulture - Especifica a cultura padrão para processar pesquisas de recurso do local.




   1:  <configuration>

   2:    <system.web>

   3:      <globalization requestEncoding="Shift-JIS" responseEncoding="Shift-JIS"/>

   4:    </system.web>

   5:   </configuration>




5. Usando a tag identity para criar uma identidade de usuário


A tag identity nos permite criar uma identidade de usuário para aplicação. É uma tag útil para definir o nome de usuário e senha de uma base de dados.


   1:  <configuration>

   2:   <system.web>

   3:    <!-- 

   4:              Set compilation debug="true" to insert debugging 

   5:              symbols into the compiled page. Because this 

   6:              affects performance, set this value to true only 

   7:              during development.

   8:          -->

   9:      <identity userName="rmacedo" password="passwrd445"/>

  10:   </system.web>

  11:  </configuration>




6. Atribuindo especificações com a tag


A tag nos permite definir aspectos de cada página, como o uso de Viewstates e buffering. Mudando essas características, você automaticamente muda em todas as páginas de sua aplicação.

Buffer - Especifica se sua página aceita o uso de buffer.
enableSessionState - Especifica se o SessionState está ativado. Recebe valor booleano.
enableViewState - Especifica se o ViewState está ativado. Recebe valor booleano.
userControlBaseType - Permite especificar uma classe de code-behind seja herdade por uma página aspx.
autoEventWireup - Especifica se os eventos de página são ativados. Recebe valor booleano.


Você também pode definir especificamente para cada página através da diretiva que se encontra no topo de cada página aspx.


7. Ativando o rastreamento (trace)


Na engenharia de software, trace é a capacidade de obter informações de enquanto sua aplicação está em execução. Pode nos ajudar a encontrar bugs e outras falhas. Podemos especificar facilmente as funcionalidades de tracing com as propriedades abaixo:


Enabled - Especifica se o trace está ligado.

localOnly - Especifica se o trace apenas pode estar lgiado se for local ou acessado remotamente. É útil, caso se esqueça de trocar o enabled para falso antes de publicar a aplicação. Por este motivo, o padrão deste atributo está setado como true.
pageOutput - Especifica se o resultado está disponível através de um utilitário de rastreamento. O padrão é false, ou seja, aparecerá no final de cada página.

requestLimit - Valor que limita o número de requisições de tracing armazenadas no servidor. Por padrão, o número é 10.
traceMode - Especifica se o resultado do tracing deve ser classificado por hora ou por categoria.





   1:  <configuration>

   2:   <system.web>

   3:    <!-- 

   4:              Set compilation debug="true" to insert debugging 

   5:              symbols into the compiled page. Because this 

   6:              affects performance, set this value to true only 

   7:              during development.

   8:          -->

   9:   

  10:      <trace enabled="true" localOnly ="true" pageOutput="false" traceMode="SortByCategory"/>

  11:      

  12:   </system.web>

  13:  </configuration>



8. Definindo exceções personalizadas.

O uso da tag customErros pode gerenciar exceções não-tratadas, redirecionando ao cliente uma página mais amigável. A sub tag error de customError especifica erros, como veremos no exemplo a seguir.



   1:   <configuration>

   2:   <system.web>

   3:    <!-- 

   4:              Set compilation debug="true" to insert debugging 

   5:              symbols into the compiled page. Because this 

   6:              affects performance, set this value to true only 

   7:              during development.

   8:          -->

   9:   

  10:      <customErrors defaultRedirect="errorpage.aspx" mode="RemoteOnly"></customErrors>

  11:      

  12:   </system.web>

  13:  </configuration>



9. Autenticando usuários
São raras as aplicações que não usam uma forma de autenticar usuários. Usamos a tag authentication para autenticar usuários por questões de segurança. Abaixo seguem as opções do atribute mode:

Windows - Especifica o modo de autenticação Windows/IIS
Forms - Especifica um modo de autenticação baseado nos formulários Asp.Net
Passport - Especifica o uso de autenticação através do passport da Microsoft.
None - Nenhuma autenticação especificada.



Referências

ASP.NET Guia do Desenvolvedor.
MCTS Self-Paced Training Kit : Microsoft Web Based Client.

Nenhum comentário: