e=Verdana size=2>
Clique aqui para ler todos os artigos desta edição
NET Magazine –
Desenvolvendo portais com Web Parts
Possibilitar ao usuário a experiência de customizar as páginas sempre foi visto como um diferencial de sites, no entanto, demandava um grande esforço de desenvolvimento técnico. Apartir do .NET Framework 2.0 está disponível um poderoso recurso, denominado Web Parts, que permite aos usuários selecionar e organizar o conteúdo que deseja visualizar.
Através de Web Parts, contemplado no novo Framework, torna
Imagine um portal Web, onde na página principal haveria diversas informações de diferentes origens, páginas distintas, de forma visualmente organizada, através de módulos. Ademais, com todas as facilidades supracitadas de edição, mobilidade, entre outros. Por fim, tudo isso de forma ágil e com código extremamente organizado.
Neste artigo, criaremos um simples portal que demonstrará essa fascinante tecnologia de Web Parts. Para isso, utilizaremos também outras importantes ferramentas, como:
User Controls: a utilização dos User Controls dentro das WebPartZones facilita a modularização da página e organização do código;
Controle de Login: permite criar uma interface de login padrão sem codificação;
CreateUserWizard: permite criar uma interface de registro de usuário padrão;
Personalização (Personalization): persiste as configurações personalizadas pelo usuário para futuras visitas/sessões; ??Themes: auxilia na padronização da configuração visual dos controles ASP.NET;
RSS: permite inscrição à sites de informação no formato RSS. Dessa forma, podemos obter informações de sites sem acessá
Fundamentos Web Parts
Para que a codificação deste artigo seja bastante objetiva, nessa seção serão descritos os fundamentos mais relevantes relacionados à Web Parts. Veja a seguir os principais controles Web Parts que serão utilizados neste artigo:
WebPartManager: possui a missão de coordenar os controles Web Parts da página. Gerencia as WebPartZones. Apenas um WebPartManager deve existir em cada página que utiliza Web Parts;
WebPartZone: região que contém os controles das páginas que poderão ser personalizados. É através das WebPart
CatalogZone: utilizado para criar um catálogo dos controles Web Parts disponíveis para adição na página pelo usuário;
DeclarativeCatalogPart: lista os controles Web Parts que não foram inseridos estaticamente e nem dinamicamente nas WebPartZones;
PageCatalogPart: lista os controles Web Parts que em algum momento foram fechados pelo usuário;
EditorZone: zona disponível para edição das WebPartZones, como aparência e comportamento. Ao possibilitar ao usuário a customização do layout da página, serão disponibilizados quatro modos de interação:
Normal (BrowseDisplayMode): o usuário não poderá editar ou mover as seções da página;
Edição (EditDisplayMode): usuário poderá editar as Web Parts, como título, cor, entre outras propriedades, incluindo a exclusão das mesmas;
Design (DesignDisplayMode): usuário conseguirá reordenar os controles Web Parts dentro das WebPartZones, por exemplo drag
Catalog (CatalogDisplayMode): usuário poderá adicionar Web Parts ou reativar Web Parts removidas anteriormente.
Personalização/Personalization
Personalização permite armazenar o estado das propriedades dos controles Compartilhado qualquer mudança personalizada é aplicada para todos os usuários. Quando for de Usuário as mudanças são relacionadas apenas ao usuário corrente;
2. Visibilidade dos controles: determina se um controle específico é visível a um determinado usuário ou a todos os usuários. Visibilidade é determinada pela forma que o controle é adicionado na página. Quando adicionado de forma estática é visto como compartilhado. Quando adicionado dinamicamente ou através de uma CatalogZone é determinado pelo escopo da página;
3. Propriedade escopo (scope): ao adicionar controles via codificação é possível utilizar o atributo Personalizable para determinar com mais precisão quais atributos serão de escopo compartilhado ou de usuário. Isso permite aumentar o controle que você tem sobre o código.
Outro ponto extremamente importante de compreender é a utilização do Design Pattern chamado Provider. No ASP.NET 2.0 foi criada a classe abstrata PersonalizationProvider que serve como base para as classes derivadas, como o SqlPersonalizationProvider, responsável por fazer todo o trabalho de carregar e salvar as informações no banco de dados SQL Server.
Portanto, através dos Providers toda a parte de instanciação de objetos e execução de comandos SQL para persistência dos dados será feita automaticamente, sem que precisemos nos preocupar com isso.
Criando o projeto
O primeiro passo é a criação de uma nova Solution, para isso acesse o menu File>New>Others Project Type>Visual Studio Solutions>Blank Solution. O nome da Solution será “WebPortalSample”, de acordo com Figura 1.