Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
597
Assunto : ASP.NET
Titulo: Formas avançadas de realizar o velho include

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



No ASP antigo utilizavamos a instrução #Include para anexar arquivos. Desta forma generalizávamos pequenos trechos de código ou de design. Por exemplo, um menu de topo poderia ficar em um arquivo a parte e levar #include.

No ASP.NET agora trabalhamos de forma mais orientada a objeto. Um trecho que desejamos reaproveitar pode ser criado na forma de um web user control (arquivo .ascx) e inserido em todas as páginas do site.

Mas mesmo um Web User Control ainda não é um padrão visto como totalmente orientado a objeto. Este controle precisa ser inserido página por página em todas as páginas do site em que desejamos que ele apareça. E pode acontecer de não ser apenas um, mas serem combinações de 2 ou 3.

Para resolver este problema podemos utilizar um padrão de desenvolvimento já documentado. Esses padrões de desenvolvimento são chamados de design patterns. Temos um documento na área de download de nosso site (www.bufaloinfo.com.br) sobre a aplicação de design patterns no .NET.

Bem, então para melhorar ainda mais a aplicação do include, podemos aplicar o pattern de pageController. Vejamos como funciona.

Digamos que temos 2 ou 3 controles para serem inseridos em todas as páginas ou, pelo menos, em muitas. Podemos então criar uma classe, uma classe comum mesmo, herdando as características da classe system.web.ui.page.

Nesta classe fazemos um override do método onload. Esse método é o responsável por chamar o evento load na classe page. Neste método podemos carregar dinamicamente, via código, controles ascx que desejamos que apareçam em páginas desta "categoria". Veja um exemplo, com um único controle ascx :

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
Dim x As System.Web.UI.Control
x = Me.LoadControl("titulo.ascx")
Me.Controls.Add(x)
MyBase.OnLoad(e)
End Sub

Pronto. Temos uma classe base para montarmos as páginas. Para garantir agora que todos os webForms seguirão este padrão devemos mudar a instrução inherits em todos os webforms, trocando o inherits system.web.ui.page pelo inherits nossaClasse

Automaticamente todos os webforms que aplicarem essa herança estarão com os componentes padrões sendo exibidos.


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 12/11/2006 12:35:00 PM
nome: Thiago
email: sousa_thiago@hotmail.com
comentário:
Desenvolvi uma solução semelhante a descrita nesta pageina para minha aplicação, em tempo de execução funciona Blz, mas, quando vou mexer no disigner da página em questão ele nao funciona, os componentes somem todos.

Tenho de fazer override de mais algum método em minha classe base?

Ou Algum outro "segredo" ?


 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br