Novos serviços da ASP.Net ppt carregar
PublicouLavínia Lucio Alterado mais de 5 anos atrás
Apresentação em tema: "Novos serviços da ASP.Net 2.0"— Transcrição da apresentação:
0 ASP.Net 2.0 - Navegação em Sites
Site Navigation API
1 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
2 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 Provider Elemento 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
3 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
4 Comunicação entre os Controlos e a Infra-estrutura
Ficheiro XML com definição dos nós (web.sitemap) Controlos Menu, TreeView, SiteMapPah,... SiteMapProvider (Provider por omssão) SiteMapDataSource Consulta informação sobre o provider configurado Ficheiro Configuração define o Provider
5 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
6 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.
7 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 StartingNodeOffset StartingNodeURL
8 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
9 <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
10 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= " > <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>
11 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
12 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
13 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
14 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.
15 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