Revista MSDN Magazine Edição 24 - Personalização de Interface de Usuário no ASP.NET
Artigo Originalmente Publicado na MSDN Magazine Edição 24
Clique aqui para ler todos os artigos desta edição
Personalização de Interface de Usuário no ASP.NET
Sempre que vamos desenvolver algum novo sistema precisamos de algumas funcionalidades que são iguais àquelas que já desenvolvemos um dia ou então com algumas pequenas modificações. As vezes, por serem sistemas sob encomenda, sempre acabamos reinventando a roda ou senão aplicamos o velho processo de herança “...<CTRL><C>...<CTRL><V>...” e alteramos algumas coisas para personalizar o produto final. Mas, porque não usarmos os esforços para desenvolver as funcionalidades específicas de cada solução e parametrizamos, reutilizamos e/ou estendemos o que é repetitivo? Com isso em mente estaremos avaliando uma alternativa simples de implementar este tipo de funcionalidade.
Projeto
Para implementar as funcionalidades descritas aqui, crie um projeto ASP.NET WebApplication chamado SkinsMSDN, usando como linguagem o Visual C#. Nas propriedades do projeto altere as configurações do Assembly Name e Default Namespace, conforme a Figura 1. Esta alteração se faz necessária devido às configurações posteriores que iremos fazer.
Figura 1. Painel de propriedades do projeto.
Por uma questão de organização, iremos criar algumas pastas dentro do projeto (conforme a Figura 2). Note que é importante mantermos a mesma nomenclatura aqui apresentada.
Figura 2. Estrutura de Pastas necessárias para a aplicação.
Configuração de Módulos
Como o objetivo é criar um módulo independente e facilmente acoplável a qualquer solução, é preciso configurar as informações necessárias para que seja possível a utilização desta facilidade oferecida pelo Framework. Neste ponto estaremos fazendo uso do httpModules que são chamados antes e depois que um handler é executado, e nos habilita interceptar, participar ou modificar cada requisição. Esta funcionalidade implementa a interface IHttpModule, que está no namespace System.Web. Para ativarmos esta funcionalidade precisaremos de duas coisas:
1 - Configurar o Web.Config direcionando a execução do handler, conforme código:
Listagem 1. Classe Web.Config
...
<SYSTEM.WEB>
<HTTPMODULES>
<ADD type="MSDNMag.ModuleHandler.ModuleHandler,MSDNMag" name="ModuleHandler" />
</HTTPMODULES>
...
2 - Criar uma classe (Listagem 2) que atenda ao requisito de implementação da interface, e que esteja configurada no Web.Config. Esta classe deve ser criada na pasta ModuleHandler, com o nome ModuleHandler:
Listagem 2. Classe ModuleHandler.cs
using System;
using System.Web;
using System.Collections;
namespace MSDNMag.ModuleHandler
{
/// <SUMMARY>
/// Gerenciador do módulo
/// </SUMMARY>
public class ModuleHandler : IHttpModule
{
public ModuleHandler(){}
public void Init(HttpApplication context)
{
/* Configura o controle de início de requisição */
context.BeginRequest +=new
EventHandler(moduleHandler_BeginRequest);
}
public void Dispose(){}
"
[...] continue lendo...Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo