240 likes | 380 Views
Tecnologias Web. Rodrigo Cristiano Silva rodrigo@facens.br. Agenda. O que é uma Master Page? Vantagens da utilização de Master Pages Caraterísticas de Master Pages Demo: Uma simples Master Page Como master pages e content pages são conectadas? Master Pages com múltiplos PlaceHolders.
E N D
Tecnologias Web Rodrigo Cristiano Silva rodrigo@facens.br
Agenda • O que é uma Master Page? • Vantagens da utilização de Master Pages • Caraterísticas de Master Pages • Demo: Uma simples Master Page • Como master pages e content pages são conectadas? • Master Pages com múltiplos PlaceHolders
O que é uma Master Page? • Basicamente, uma master page é um template para um website • Usando uma master page, é possível definir o layout de uma página web, com detalhes usuais tais como cabeçalho, barras de menu, banners, etc. • Uma vez criada a master page, é possível usá-la para criar content pages. Cada content page herda automaticamente o layout e o conteudo da master page associada
Vantagens da utilização de Master Pages • Layout único para todo o website • A interface com o usuário parece ser contínua e totalmente integrada • Facilita a manutenção do website, uma vez que não existe repetição de código • É óbvio que pode-se desenvolver um website sem master pages que gere os mesmos resultados que um desenvolvido pelo ASP.NET, mas também é certo que será mais trabalhoso
Caraterísticas de Master Pages • Master pages são similares às páginas ASP.NET comuns • Assim como páginas comuns, master pages são arquivos texto que podem conter HTML, controles web e código • Master pages têm uma extensão diferente (.master ao invés de .aspx) • Master pages não podem ser exibidas diretamente por um browser • Essencialmente, master pages definem a estrutura da página e as content pages adotam essa estrutura e a preenchem com conteúdo apropriado
ContentPlaceHolder e Content • ContentPlaceHolder é o controle utilizado nas master pages para definir em que ponto da página serão carregadas as content pages • Content é o controle utilizado nas content pages para definir o que será exibido em um ContentPlaceHolder de uma master page
Como master pages e content pages são conectadas? • Quando criamos uma master page, estamos construindo algo que se parece muito com uma página ASP.NET comum • A principal diferença é que master pages começam com a diretiva Master e web forms começam com a diretiva Page. Exemplo:
Como master pages e content pages são conectadas? • O ContentPlaceHolder é declarado como qualquer outro controle. Exemplo:
Como master pages e content pages são conectadas? • Quando criamos uma content page, o ASP.NET conecta essa página com uma master page adicionando o atributo MasterPageFile à sua diretiva Page. Exemplo: • A diretiva Page também tem um outro novo atributo chamado Title. Este atributo pode ser configurado para sobrescrever o título definido na master page, porém isso somente funcionará se a tag <head> da master page tiver o atributo runat="server"
Como master pages e content pages são conectadas? • Uma content page não se parece com um web form comum, isto porque não apresenta os elemntos <html>, <head>, <body>, etc. Uma content page fornece uma tag Content que se conecta à um ContentPlaceHolder de uma master page. Exemplo:
Website NavigationIntrodução • Conhecemos algumas maneiras de direcionar um visitante de um website de uma página para outra. Podemos: • Adicionar HTML links às páginas • Usar o método Response.Redirect() • Usar o método Response.Transfer() • Mas aplicações web profissionais precisam de um sistema de navegação mais sofisticado! • Aplicações profissionais devem permitir a navegação por uma estrutura hierárquica de páginas, sem a necessidade de repetir código de navegação em todas as páginas. • Felizmente o ASP.NET possui um sistema de navegação que torna essa tarefa mais simples.
Website NavigationIntrodução • Para usar o modelo de navegação do ASP.NET é necessário definir: • A hierarquia do website, ou seja, como as páginas estão logicamente organizadas em grupos. Esta estrutura é definida em um arquivo XML. • Uma vez definida a estrutura, basta associar a informação contida no XML com controles especializados de navegação, tais como TreeView e Menu.
Site Maps • O sistema de navegação do ASP.NET é flexível e configurável. • É composto por três componentes: • XML site map • Definição da estrutura hierárquica do website. Por padrão, o XML é armazenado em um arquivo. • SiteMapDataSource e XmlSiteMapProvider • Classes que permitem ler as informações do arquivo site map e convertê-las para objetos na memória. • Controles de navegação • Utilizam as informações providas pelo SiteMapDataSource e XmlSiteMapProvider para mostrar ao usuário sua posição dentro da estrutura do site e para possibilitar que o usuário facilmente navegue de uma página para outra.
Site Maps • É possível customizar cada um dos componentes apresentados no slide anterior: • Para mudar a aparência dos controles de navegação, basta associar controles personalizados ao SiteMapDataSource. • Ou se quisermos ler as informações da estrutura hierárquica do site de um tipo de arquivo diferente ou de um banco de dados, basta customizar o SiteMapProvider.
Definindo um Site Map • O ASP.NET possui um único provedor para navegação, chamado XmlSiteMapProvider, o qual é capaz de recuperar informações de um arquivo XML. • O XmlSiteMapProvider procura por um arquivo chamado web.sitemap na raiz do diretório virtual. Sua tarefa é extrair as informações do arquivo e criar um objeto SiteMap. • O objeto SiteMap fica disponível para o SiteMapDataSource, o qual pode ser colocado em todas as páginas que utilizam o sistema de navegação. • O SiteMapDataSource, por sua vez, provê informações aos controles de navegação, os quais representam o final da cadeia.
Regras do ASP.NET Site MapRegra 1 • Todo arquivo web.sitemap começa com a declaração do elemento <siteMap> e acaba fechando esse elemento. • Veja um exemplo:
Regras do ASP.NET Site MapRegra 2 • Essencialmente, todo mapa de site define uma estrutura de páginas web. • Para inserir uma página no mapa do site, adicionamos o elemento <siteMapNode> com algumas informações básicas: • Título da página • Uma descrição da página (pode ou não ser usada) • URL da página • Veja um exemplo:
Regras do ASP.NET Site MapRegra 3 • Um elemento <siteMapNode> pode conter outros elementos <siteMapNode>. • Mapas de sites não são simples listas de páginas, normalmente eles organizam as páginas em grupos, ou seja, criam uma estrutura hierárquica. • Veja como criar uma estrutura hierárquica:
Regras do ASP.NET Site MapRegra 4 • Todo mapa de site começa com um único elemento <siteMapNode>. • Veja um exemplo incorreto de mapa:
Regras do ASP.NET Site MapRegra 4 • Veja um exemplo correto de mapa:
Regras do ASP.NET Site MapRegra 5 • URLs duplicadas não são permitidas • Não podemos criar dois elementos <siteMapNode> com a mesma URL • Isto pode significar um problema quando temos o mesmo link em mais de um ponto da estrutura do site. Isso ocorre porque o XmlSiteMapProvider armazena os nós da estrutura em uma coleção, onde cada item é indexado por sua URL. • Veja uma forma de contornar o problema:
Controles de Navegação • TreeView • Menu • SiteMapPath