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-se possível criar páginas modularizadas e personalizadas por usuário, ou seja, o usuário poderá abrir, fechar, editar ou mover uma zona da página para outra. E tudo isso poderá estar salvo quando o site for visitado novamente!

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á-los diretamente. No exemplo deste artigo, utilizaremos o endereço RSS da Microsoft (MSDN) como um dos módulosdisponíveis no portal.

 

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- Zones que as páginas são moduladas e organizadas visualmente. Podem existir quantas forem necessárias;

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-and-drop;

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.

...

Quer ler esse conteúdo completo? Tenha acesso completo