ASP.NET–Anatomia de uma aplicação

ASP.NET – Anatomia de uma aplicação

Criado por Henrique Graça em 7 de Dezembro de 2010 | 9 comentários

Estamos de volta com mais um tutorial sobre ASP.NET. Hoje iremos falar sobre os componentes que fazem parte de uma aplicação ASP.NET. Fiquem atentos e participem neste brainstorming de programação.

1. Anatomia

Uma das funcionalidades mais notáveis do modelo de execução do ASP.NET, é o facto de ser possível  fazer update à aplicação, sem que seja preciso fazer restart ao Servidor e nem preocupar com um possível prejuízo aos utilizadores da aplicação. Isto significa que podemos adicionar, alterar e remover ficheiros na directoria virtual a qualquer momento, sem qualquer impacto.

Depois de fazer uma alteração, o processo de migração para uma nova “Application Domain” é executado. Este processo faz um restart seguro à aplicação e substitui os ficheiros da directoria temporária do ASP.NET. Até uma simples alteração ao WEB.CONFIG obriga a um restart seguro da aplicação.

Estrutura de directorias:

  • BIN – Esta directoria contém todas as DLL que a aplicação utiliza. Se criarmos um WebProject no Visual Studio, esta directoria irá também conter o código compilado da nossa aplicação.
  • APP_CODE – Nesta directoria ficam todas as classes compiladas dinamicamente. Se criarmos um WebProject no Visual Studio, esta directoria não será necessária.
  • APP_GLOBALRESOURCES – Esta directoria contém recursos globais que são utilizados por todas as páginas da aplicação.
  • APP_LOCALRESOURCES – Como a directoria GlobalResources, esta pasta guarda recursos mas, apenas para a página associada.
  • APP_WEBREFERENCES – Esta directoria guarda referências de WebServices que a aplicação utilize.
  • APP_DATA – Esta directoria está reservada para “Data Storage”, como bases de dados SQL Express ou ficheiros XML. Claro que, podemos colocá-los noutra directoria.
  • APP_BROWSERS – Esta directoria contém ficheiros XML com definições de Browsers, o que torna possível várias renderizações entre Browsers.
  • APP_THEMES – Esta directoria contém os Temas utilizados na aplicação.
2. Global.asax

O ficheiro Global.asax, permite escrever código que reage a eventos globais da aplicação. Não é possivel fazer o request directo ao Global.asax, ao invés o ficheiro Global.asax é executado automáticamente em responsta a diferentes eventos da aplicação.

O ficheiro Global.asax é opcional, só é possivel ter um por aplicação e tem de estar na root.

Lista de eventos da aplicação

  • Application_BeginRequest() – Este método é chamado a cada novo Request.
  • Application_EndRequest() – Este método é chamado no fim de cada Request
  • Application_Start() – Este método é invocado sempre que a aplicação é iniciada.
  • Session_Start() – Este método é invocado no inicio de cada nova sessão.
  • Application_Error() – Este método é invocada quando uma excepção não controlada acontece na aplicação
  • Session_End() – Este método é invocado quando uma sessão do utilizador termina. Uma sessão pode terminar, forçando a mesma ou por timeout, normalmente 20 minutos.
  • Application_End() – Este método é invocado quando uma aplicação termina.
3.  Configurações ASP.NET

As configurações de uma aplicação ASP.NET são efectuadas em ficheiros XML. As grande vantagens deste mecanismo são, os ficheiros nunca ficam bloqueados, são de fácil acesso, leitura, alteração e replicação.

As configurações começam num ficheiro chamado, machine.config. Este ficheiro encontra-se na directoria “c:\windows\microsoft.net\framework\[versão]\config”. Este é o primeiro ficheiro de configuração de ASP.NET e contém as configurações mais criticas da aplicação.

<MachineKey> – Esta elemento na configuração do ficheiro machine.config, é responsável pela encriptação das aplicações ASP.NET. Protege os cookies de sessão e pode proteger também o ViewState.

Na mesma pasta do ficheiro machine.config, existe outro ficheiro web.config, que contém mais configurações.

Apesar de existirem estes ficheiros de configuração globais (utilizados em todas as aplicações ASP.NET no servidor), normalmente as configurações são efecutadas por aplicação, com um ou mais, ficheiros Web.config.

No ficheiro de configuração podemos, guardar ligações a bases de dados e configurações particulares de cada aplicação.

Dentro do ficheiro Web.config, um dos atributos mais importantes é o <system.web>, dentro deste atributo existem muitas configurações que podemos costumizar.

  • authentication – este elemento configura a autenticação na aplicação.
  • compilation – este elemento identifica a versão da framework .NET. Também será aqui que indicamos se queremos ou não fazer debug na aplicação.
  • customErrors – este elemento permite definir URL para reencaminhar um pedido, quando um determinado erro ocorre.
  • membership – este elemento permite configurar a funcionaliade de gestão de utilizadores do ASP.NET
  • pages – este elemento define definições para as páginas
  • profile – este elemento permite configurar o mecanismo de profiles do ASP.NET
  • sessionState – este elemento permite alterar as configurações de como é guardada e gerida a Sessão.
  • trace – este elemento configura o tracing na aplicação.

Além de configurar tudo manualmente o ASP.NET fornece uma ferramenta visual para fazer alterações no Web.config. Através desta aplicação, podemos configurar utilizadores, settings, email.

Para aceder a esta aplicação carregamos no botão que podemos observar na imagem em baixo.

Depois de carregar no botão, entramos na aplicação e podemos alterar as configurações da nossa aplicação.

4. Page Class

Todas as páginas ASP.NET são derivadas do objecto Page. Este é dos objectos mais importante e com mais funcionalidades do ASP.NET.

Request: Este objecto representa os valores e propriedades do Request Http que causou o carregamento da nossa página. Contém todos os parâmetros de URL e todas as informações enviadas pelo cliente.

  • Cookies – contém uma colecção de Cookies enviados com o Request.
  • Headers e ServerVariables – providenciam uma colecção de HTTP Headers e variáveis de servidor. São informações Low-Level do Request.
  • IsAuthenticated – Verifica se o utilizador está autenticado.
  • IsLocal – Verifica se o Request foi feito do Servidor.
  • QueryString – Disponibiliza os parâmetros que foram passados no URL.

Response: Este objecto representa a resposta do Servidor a um Request do cliente.

  • Cookies – contém uma colecção de Cookies enviados com o Response. Podemos usar este objecto para criar Cookies.
  • Redirect() – este método dá instruções ao Browser para pedir um novo URL.
  • Write() – este método permite escrever no output stream.

Server: Este objecto é uma classe de utilidades, disponibiliza muitos métodos e propriedades.

  • MachineName – Nome da máquina em que a aplicação está ser executada.
  • GetLastError() – Método que permite obter o último, muito utilizado no global.asax no método Application_Error().
  • HtmlEncode() e HtmlDecode() – Altera o valor para HTML e vice-versa.
  • MapPath() – Devolve o caminho físico que corresponde a uma pasta virtual.
  • Transfer() – Redirecciona o pedido para outra página. Semelhante ao Response.Redirect mas mais rápido, pois o pedido é logo executado no servidor.

Neste tutorial incidimos sobre os componentes que fazem parte da anatomia de uma aplicação  ASP.NET. No próximo tutorial vamos falar sobre state management (View State, Cookies, Session, Application).

Caso tenham alguma questão, coloquem nos comentários, terei todo o gosto em responder.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s