Upload
lavey
View
22
Download
0
Embed Size (px)
DESCRIPTION
Site Navigation API. ASP.Net 2.0 - Navegação em Sites. Novos serviços da ASP.Net 2.0. ASP.Net 2.0 disponibiliza um conjunto de serviços (“application sevices”) que ajuda os programadores de aplicações a construir funcionalidades avançadas com cada vez menos código. - PowerPoint PPT Presentation
Citation preview
ASP.Net 2.0 - Navegação em Sites
Site Navigation API
2
Novos serviços da ASP.Net 2.0 ASP.Net 2.0 disponibiliza um conjunto
de serviços (“application sevices”) que ajuda os programadores de aplicações a construir funcionalidades avançadas com cada vez menos código.
O serviço de Navegação num Web Site assenta: numa infra-estrutura capaz de suportar
a navegação, e em bons controlos de visualização
Menu, TreeView e SiteMapPath
3
A infra-estrutura de Navegação A infra-estrutura de navegação assenta em dois
elementos : Mapa do Site - contentor lógico para a colecção
hierárquica dos nós, cada um representando uma página da aplicação ou directório.O mapa do site está representado num ficheiro XML. Este file será transformado no objecto SiteMap
ProviderElemento capaz de aceder aos dados de navegação do mapa do site e disponibilizar essa informação aos novos controlos
Esta infra-estrutura pode ser personalizada através da construção de novos controlos e da criação de novos providers
4
O Mapa do Site Tem uma estrutura arborescente cujo nó de topo é
um nó do tipo siteMapNode que é a página de topo.
O elemento raíz do XML não é o nó de topo mas é
um nó do tipo siteMap.
A estrutura de navegação pode estar definida em
vários ficheiros.
O atributo SiteMapFile, do elemento siteMap, indica
o caminho até ao ficheiro que contém os nós filhos
do nó actual.
Os ficheiros de navegação são normalmente
guardados na raíz do site com o nome web.sitemap
pois por omissão o provider procura esse ficheiro
5
Comunicação entre os Controlos e a Infra-estrutura
Ficheiro XML com definição dos nós (web.sitemap)
SiteMapProvider (Provider por omssão)
Controlos Menu, TreeView,SiteMapPah,...
SiteMapDataSource Consulta informação sobreo provider configurado
Ficheiro Configuração define o Provider
6
A infra-estrutua Alguns controlos conseguem obter os
dados directamente do Provider Outros controlos precisam de um
intermediário (SiteMapDataSource) para obter essa informação
A configuração do provider é feita através de uma entrada no ficheiro de configuração
A plataforma fornece um provider capaz de interpretar um ficheiro XML designado por web.sitemap
7
Controlos de Navegação ASP.Net fornece-nos alguns controlos
adequados à navegação e identificação da pagina no site.
Só o controlo SiteMapPath é capaz de obter os dados diectamentea partir do provider.
Os controlos Menu e TreeView têm um formato hierárquico. A comunicação entre estes controlos e os nós definidos no ficheiro web.sitemap deve ser feita através do controlo SiteMapDataSource.
8
SiteMapDataSource Este controlo é capaz de retornar os dados
existentes no ficheiro sitemap sob a forma hierárquica ou sob a forma tabular. O controlo expõe várias propriedades que permitem configurar os resultados devolvidos pela classe
<asp:TreeView runat=“server” ID=“tree” DataSourceID=“source” />
<asp:SiteMapDataSource runat=“server” ID=“source”
Algumas propriedades:
SiteMapProvider - permite definir o provider ShowStartingNode -StratFromCurrentNode StartingNodeOffsetStartingNodeURL
9
Controlo SiteMapPath Este controlo consegue obter os dados
directamente do provider SiteMap <asp:SiteMapPath runat=“server” ID=“map”/> Propriedades de estilo:
CurrentNodeStyle, HoverNodeStyle, NodeStyle, PathSeparatorStyle,...
Templates: CurrentNodeTemplate, NodeTemplate,
PathSeparatorTemplate, RootNodeTemplate
O provider XMLSiteMapProvider retorna uma colecção de elementos do tipo SiteMapNodeItem que alimenta os nós do controlo
10
<asp:SiteMapPath runat=“server” ID=“map”OnItemDataBound=“ProcessDataBound”>
<CurrentNodeTemplate>
<asp:TextBox runat=“server” ID=“t1” Text=‘<%# Eval(“Title”) %>’ />
</CurrentNodeTemplate>
</asp:SiteMapPath> O controlo gera o evento ItemCreated quando um novo
elemento do tipo SiteMapNodeItem é criado e adicionado à colecção do controlo
O evento ItemDataBound é gerado após uma operação de binding entre um elemento do tipo SiteMapNodeItem e o nó respetivo da fonte de dados.
Os dois eventos anteriores são do tipo Site
11
Criar o Mapa do Site Criar o ficheiro XML que representa as relações entre todas as
páginas da aplicação
Criar um Site Map
Add New Item -> Site Map
Abrir o file web.sitemap e completá-lo
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns=
"http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="Default.aspx" title="Default Page“ description="">
<siteMapNode url="Pagina1.aspx" title="My First Page" description="" />
<siteMapNode url="Pagina2.aspx" title="My Second Page" description="" />
</siteMapNode>
</siteMap>
12
Inserir os controlos de navegação
Os controlos de navegação TreeView e
Menu podem ser usados para visuaizar
informação hierárquica.
Ambos foram criados para funcionar em
vários cenários:
Visualizar informação estática
Visualizar Informação de um site-map
Visualizar Informação de Base de Dados
13
O controlo Menu
A partr da Toolbox , na secção de
Navigation, arrastar o controlo Menu
Em Menu Tasks, em Choose Data
Source seleccionar <New Data
Source>
No Data Source Coniguration
Wizard, seleccionar SiteMap e OK.
Aparece um novo SiteMap no painel
14
O controlo TreeView A partr da Toolbox , na secção de
Navigation, arrastar o controlo TreeView Em Menu Tasks, em Choose Data Source
seleccionar <New Data Source> No Data Source Configuration Wizard,
seleccionar SiteMap e OK. Seleccionar Auto Format
Existe uma variedade de estilos Seleccionar Bullet List e OK Aparece um novo SiteMap no painel
15
Segurança através de Roles O atributo roles do elemento siteMapNode
permite indicar quais os roles que podem aceder a um nó.
O provider tem que ter definido o atributo securityTrimmingEnabled com o valor true para que garantir que o nó é apresentado somente a um conjunto de roles.
A utilização de roles implica a activação do serviço de roles. No ficheiro de configuração <rolemanager enabled=“true”/>
Depois é preciso definir as regras de autorização.
16
Regras de autorização Definir as regras de autorização para garantir só os
acessos autorizados
<location path=“/c1/pag1.aspx” allowOverride=“false><system.web>
<authorization>
<allow roles=“editores”/>
<deny users=*,?”/>
</ system.web>
</location>
Isto garante que o nó é apresentado ao utilzador certo e impede um utilizador de aceder directamente a um recurso (através da introdução directa do link) para o qual não tem auorização