Uma das grandes facilidades de se trabalhar com
ASP.NET é a possibilidade de criar “componentes” para reutilizá-lo em várias páginas. Uma das maneiras mais simples de fazê-lo é através da criação de User Controls, onde desenvolvemos todas as ações que nosso componente requer tais como: Mostrar elementos na tela, executar alguma ação específica etc. e replicar este componente em outras interfaces facilmente através do registro do mesmo na página. Porém podemos ter componentes que são comuns a vários sites e ao invés de replicarmos o código do componente diversas vezes na página (que possivelmente causará problema de manutenção) vou demonstrar aqui uma maneira simples de compartilhar User Controls entre aplicações.
1º Passo: Vamos criar um projeto web application que conterá apenas os controles que queremos que seja replicado em outros projetos. Criarei como exemplo um calendário dentro do User Control que deverá aparecer em todas as interfaces que utilizarem este User Control.
2º Passo: Vamos criar agora uma web application que consumirá o User Control desenvolvido no projeto anterior.
3º Passo: Agora vamos registrar nosso User Control diretamente no web.config para que permita uma maior “dinâmica” no modo de inserção do componente nas páginas que o utilizarão.
OBS: Vamos registrar o caminho do User Control com um caminho lógico específico, onde este não existe no projeto atual, mas posteriormente você entenderá o “por que”.
4º Passo: Agora vamos registrar o User Control no nosso webform.
5º Passo: Compile e publique os projetos.
6º Passo: Agora vamos implementar a tarefa que permitirá o User Control ser encontrado pelo nosso webform. Vá ao IIS e vá para o diretório virtual da sua página (se ainda não criou faça-o agora) e clique com o botão direito do mouse sobre a pasta virtual e escolha Novo > Diretório Virtual e crie outro diretório virtual com o nome de “Controls” por exemplo e coloque o caminho físico dos arquivos do projeto que é responsável pelos controles.
6º Passo: Agora seu User Control pode ser visualizado pelas suas aplicações, permitindo assim múltiplos web sites acessá-lo.
OBS: Vale lembrar que para que todos os web sites encontre o controle é necessário criar o subdiretório virtual que aponte para onde residem os arquivos do User Control.