C# - Temas ASP NET PT-BR
C# - Temas ASP NET PT-BR
C# - Temas ASP NET PT-BR
Excees ............................................................................................................................................................ 41
Log de Eventos .................................................................................................................................................. 41
Informaes de Rastreamento ........................................................................................................................... 42
CREATING WEB SITE NAVIGATION ......................................................................................................................... 42
GUIA DE INTRODUO CRIANDO NAVEGAO EM SITES DA WEB ............................................... 44
VISO GERAL SOBRE NAVEGAO EM SITES DO ASP.NET ..................................................................................... 44
Processo de carga de mapa de site.................................................................................................................... 45
MAPAS DE SITES DO ASP.NET................................................................................................................................ 47
PASSO-A-PASSO: ADICIONANDO NAVEGAO DO SITE A UM WEB SITE ................................................................... 49
Criando um web site do sistema de arquivos .................................................................................................... 50
Para criar um web site do sistema de arquivos................................................................................................. 50
Criando um mapa do site................................................................................................................................... 50
Para criar um mapa do site............................................................................................................................... 50
Criando pginas para navegar.......................................................................................................................... 51
Para criar pginas para navegar...................................................................................................................... 51
Para adicionar um menu de navegao Tree-Style........................................................................................... 52
Testando o menu de navegao Tree Style........................................................................................................ 52
Para testar o menu de navegao ..................................................................................................................... 52
Para exibir o histrico da navegao ............................................................................................................... 52
Testando o histrico da navegao ................................................................................................................... 53
Para testar a navegao da pgina................................................................................................................... 53
Para adicionar um menu de navegao menu-style .......................................................................................... 53
Testando o menu de navegao menu-style....................................................................................................... 54
Para testar o menu de navegao ..................................................................................................................... 54
Para criar controles de navegao para a pgina mestra ................................................................................ 54
Para adicionar controles de navegao pgina mestra ................................................................................. 55
Para criar pginas de contedo para o site ...................................................................................................... 55
Testando controles de navegao na pgina mestra......................................................................................... 56
Para testar o controle de navegao na pgina mestra .................................................................................... 56
COMO: ADICIONAR NAVEGAO EM SITES SIMPLES .............................................................................................. 57
COMO: PERSONALIZAR A APARNCIA DE CONTROLES SITEMAPPATH DE SERVIDOR WEB .................................... 58
Para usar o recurso de ignorar a acessibilidade .............................................................................................. 60
TORNANDO NAVEGAO EM SITES DO ASP.NET SEGURO ...................................................................................... 60
Protegendo Valores de Configurao ............................................................................................................... 61
Mapeamento URL.............................................................................................................................................. 61
Processo de Carga do Mapa do Site ................................................................................................................. 62
Incluindo URLs Externos em um Mapa de Site ................................................................................................. 63
Mensagens de Exceo...................................................................................................................................... 63
Mensagens de Erro............................................................................................................................................ 63
Log de Eventos .................................................................................................................................................. 63
USANDO THEMES ASP.NET 2.0......................................................................................................................... 65
CONCEITO ............................................................................................................................................................... 65
PROBLEMA .............................................................................................................................................................. 65
SOLUO ................................................................................................................................................................ 65
CRIAR UM NOVO TEMA ............................................................................................................................................ 66
ATRIBUIR ESTILO CRIADO ....................................................................................................................................... 68
1. CONCEITO ........................................................................................................................................................... 70
2. PROBLEMA .......................................................................................................................................................... 70
3. SOLUO ............................................................................................................................................................ 70
4. OUTRO PROBLEMA .............................................................................................................................................. 73
5. SOLUO ............................................................................................................................................................ 74
TEMAS E APARNCIAS DO ASP.NET ............................................................................................................... 76
VISO GERAL SOBRE CAPAS E TEMAS DO ASP.NET ............................................................................................... 76
Temas e Aparncias de Controle....................................................................................................................... 76
Aparncias......................................................................................................................................................... 76
Folhas de Estilo em Cascata ............................................................................................................................. 77
Grficos e Outros Recursos de Temas............................................................................................................... 77
Temas de Escopo ........................................................................................................................................ 77
Temas de Pgina ............................................................................................................................................... 77
Temas Globais................................................................................................................................................... 78
Voc criar arquivos .skin na pasta do tema. Um arquivo.skin pode conter uma ou
mais aparncias de controle para um ou mais tipos de controle. Voc pode definir
aparncias em um arquivo separado para cada controle ou definir todos as
aparncias para um tema em um nico arquivo.
Existem dois tipos de aparncias de controle, aparncias padro (default skins) e
aparncias nomeadas (named skins):
a controles por tipo. Em vez disso, voc aplica uma aparncia nomeada a um
controle explicitamente, definindo propriedade SkinID do controle. A criao de
aparncias nomeadas permite-lhe definir aparncias diferentes para instncias
diferentes do mesmo controle em um aplicativo.
Folhas de Estilo em Cascata
Um tema tambm pode incluir uma folha de estilos em cascata (arquivo .css).
Quando voc coloca um arquivo.css no diretrio do tema, a folha de estilos
aplicada automaticamente como parte do tema. Voc define uma folha de estilos
usando a extenso de nome de arquivo .css na pasta do tema.
Grficos e Outros Recursos de Temas
Temas tambm pode incluir elementos grficos e outros recursos, como arquivos
de script ou arquivos de som. Por exemplo, parte do seu tema de pgina pode
incluir uma aparncia de um controle TreeView. Como parte do tema, voc pode
incluir os elementos grficos usados para representar os botes de expandir e
recolher.
Normalmente os arquivos de recursos para o tema esto na mesma pasta que os
arquivos de aparncias para esse tema, mas elas podem ser em outro lugar no
aplicativo da Web, em uma subpasta do diretrio do tema por exemplo. Para se
referir a um arquivo de recursos em uma subpasta do diretrio do tema, use um
caminho como o que est sendo mostrado nesta aparncia de controle Image:
<asp:Image runat="server" ImageUrl="ThemeSubfolder/filename.ext" />
Voc tambm pode armazenar seus arquivos de recurso fora a diretrio do tema.
Se voc usar a sintaxe til (~) para consultar os arquivos de recursos, o aplicativo
da Web automaticamente encontrar as imagens. Por exemplo, se voc colocar os
recursos para um tema em um subdiretrio do seu aplicativo, voc pode utilizar
caminhos do formulrio ~/SubPasta/nomedoarquivo.ext para referir-se a arquivos
de recursos, como no seguinte exemplo de cdigo
<asp:Image runat="server" ImageUrl="~/AppSubfolder/filename.ext" />
Temas de Escopo
Voc pode definir temas para um nico aplicativo da Web, ou como temas globais
que podem ser usados por todos os aplicativos em um servidor Web. Aps um tema
ser definido, ele pode ser colocado em pginas individuais usando o atributo
Theme ou StyleSheetTheme da diretiva @ Page, ou pode ser aplicado a todas as
pginas em um aplicativo definindo o elemento <pages> no arquivo de
configurao do aplicativo. Se o elemento <pages> estiver definido no arquivo
Machine.config, o tema ser aplicado a todas as pginas em aplicativos da Web no
servidor.
Temas de Pgina
Um tema de pgina uma pasta de tema com aparncias de controle, folhas de
estilos, arquivos grficos e outros recursos criados como um subpasta da pasta
\App_Themes em seu site da Web. Cada tema uma subpasta diferente da pasta
\App_Themes. O exemplo de cdigo a seguir mostra um tema de pgina tpico,
definindo dois temas chamados BlueTheme e PinkTheme.
MyWebSite App_Themes BlueTheme Controls.skin BlueTheme.css PinkTheme
Controls.skin PinkTheme.css
Temas Globais
Um tema global um tema que voc pode aplicar a todos os sites da Web em um
servidor. Temas globais permitem que voc defina uma aparncia geral para o
domnio quando voc mantiver vrios sites da Web no mesmo servidor.
Temas globais so como temas de pgina dentro dos quais eles incluem
configuraes de propriedade, configuraes de folha de estilos, e elementos
grficos. Entretanto, temas globais so armazenados em uma pasta chamada
\Themes que global para o servidor Web. Qualquer site no servidor, e qualquer
pgina em qualquer site da Web, pode referenciar um tema global. Para obter mais
informaes sobre como criar uma pasta de temas globais, consulte Como definir
temas ASP.NET:.
Precedncia das Configuraes de Tema
Como regra, voc pode usar temas para definir propriedades que dizem respeito
aparncia ou contedo esttico de uma pgina ou controle. Voc pode definir
somente as propriedades que possuem um atributo ThemeableAttribute definido
como true na classe controle
Propriedades que especificam explicitamente o comportamento do controle em vez
da aparncia no aceitam valores de tema. Por exemplo, voc no pode definir a
propriedade CommandName de um controle Button, usando um tema. Da mesma
forma, voc no pode usar um tema para definir a propriedade AllowPaging ou a
propriedade DataSource de um controle GridView.
Temas versus Folhas de Estilo em Cascata
Criando seu prprio tema que inclui capas, que so usadas para definir o
aspecto dos controles individuais.
Pr-requisitos
O .NET Framework.
Criando o site da Web
2.
3.
4.
5.
6.
3.
4.
5.
Salve a pgina.
Para testar a pgina, voc desejar ver a pgina antes de um tema ser aplicado, e
depois com diferentes temas.
Criando e aplicando um tema a uma pgina
O ASP.NET torna fcil aplicar um tema predefinido a uma pgina, ou criar um tema
exclusivo. (Para obter detalhes, consulte COMO: Definir temas ASP.NET.) Nesta
parte da explicao passo a passo, voc ir criar um tema com algumas capas
simples, que definem a aparncia dos controles.
Para criar um novo tema
1.
2.
3.
4.
Observao
As caractersticas exatas que voc define so no importantes. Os valores da seleo anterior so
sugestes que sero mais bvias quando voc testar o tema posteriormente.
As definies de capa so semelhantes sintaxe para criao de um controle,
exceto que as definies incluem apenas configuraes que afetam a
aparncia do controle. Por exemplo, as definies capa no incluem uma
configurao para a propriedade ID.
5.
Agora voc pode testar a pgina antes de que qualquer temas seja aplicado.
Observao
Se voc adicionar um arquivo de folhas de estilo em cascata (CSS) para a sua pasta sampleTheme, ele
ser aplicado a todas as pginas que usam o tema.
Para testar temas
1.
2.
3.
Observao
Voc deve indicar o nome de um tema real no valor do atributo (neste caso, o arquivo sampleTheme.skin
que voc definiu anteriormente).
4.
5.
6.
usa os mesmos arquivos de tema como um tema personalizado, mas sua prioridade
nos controles e propriedades da pgina inferior, equivalente a um arquivo CSS.
No ASP.NET, a ordem de prioridade :
Quanto a isso, se voc optar por usar um tema de folhas de estilo, as propriedades
do seu tema sero substitudas por qualquer coisa declarada localmente na pgina.
Da mesma forma, se voc usar um tema personalizado, as propriedades do seu
tema iro substituir qualquer coisa dentro a pgina local, e tambm em qualquer
tema de folhas de estilo em uso.
Para usar um tema de folhas de estilo e consultar ordem de prioridade
1.
2.
3.
4.
5.
6.
7.
8.
De volta para:
<%@ Page Theme="sampleTheme" %>
9.
BackColor
Cyan
BorderColor
Red
10
BorderWidth
CellSpacing
Font-Name
Arial
Font-Size
SelectedDayStyle-BackColor
Red
SelectedDayStyle-ForeColor
Yellow
TodayDayStyle-BackColor
Large
Pink
Observao
As caractersticas exatas que voc definir no so importantes. Os valores da lista anterior so sugestes
que sero mais bvios quando voc testar o tema posteriormente.
2.
3.
4.
5.
6.
7.
8.
2.
3.
11
Observao
Web.config diferencia maisculas de minsculas e os valores esto caixa-mista (alta e baixa). (Por
exemplo: tema e styleSheetTheme).
4.
5.
6.
7.
Se voc optar por especificar um nome de tema na declarao de sua pgina, ele
substituir qualquer tema especificado no seu arquivo Web.config.
Prximas etapas
O suporte ASP.NET para temas oferece uma variedade de opes para adaptar do
aspecto e percepo de um aplicativo inteiro. Esta explicao passo a passo
abordou algumas das noes bsicas, mas voc pode estar interessado em
aprender mais. Por exemplo, pode desejar aprender mais sobre:
Uso de temas em geral. Para mais informaes, consulte Viso geral sobre
temas e capas ASP.NET
Criar seus prprios temas e capas. Para mais informaes, consulte COMO:
Definir temas ASP.NET
Usando temas com cdigo. Para mais informaes, consulte COMO: aplicar
temas ASP.NET Programaticamente
12
Voc criar arquivos .skin na pasta do tema. Um arquivo.skin pode conter uma ou
mais aparncias de controle para um ou mais tipos de controle. Voc pode definir
aparncias em um arquivo separado para cada controle ou definir todos as
aparncias para um tema em um nico arquivo.
Existem dois tipos de aparncias de controle, aparncias padro (default skins) e
aparncias nomeadas (named skins):
Voc tambm pode armazenar seus arquivos de recurso fora a diretrio do tema.
Se voc usar a sintaxe til (~) para consultar os arquivos de recursos, o aplicativo
da Web automaticamente encontrar as imagens. Por exemplo, se voc colocar os
recursos para um tema em um subdiretrio do seu aplicativo, voc pode utilizar
caminhos do formulrio ~/SubPasta/nomedoarquivo.ext para referir-se a arquivos
de recursos, como no seguinte exemplo de cdigo
<asp:Image runat="server" ImageUrl="~/AppSubfolder/filename.ext" />
Temas de Escopo
Voc pode definir temas para um nico aplicativo da Web, ou como temas globais
que podem ser usados por todos os aplicativos em um servidor Web. Aps um tema
ser definido, ele pode ser colocado em pginas individuais usando o atributo
13
Temas Globais
Um tema global um tema que voc pode aplicar a todos os sites da Web em um
servidor. Temas globais permitem que voc defina uma aparncia geral para o
domnio quando voc mantiver vrios sites da Web no mesmo servidor.
Temas globais so como temas de pgina dentro dos quais eles incluem
configuraes de propriedade, configuraes de folha de estilos, e elementos
grficos. Entretanto, temas globais so armazenados em uma pasta chamada
\Themes que global para o servidor Web. Qualquer site no servidor, e qualquer
pgina em qualquer site da Web, pode referenciar um tema global. Para obter mais
informaes sobre como criar uma pasta de temas globais, consulte Como definir
temas ASP.NET:.
Precedncia das Configuraes de Tema
Como regra, voc pode usar temas para definir propriedades que dizem respeito
aparncia ou contedo esttico de uma pgina ou controle. Voc pode definir
somente as propriedades que possuem um atributo ThemeableAttribute definido
como true na classe controle
14
Tarefas
Como definir temas ASP.NET:
COMO: Aplicar temas ASP.NET
1.
2.
Crie uma nova subpasta da pasta App_Themes para manter seus arquivos
tema. O nome da subpasta o nome do tema. Por exemplo, para criar um
tema chamado BlueTheme, crie uma pasta denominada
\App_Themes\BlueTheme.
3.
Adicione arquivos nova pasta para capas, folhas de estilos e imagens que
compem o tema.
15
1.
Observao
O nome da pasta para temas globais Themes, no App_Themes, como para temas de pgina.
2.
Crie uma pasta de tema como uma subpasta da pasta Themes. O nome da
subpasta o nome do tema. Por exemplo, para criar um tema global chamado
BlueTheme, crie uma pasta chamada ...\Themes\BlueTheme.
3.
Adicione arquivos nova pasta para capas, folhas de estilos e imagens que
compem o tema.
1.
Crie um novo arquivo de texto na sua subpasta de tema com uma extenso
.skin.
A conveno comum consiste em criar um arquivo .skin por controle, como
Button.skin ou Calendar.skin. Contudo, voc pode criar tantos ou to poucos
arquivos .skin de quantos voc precisar; arquivos de capas podem conter
vrias definies de capa.
2.
Observao
Uma maneira conveniente para criar uma capa adicionar o controle a uma pgina e configur-la de
modo que ele tenha a aparncia desejada. Por exemplo, voc pode adicionar um controle Calendar a uma
pgina e definir seu cabealho do dia, data selecionada e outras propriedades. Em seguida, voc pode
copiar a definio de controle da pgina em um arquivo de capa e remover o atributo ID.
3.
Repita as etapas 2 e 3 para cada capa de controle que voc deseja criar.
Observao
Voc pode definir apenas uma capa padro por controle. Use o atributo SkinID na declarao do controle
da capa para criar uma capa nomeada que voc pode aplicar s instncias de um controle especfico.
16
1.
Observao
Se um tema de aplicativo tem o mesmo nome de um tema de aplicativo global, o tema da pgina ter
prioridade.
2.
Page com o
17
18
19
Para usar perfis, voc deve primeiro ativar perfis modificando o arquivo de
configurao para seu aplicativo da Web do ASP.NET. Como parte da configurao,
voc especifica um provedor de perfil, que a classe base que executa as tarefas
de nvel baixo de armazenamento e recuperao de dados de perfil. Voc pode usar
o provedor de perfil includo no .NET Framework, que armazena dados de perfil no
SQL Server, ou voc pode criar e usar seu prprio provedor de perfil conforme
descrito no tpico Implementando um provedor perfil. Voc pode especificar se
20
Quando seu aplicativo executado, ASP.NET cria uma classe ProfileCommon, que
uma classe gerada dinamicamente que herda a classe ProfileBase. A classe
dinmica ProfileCommon inclui propriedades criadas das definies de
propriedade de perfil que voc especifica na sua configurao de aplicativo. Uma
instncia dessa classe dinmica ProfileCommon depois definida como o valor da
propriedade Profile do atual HttpContext e est disponvel para pginas em seu
aplicativo.
Em seu aplicativo, voc coleta o valor ou valores que deseja armazenar e os atribui
s propriedades de perfil que voc definiu. Por exemplo, a home page de seu
aplicativo pode conter uma caixa de texto que solicita ao usurio para digitar um
cdigo postal. Quando o usurio insere um cdigo postal, voc define uma
propriedade Profile para armazenar o valor para o usurio atual, como no exemplo
a seguir:
C#
Profile.PostalCode = txtPostalCode.Text;
21
Perfis tambm podem trabalhar com usurios annimos. Se o suporte para perfis
annimos no estiver habilitado por padro, ento voc dever ativ-lo
explicitamente. Alm disso, quando voc define propriedades de perfil no arquivo
Web.config, explicitamente voc deve disponibiliz-las individualmente para
usurios annimos. Propriedades de perfil no oferecem suporte a acesso annimo
por padro porque perfis podem ser desenvolvidos para funcionar com usurios
autenticados, e vrias propriedades provavelmente sero referentes a informaes
pessoais que no esto disponveis para usurios annimos.
Se a identificao annima estiver ativada, o ASP.NET cria uma identificao
exclusiva para usurios na primeira vez que visitar seu site. A identificao
exclusiva de usurio armazenada em um cookie no computador do usurio para
que o usurio possa ser identificado com cada solicitao de pgina. O perodo de
expirao padro do cookie definido como aproximadamente 70 dias e
periodicamente renovado quando um usurio visita o site. Se o computador do
usurio no aceitar cookies, a identificao do usurio pode ser mantida como parte
do URL da solicitao da pgina, embora a identificao seja perdidas quando o
usurio desligar o navegador.
Para informaes sobre como ativar identificao annima, consulte o
anonymousIdentification elemento (esquema configuraes ASP.NET).
Migrando informaes de perfil annimas
22
Quando voc define uma propriedade no perfil, voc especifica um nome que voc
usar para fazer referncia propriedade. Por exemplo, se voc deseja armazenar
um cdigo postal, voc pode nomear a propriedade PostalCode e voc poder obter
e definir o valor da propriedade como Profile.PostalCode.
Opcionalmente, voc pode definir as seguintes caractersticas adicionais para cada
propriedade:
defaultValue
inicializada.
23
Voc tambm pode armazenar tipos complexos, tal como colees, em perfis de
usurio. Para tipos complexos, voc deve fornecer informaes sobre como o tipo
deve ser serializado, para que o sistema de perfil possa obter e definir o valor da
propriedade como o tipo apropriado.
O exemplo a seguir mostra uma definio de propriedade para um valor tipado
como uma coleo:
<profile defaultProvider="AspNetSqlProfileProvider"> <properties> <add
name="FavoriteURLs" type="System.Collection.Specialized.StringCollection"
serializeAs="Xml" /> </properties> </profile>
Para definir uma propriedade desse tipo, voc pode usar cdigo como o seguinte:
C#
System.Collections.Specialized.StringCollection favorites; favorites =
Profile.FavoriteURLs;
Trabalhando com tipos de propriedade definidos pelo usurio
24
O exemplo de cdigo a seguir ilustra uma classe ShoppingCart simples que mantm
uma coleo de itens Cart que armazenam um identificador de item, nome e custo:
C#
namespace Samples.AspNet.Profile { [Serializable] public class ShoppingCart {
public DateTime Created; public DateTime LastUpdated; public
CartItemCollection CartItems = new CartItemCollection(); } [Serializable]
public class CartItemCollection : System.Collections.Hashtable { }
[Serializable] public class CartItem { public CartItem(int itemId, string
itemName, double itemCost) { ID = itemId; Name = itemName; Cost = itemCost; }
int ID; string Name; double Cost; } }
25
ASP.NET inclui um provedor de perfil que armazena dados usando Microsoft SQL
Server. A configurao de mquina ASP.NET padro contm uma instncia padro
de SqlProfileProvider denominada AspNetSqlProfileProvider que se conecta ao SQL
Server na mquina local. Por padro, o recurso perfil do ASP.NET usa esta instncia
do provedor. Como alternativa, voc pode especificar um provedor padro diferente
no arquivo Web.config do aplicativo.
Para usar um SqlProfileProvider, voc deve primeiro criar o banco de dados do
SQL Server usado pelo SqlProfileProvider. Voc pode criar o banco de dados ao
executar o comando Aspnet_regsql.exe, que encontrado no seguinte caminho:
systemroot\Microsoft .NET\SDK\version
Quando voc executar a ferramenta, voc especifica a opo -Ap. O comando a
seguir mostra a sintaxe que voc usar para criar o banco de dados necessrio para
armazenar perfis do ASP.NET usando o SqlProfileProvider:
aspnet_regsql.exe -Ap
26
Observao
As propriedades de Perfil do ASP.NET podem trabalhar sem cookies, se o aplicativo estiver configurado
para trabalhar sem cookies. No entanto, para este passo-a-passo voc usar as configuraes padro para
propriedades de Perfil que usa cookies.
Criando e Configurando o Site
Se voc j criou um site no Microsoft Visual Studio completando Passo-a-passo:
Criando uma Pgina Bsica da Web no Visual Web Developer, voc pode usar esse
site e ir para a prxima seo. Caso contrrio, crie um novo site seguindo as
seguintes etapas.
Para criar um site de sistema de arquivos
1.
2.
3.
4.
5.
No lista Location mais a direita, digite o nome da pasta onde voc deseja
manter as pginas do site
Por exemplo, digite C:\WebSites para nome da pasta.
6.
7.
27
2.
3.
4.
2.
Observao
Os elementos do arquivo web.config diferenciam maisculas de minsculas. Portanto, certifique-se que
voc copiou ou digitou os elementos exatamente igual ao que foi mostrado.
Voc adicionou os seguintes elementos:
o
o
o
28
Adicione uma nova pgina Web Form ao seu site chamada Profiles.aspx.
2.
3.
TextBox
= IDtextPostalCode
Button
= IDSetPostalCode
= TextSet Postal Code
Label
= IDlabelPostalCode
= Text (vazio)
4.
5.
29
C#
void SetPostalCode_Click(object sender, System.EventArgs e) {
Profile.PostalCode = Server.HtmlEncode(textPostalCode.Text);
labelPostalCode.Text = Profile.PostalCode; }
2.
3.
4.
30
pode armazenar propriedades de Perfil de qualquer tipo, mas voc deve fornecer
informaes adicionais quando as est definindo.
Para Definir a Propriedade FavoriteURLs
1.
2.
TextBox
= IDtextFavoriteURL
Button
= IDAddURL
= TextAdd URL
ListBox
2.
= IDlistFavoriteURLs
3.
31
4.
5.
2.
3.
4.
Feche o navegador.
5.
32
3.
4.
5.
6.
7.
2.
3.
33
2.
3.
Prximas Etapas
Este passo-a-passo ilustrou os procedimentos bsicos para configurar e usar
propriedades de Perfil em aplicativos da Web. Voc pode usar propriedades de
Perfil para muitos fins em seus aplicativos. A lista a seguir sugere outras reas
onde voc pode trabalhar com propriedades de Perfil:
34
Classes necessrias
Para implementar um provedor de perfil, voc cria uma classe que herda a classe
abstrata System.Web.Profile.ProfileProvider. A classe abstrata ProfileProvider
sucessivamente herda a classe abstrata System.Configuration.SettingsProvider, que
herda a classe abstrata System.Configuration.Provider.ProviderBase. Devido a essa
cadeia de herana, alm dos membros da classe ProfileProvider exigidos, voc
deve implementar os membros das classes SettingsProvider e ProviderBase
exigidos.
As tabelas a seguir descrevem as propriedades e os mtodos que voc deve
implementar das classes abstratas ProviderBase, SettingsProvider e
ProfileProvider. Para revisar uma implementao de cada membro, consulte o
Como: criar e executar o exemplo de provedor de perfil:.
Membros da ProviderBase
Membro
Descrio
Mtodo
Initialize
Membros da SettingsProvider
Membro
Descrio
Propriedade
ApplicationName
O nome do aplicativo que armazenado com cada perfil. O provedor de perfil usa
o nome do aplicativo para armazenar informaes de perfil separadamente para
cada aplicativo. Isso permite que vrios aplicativos ASP.NET usem a mesma fonte
de dados sem um conflito do mesmo nome de usurio ser criado em aplicativos
diferentes. Como alternativa, vrios aplicativos ASP.NET podem compartilhar uma
fonte de dados de perfil especificando o mesmo nome do aplicativo.
Mtodo
GetPropertyValues
35
Membros da ProfileProvider
Membro
Descrio
Mtodo DeleteProfiles
Mtodo DeleteProfiles
36
excluso falhar.
Mtodo DeleteInactiveProfiles
Mtodo GetAllProfiles
Mtodo GetAllInactiveProfiles
37
38
ApplicationName
39
Para maiores informaes sobre prticas recomendadas para digitar cdigo seguro
e manter segurana em aplicativos, consulte o livro Writing Secure Code por
Michael Howard e David LeBlanc e siga as sugestes fornecidas nos Padres e
Prticas Microsoft (http://www.microsoft.com/resources/practices/default.mspx).
Protegendo Configuraes de Perfil
Seqncias de Conexo
Conforme observado, importante proteger informaes confidenciais
armazenadas em uma seqncia de conexo que usada para se comunicar com
um computador executando o SQL Server ou outra fonte de dados. Para manter a
conexo com seu banco de dados segura, recomendvel que voc criptografe
informaes de seqncia de conexo na configurao usando configurao
protegida. Para obter mais informaes, consulte Criptografar informaes de
configurao usando configurao protegida.
Conectando-se a SQL Server Usando Segurana Integrada
Recomendamos que voc use segurana integrada para se conectar a
computadores com SQL Server, para impedir a seqncia de conexo de ser
comprometida e qualquer informao de identificao e senha de usurio de ser
exposta. Quando voc especifica uma conexo que usa segurana integrada para
conectar-se a um computador que executa o SQL Server, o provedor de perfil
reverte para a identidade do processo. recomendvel que voc garanta que a
identidade do processo que est executando o ASP.NET (por exemplo, o pool de
aplicativos) seja a conta de processo padro ou uma conta de usurio restrito. Para
obter mais informaes, consulte Representao ASP.NET.
Permisses de Banco de Dados SQL Server
O banco de dados do SQL Server que usado por padro para armazenar
informaes de perfil inclui atribuies de banco de dados e modos de exibio que
permitem que voc restrinja o acesso de usurio para somente os privilgios
necessrios para seu aplicativo. recomendvel que voc atribua os mnimos
privilgios necessrios identificao de usurio conectada ao banco de dados de
perfis do SQL Server. Para obter mais informaes, consulte Funes e modos de
exibio no banco de dados Servios de aplicativos para SQL Server.
40
Excees
Para impedir que informaes confidenciais sejam expostas, configure seu
aplicativo para no exibir mensagens de erro detalhadas ou para exibir mensagens
de erro detalhadas somente quando o aplicativo estiver executando localmente no
servidor da Web. Para obter mais informaes, consulte o elemento de
configurao customErrors.
Log de Eventos
O recurso perfil do ASP.NET registra informaes para certas condies de erro
usando monitoramento de integridade ASP.NET, que por padro armazena
informaes no log de eventos. Se o computador servidor estiver executando
Windows Server 2003, voc pode melhorar a segurana do seu aplicativo
protegendo o log de eventos e configurando parmetros do log de eventos com
relao a tamanho, reteno, e assim por diante para impedir um ataque indireta
de negao de servio contra o log de eventos.
41
Informaes de Rastreamento
Seu servidor da Web pode ser configurado para rastreamento quando certas aes
ocorrem com relao ao recurso perfil e para armazenamento das informaes em
um arquivo de log de rastreamento. Como informaes confidenciais como nomes
de usurio podem ser armazenadas no arquivo de log de rastreamento,
recomendvel que voc permita que somente Administradores ativem
rastreamento, configurem a localidade do arquivo de log de rastreamento, e
acessem o arquivo de log de rastreamento.
Provedores de Perfil Personalizados
SiteMapDataSource
Provides a data source control that Web server controls and other controls
can use to bind to hierarchical site map data.
SiteMap
Provides an in-memory representation of a site's navigation structure, which
is provided by one or more site map providers. This class cannot be
inherited.
SiteMapNode
Represents a node in the hierarchical site map structure such as that
described by the SiteMap class and classes that implement the abstract
SiteMapProvider class.
SiteMapNodeCollection
Provides a strongly typed collection for SiteMapNode objects, and
implements the IHierarchicalEnumerable interface to support navigating
through them.
SiteMapNodeItem
Used by the SiteMapPath control to functionally represent a SiteMapNode.
SiteMapPath
Displays a set of text or image hyperlinks that enable users to more easily
navigate a Web site, while taking up a minimal amount of page space.
TreeView
When bound to a site map provider control, displays hierarchical site map
data in a tree structure.
42
Menu
When bound to a site map provider control, displays hierarchical site map
data in a menu structure.
43
Mapas de site Voc pode usar um mapa de site para descrever a estrutura
lgica do seu site. Em seguida, voc pode gerenciar a navegao de pgina,
modificando o mapa do site medida que pginas vo sendo adicionadas ou
removidas, em vez de modificar hyperlinks em todas as suas pginas da Web.
Controles ASP.NET Voc pode usar controles ASP.NET para exibir menus
de navegao em suas pginas da Web. Os menus de navegao so baseados
no mapa do site.
Com a navegao em site do ASP.NET, voc descreve o layout do seu site como
uma hierarquia. Por exemplo, uma loja de informtica fictcia on-line pode ter um
site composto de oito pginas, que so apresentadas da maneira a seguir.
Home Products Hardware Software Services Training Consulting Support
44
Aps voc criar um mapa do site, voc pode exibir a estrutura de navegao em
uma pgina ASP.NET, usando um controle de navegao em site. Para obter um
exemplo, consulte COMO: Adicionar navegao em sites simples.
Processo de carga de mapa de site
O provedor padro de mapa de site ASP.NET carrega dados de mapa de site como
um documento XML e armazena-os em cache como dados estticos quando o
aplicativo iniciado. Um arquivo de mapa de site excessivamente grande pode
utilizar uma grande quantidade de memria e energia da CPU no tempo de
carregamento. Os recursos de navegao em site do ASP.NET dependem das
notificaes de arquivo para manter os dados de navegao atualizados. Quando
um arquivo de mapa de site for alterado, o ASP.NET recarrega os dados do mapa
de site. Certifique-se de configurar qualquer software de deteco de vrus para que
ele no modifique os arquivos de mapa de site. Para obter mais informaes,
consulte Tornando navegao em sites do ASP.NET seguro.
Controles de navegao em site
Criar um mapa de site que reflita a estrutura do seu site uma parte do sistema de
navegao em site do ASP.NET. A outra parte deve exibir a estrutura de navegao
de suas pginas ASP.NET da Web para que os usurios possam navegar facilmente
pelo seu site. Voc poder criar facilmente a navegao em suas pginas usando os
seguintes controles de navegao em site do ASP.NET:
45
controle SiteMapDataSource a uma pgina que possa ler o mapa do site. Voc
ento liga o controle TreeView ou Menu no controle SiteMapDataSource, o que
resulta no mapa do site sendo processado na pgina. O controle TreeView exibir
algo como o seguinte:
- Home
- Services
+ Training
Observao
Uma maneira fcil de exibir os controles SiteMapPath, TreeView ou Menu em todas as pginas do seu
site criar uma pgina mestra e adicionar os controles a essa pgina. Para obter mais informaes,
consulte Viso Geral de Pginas Mestras do ASP.NET.
API de navegao em site
Voc pode usar controles de navegao para adicionar navegao em site s suas
pginas com pouco ou nenhum cdigo, mas voc tambm pode trabalhar com
navegao em site atravs de programao. Quando seu aplicativo da Web
executado, o ASP.NET expe um objeto SiteMap que reflete a estrutura do mapa de
site. Todos os membros do objeto SiteMap so estticos. O objeto SiteMap, em
retorno, expe uma coleo de objetos SiteMapNode que contm propriedades para
cada n no mapa. (Quando voc usa o controle SiteMapPath, o controle funciona
com os objetos SiteMap e SiteMapNode para processar os links apropriados
automaticamente.)
Voc pode usar os objetos SiteMap, SiteMapNode e SiteMapProvider em seu
prprio cdigo para percorrer a estrutura de mapa de site ou criar um controle
personalizado para exibir dados do mapa de site. Voc no pode gravar no mapa do
site, mas voc pode alterar ns do mapa de site na instncia do objeto. Para obter
mais informaes, consulte Como Modificar, por Programao, Ns de um Mapa de
Site na Memria ou Como Enumerar, por Programao, Ns de um Mapa de Site.
Relacionamentos entre componentes de navegao em site
46
A maneira mais simples de criar um mapa do site consiste em criar um arquivo XML
denominado Web.sitemap que organiza as pginas no site hierarquicamente. Este
mapa do site capturado automaticamente pelo provedor de mapa de site padro
do ASP.NET.
O arquivo Web.sitemap deve ser localizado no diretrio raiz do aplicativo, embora
ele possa referenciar outros provedores de mapa do site, ou outros arquivos de
mapa do site em outros diretrios, contanto que esses arquivos estejam no mesmo
aplicativo. Para obter mais informaes, consulte Como Configurar Vrios Mapas de
Site e Provedores de Mapas de Site.
47
Observao de segurana
A implementao de um provedor de mapa do site personalizado que armazene dados de mapa do site em
um arquivo com uma extenso de nome de arquivo diferente de .sitemap um risco de segurana em
potencial. Por padro, o ASP.NET configurado para proteger arquivos com extenses de nome de
arquivo conhecidas como .sitemap de serem descarregados por um cliente. Para ajudar a proteger
seus dados, coloque quaisquer arquivos de dados de mapa do site personalizados que tenham uma
extenso de nome de arquivo diferente de .sitemap na pasta App_Data. Para obter mais informaes,
consulte Tornando navegao em sites do ASP.NET seguro.
O exemplo de cdigo a seguir mostra como o mapa do site pode procurar por um
site simples que remeta a trs nveis de profundidade. O atributo url pode comear
com o atalho "~/" que indica a raiz do aplicativo Para obter mais informaes,
consulte Caminhos de Site Web do ASP.NET.
<siteMap> <siteMapNode title="Home" description="Home" url="~/default.aspx">
<siteMapNode title="Products" description="Our products"
url="~/Products.aspx"> <siteMapNode title="Hardware" description="Hardware
choices" url="~/Hardware.aspx" /> <siteMapNode title="Software"
description="Software choices" url="~/Software.aspx" /> </siteMapNode>
<siteMapNode title="Services" description="Services we offer"
url="~/Services.aspx"> <siteMapNode title="Training" description="Training
classes" url="~/Training.aspx" /> <siteMapNode title="Consulting"
description="Consulting services" url="~/Consulting.aspx" /> <siteMapNode
title="Support" description="Supports plans" url="~/Support.aspx" />
</siteMapNode> </siteMapNode> </siteMap>
48
Voc pode usar mais de um provedor ou arquivo de mapa do site para descrever a
estrutura de navegao de um site da Web inteiro. Por exemplo, o arquivo
Web.sitemap raiz pode ser vinculado a um arquivo de mapa do site filho
referenciando o arquivo de mapa do site filho em um elemento siteMapNode
usando o cdigo a seguir.
<siteMapNode siteMapFile="MySiteMap.sitemap"/>
Para obter mais informaes, consulte Como Configurar Vrios Mapas de Site e
Provedores de Mapas de Site.
Localizing Mapas do Site
Title
Description
Criar um web site que tenha pginas exemplo e um arquivo site-map que
descreve o layout de pginas.
Usar navegao do site e controles em um pgina mestra tal que voc defina
a navegao do site somente uma vez.
Pr-requisitos
49
O .NET Framework.
Este passo-a-passo assume que voc sabe como usar o Visual Web Developer.
Criando um site que possui pginas de exemplo e um mapa do site
Se voc j criou um site no Visual Web Developer, tendo completado o Passo-apasso: Criando uma pgina da Web bsica no Visual Web Developer, voc pode
usar esse web site e ir para a prxima seo. Caso contrrio, crie um novo web site
e pgina, seguindo estas etapas.
Criando um web site do sistema de arquivos
Para criar um web site do sistema de arquivos
1.
2.
3.
4.
5.
6.
Clique em OK.
O Visual Web Developer cria a pasta e uma nova pgina chamado
Default.aspx.
2.
50
Clique em Add.
3.
4.
2.
51
3.
4.
5.
Salve a pgina.
2.
o
52
2.
3.
Repita este procedimento para as outras pginas que voc tenha criado
neste passo-a-passo, exceto a pgina Home.
Mesmo que voc no coloque um controle SiteMapPath em cada pgina,
para testes necessrio um controle em uma pgina em cada nvel da
hierarquia do site (por exemplo, nas pginas Products.aspx e Hardware.aspx).
2.
3.
4.
2.
3.
53
4.
5.
FecheMenu Tasks.
2.
Abra o Home.aspx.
3.
4.
5.
3.
2.
54
2.
3.
4.
5.
No menu Layout, clique em Insert Table e insira uma tabela que possui
uma linha, duas colunas e largura de 100%.
6.
7.
8.
9.
2.
3.
4.
55
2.
3.
4.
Clique em Add.
6.
7.
8.
9.
2.
Prximas etapas
Este passo-a-passo ilustra a funcionalidade bsica de navegao do site do
ASP.NET e controles de navegao. Voc pode testar com recursos adicionais de
navegao. Por exemplo, convm para fazer o seguinte:
56
1.
2.
Observao
57
Seu aplicativo da Web falhar se voc listar um URL que no existe, ou se voc listar um URL duplicado.
O atributo url pode comear com o atalho " ~/" que indica a raiz de aplicativo. Para obter mais
informaes, consulte Caminhos de Site Web do ASP.NET.
Posteriormente neste tpico, voc criar a pgina Training.aspx.
3.
1.
2.
3.
Segurana
Voc pode ocultar os links na sua estrutura de navegao dos membros das
funes de segurana especficos. Para obter mais informaes, consulte Trimming
segurana ASP.NET Site-Map.
58
pgina atual para voltar pgina inicial do site da Web. Em uma pgina ASP.NET, o
controle SiteMapPath exibe algo como o seguinte:
Home > Services > Training
Os controles TreeView e Menu tambm processam dados de mapa de site, e eles,
semelhante ao controle SiteMapPath, podem ser personalizados como a maioria
dos outros controles da Web. Este tpico descreve como usar os seguintes recursos
de personalizao do controle de servidor Web SiteMapPath:
Os procedimentos neste tpico supem que voc j tenha criado um mapa de site e
uma pgina que contm um controle SiteMapPath. Voc pode usar o arquivo
exemplo Web.sitemap em Mapas de sites do ASP.NET.
Para personalizar propriedades de estilo link
1.
Se voc desejar que o estilo de cada link seja diferente, repita a etapa
anterior com as propriedades ParentNodeStyle, CurrentNodeStyle, e
PathSeperatorStyle do controle SiteMapPath.
Observao
Para melhorar o desempenho, voc pode usar o NodeTemplate para personalizar o estilo de todos os
links de uma vez. Para obter mais informaes, consulte Como criar modelos de controle do servidor da
Web ASP.NET:.
59
Acessibilidade
60
61
62
As sees a seguir abordam como voc pode atenuar possveis riscos de segurana
que so expostos por mensagens de erro e eventos inesperados.
Mensagens de Exceo
Excees disparadas por recursos de navegao em sites do ASP.NET no expe
informaes privilegiadas. Revise e teste classes personalizadas do seu aplicativo
da Web por entradas e solicitaes invlidas para ajudar a garantir que informaes
privilegiadas no sero expostas quando ocorrerem excees.
Mensagens de Erro
Para ajudar a evitar a exposio de informaes confidenciais a fontes indesejveis,
ative erros personalizados para o seu aplicativo, ou exiba mensagens de erro
detalhadas somente quando o cliente for o prprio servidor da Web. Para obter
mais informaes, consulte customErrors elemento (esquema configuraes
ASP.NET).
Log de Eventos
Se o computador estiver executando o Windows Server 2003, voc poder ajudar
a melhorar a segurana do seu aplicativo, protegendo o log de eventos. Alm disso,
63
64
Problema
Preciso colocar um estilo para cada controle de meu projeto WEB ASP.NET 2.0.
Antigamente utilizada Style.css para definir os meus controles, e dentro dos
controles utilizava o famoso CssClass atribuindo a class que gostaria descrita
dentro do arquivo .CSS. Dessa forma era muito trabalhoso porque para cada
controle precisava colocar o CssClass e assim definir o visual ou estilo do
controle, poderia ser tanto um textBox quanto um dataGrid.
Com a nova verso do Visual Studio.NET 2005 utilizando o framework 2.0, foi
criado uma soluo mais fcil e gil para modificar o estilo de cada controle ou
todos os controles de acordo com a configurao.
Soluo
Para criar um estilo especfico para todos os controles textbox por exemplo,
bem tranqilo e fcil pois basta definir dentro do tema e depois atribuir o valor
dentro do arquivo de configurao web.config. Alm de poder utilizar para todos
os controles, tambm pode ser feito para uma pgina especfica.
65
O tema ainda possui mais opes para configurao, o exemplo falado acima do
textbox, pode ser configurao para um textbox apenas um estilo diferente,
enquanto todos os outros textbox podem ser diferentes de especfico. No decorrer
mostrarei como desenvolver das trs formas na prtica.
Referncia: 1.1
66
Referncia: 1.2
Cliquei com o boto direito do mouse em cima da pasta Theme, em seguida
escolhi a opo ADD New Item. Apareceu automaticamente uma janela com sete
opes de arquivos Templates para a escolha. Segue os tipos de arquivos:
(Referncia 1.3).
StyleSheet.css
XMLFile.xml
Arquivo XML
TextFile.txt
Arquivo TXT
Report.rdlc
XSLTFile.xsl
SkinFile.skin
ClassDiagram.cd
Referncia: 1.3
Neste primeiro passo escolhi o tipo de arquivo SkinFile.skin, automaticamente
criado um arquivo para edio. Dentro do mesmo pode ser colocado os controles
cliente servidor utilizados no ASPX.
67
Referncia: 1.3
Na referncia 1.3, adicionei um controle cliente servidor chamado TextBox com
uma configurao de borda e tamanho de borda. Bem simples e prtico. Note que
esse controle no tem ID definido como necessrio definir dentro das pginas
ASPX. Foram adicionados apenas os estilos e o runat=server.
68
Referncia: 1.6
Note que o controle TextBox foi modificado automaticamente com traos em volta
do mesmo. Com isso termino de falar dessa primeira etapa utilizando Temas com
Visual Studio. NET 2005.
69
1. Conceito
Uma nova caracterstica e do ASP.NET 2.0 deixar os usurios terem mais controle
no visual onde possa sentir e ver uma pgina web. Um tema pode ser definido
cores, nome de fontes, tamanho e estilo de cada controle. O novo "skin" suportado
no ASP.NET 2.0 uma extenso da mesma idia do CSS.
Usurios individuais podem selecionar um tema para vrias opes avaliadas para o
mesmo, e especificar o tema deles escolhendo determinado "skin". O "skin" um
cliente servidor relativo como se fosse um CSS stylesheet, ou seja, similar a um
arquivo CSS mas diferente, um "skin" pode sobrescrever vrias propriedades
visuais daquele especfico controle de um pgina ou de vrias pginas.
Voc pode armazenar vrias verses de imagens para o tema, cada tema uma
imagem diferente ou atribuir vrias imagens para todos os temas baseado no corrente
"skin" usado.
Os temas ficam dentro da pasta /App_Themes, e contm os seguintes itens:
- Stylesheet.css (arquivo que define a aparncia dos objetos HTMLs);
- Skin File (Eles so arquivos que definem a aparncia de controles clientes
servidores ASP.NET. Voc pode pensar deles como se fossem arquivos stylesheet clientes
servidores;
- Outros recursos como imagens.
2. Problema
Preciso diferenciar os meus componentes de tela usando "stylesheet", ou seja, um
TextBox quero que tenha a letra em azul e outro tracejado. Preciso adicionar vrios
componentes diferentes na tela usando ou no estilo "stylesheet.css". Alm de
mudar os estilos, preciso adicionar os "themes" para todas as pginas dentro do
meu projeto.
3. Soluo
O primeiro de tudo criar um "Estilo.css", o passo seguinte colocar dentro do
"skin" a "CssClass" para atribuir os estilos de cores e fontes. Cliquei com o boto
direito do mouse em cima da pasta "Themes" e escolhi a opo "Add New Item...".
(Referncia Theme2.1.1)
70
Referncia: Theme2.1.1
A tela seguinte escolhi o tipo de arquivo na tela de "templates". O tipo escolhido foi
"Style Sheet". (Referncia Theme2.1.2).
Referncia: Theme2.1.2
71
72
</div>
</form>
</body>
</html>
Referncia: Theme2.1.6
A referncia (Theme2.1.6) mostro toda a pgina "default.aspx". Logo nas primeiras
linhas, adicionei o "stylesheet". (Referncia Theme2.1.7)
<link rel="stylesheet" type="text/css"
href="App_Themes/Theme/Estilo.css" />
Referncia: Theme2.1.7
Adicionei o estilo e em seguida o controle Label de acordo com os detalhes da
referncia (Theme2.1.8).
<asp:Label id="lbl" runat="server" Text="Label"></asp:Label>
Referncia: Theme2.1.8
Referncia: Theme2.1.9
Na execuo do projeto, note que o label adicionado anteriormente no skin com um
estilo puxado do arquivo de stylesheet foi executado com sucesso. Da forma que fiz para pegar
o estilo, todos os labels de todas as pginas estaro com o fundo azul, como na referncia
(Theme2.1.9).
4. Outro Problema
Em caso de sites ou sistemas, no quero que todos os labels fiquem do fundo de
cor azul e sim alguns labels podero ficar. Ento tenho um problema, quero
adicionar para alguns labels a cor no fundo azul e outros labels no. Da forma que
est configurado hoje, todos os labels estaro com o fundo azul.
Para a soluo desse problema, existe o atributo "SkinId" que serve para
diferenciao, ou seja, preciso adicionar mais um controle do tipo label no
73
5. Soluo
Como falei anteriormente, para solucionar o problema de no ficar sempre um label
com o fundo da cor azul, preciso usar o atributo "SkinId" tanto no arquivo de "skin"
quanto na pgina. Para solucionar o problema, adicionei mais um novo label dentro
do "skinFile.skin" que fica dentro da pasta "Theme". (Referncia Theme2.1.10).
<asp:TextBox runat="server" SkinId="teste" ForeColor="Yellow" />
<asp:Label runat="server" CssClass="Label" />
<asp:Label runat="server" SkinId="labelTeste" />
Referncia: Theme2.1.10
Note que acrescentei mais um label apenas sem o uso do atributo CssClass e com o
"SkinId=labelTeste". Depois de adicionado, coloquei mais um controle de tela na
pgina "Default.aspx" com o mesmo "SkinId". (Referncia Theme2.1.11).
<asp:Label id="lbl" runat="server" SkinId="labelTeste"
Text="Label"></asp:Label>
Referncia: Theme2.1.11
Um label foi adicionado na pgina "Default.aspx" com o nome do SkinId igual ao do
arquivo skinFile.skin. Para melhor entendimento segue todo o cdigo da pgina
"Default.aspx". (Referncia Theme2.1.12)
<%[arroba] Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Projeto Themes</title>
<link rel="stylesheet" type="text/css"
href="App_Themes/Theme/Estilo.css" />
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox runat="server" ID="txt"></asp:TextBox>
<br />
<asp:Label id="Label1" runat="server" Text="Label"></asp:Label>
<asp:Label id="lbl" runat="server" SkinId="labelTeste"
Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
Referncia: Theme2.1.12
74
Referncia: Theme2.1.13
75
Voc criar arquivos .skin na pasta do tema. Um arquivo.skin pode conter uma ou
mais aparncias de controle para um ou mais tipos de controle. Voc pode definir
aparncias em um arquivo separado para cada controle ou definir todos as
aparncias para um tema em um nico arquivo.
Existem dois tipos de aparncias de controle, aparncias padro (default skins) e
aparncias nomeadas (named skins):
76
Voc tambm pode armazenar seus arquivos de recurso fora a diretrio do tema.
Se voc usar a sintaxe til (~) para consultar os arquivos de recursos, o aplicativo
da Web automaticamente encontrar as imagens. Por exemplo, se voc colocar os
recursos para um tema em um subdiretrio do seu aplicativo, voc pode utilizar
caminhos do formulrio ~/SubPasta/nomedoarquivo.ext para referir-se a arquivos
de recursos, como no seguinte exemplo de cdigo
<asp:Image runat="server" ImageUrl="~/AppSubfolder/filename.ext" />
Temas de Escopo
Voc pode definir temas para um nico aplicativo da Web, ou como temas globais
que podem ser usados por todos os aplicativos em um servidor Web. Aps um tema
ser definido, ele pode ser colocado em pginas individuais usando o atributo
Theme ou StyleSheetTheme da diretiva @ Page, ou pode ser aplicado a todas as
pginas em um aplicativo definindo o elemento <pages> no arquivo de
configurao do aplicativo. Se o elemento <pages> estiver definido no arquivo
Machine.config, o tema ser aplicado a todas as pginas em aplicativos da Web no
servidor.
Temas de Pgina
Um tema de pgina uma pasta de tema com aparncias de controle, folhas de
estilos, arquivos grficos e outros recursos criados como um subpasta da pasta
\App_Themes em seu site da Web. Cada tema uma subpasta diferente da pasta
\App_Themes. O exemplo de cdigo a seguir mostra um tema de pgina tpico,
definindo dois temas chamados BlueTheme e PinkTheme.
MyWebSite
App_Themes
BlueTheme
Controls.skin
BlueTheme.css
PinkTheme
Controls.skin
PinkTheme.css
77
Temas Globais
Um tema global um tema que voc pode aplicar a todos os sites da Web em um
servidor. Temas globais permitem que voc defina uma aparncia geral para o
domnio quando voc mantiver vrios sites da Web no mesmo servidor.
Temas globais so como temas de pgina dentro dos quais eles incluem
configuraes de propriedade, configuraes de folha de estilos, e elementos
grficos. Entretanto, temas globais so armazenados em uma pasta chamada
\Themes que global para o servidor Web. Qualquer site no servidor, e qualquer
pgina em qualquer site da Web, pode referenciar um tema global. Para obter mais
informaes sobre como criar uma pasta de temas globais, consulte Como definir
temas ASP.NET:.
Precedncia das Configuraes de Tema
Como regra, voc pode usar temas para definir propriedades que dizem respeito
aparncia ou contedo esttico de uma pgina ou controle. Voc pode definir
somente as propriedades que possuem um atributo ThemeableAttribute definido
como true na classe controle
Propriedades que especificam explicitamente o comportamento do controle em vez
da aparncia no aceitam valores de tema. Por exemplo, voc no pode definir a
propriedade CommandName de um controle Button, usando um tema. Da mesma
forma, voc no pode usar um tema para definir a propriedade AllowPaging ou a
propriedade DataSource de um controle GridView.
Temas versus Folhas de Estilo em Cascata
78
1.
2.
Crie uma nova subpasta da pasta App_Themes para manter seus arquivos
tema. O nome da subpasta o nome do tema. Por exemplo, para criar um
tema chamado BlueTheme, crie uma pasta denominada
\App_Themes\BlueTheme.
3.
Adicione arquivos nova pasta para capas, folhas de estilos e imagens que
compem o tema.
1.
Observao
O nome da pasta para temas globais Themes, no App_Themes, como para temas de pgina.
2.
Crie uma pasta de tema como uma subpasta da pasta Themes. O nome da
subpasta o nome do tema. Por exemplo, para criar um tema global chamado
BlueTheme, crie uma pasta chamada ...\Themes\BlueTheme.
3.
Adicione arquivos nova pasta para capas, folhas de estilos e imagens que
compem o tema.
79
1.
Crie um novo arquivo de texto na sua subpasta de tema com uma extenso
.skin.
A conveno comum consiste em criar um arquivo .skin por controle, como
Button.skin ou Calendar.skin. Contudo, voc pode criar tantos ou to poucos
arquivos .skin de quantos voc precisar; arquivos de capas podem conter
vrias definies de capa.
2.
Observao
Uma maneira conveniente para criar uma capa adicionar o controle a uma pgina e configur-la de
modo que ele tenha a aparncia desejada. Por exemplo, voc pode adicionar um controle Calendar a uma
pgina e definir seu cabealho do dia, data selecionada e outras propriedades. Em seguida, voc pode
copiar a definio de controle da pgina em um arquivo de capa e remover o atributo ID.
3.
Repita as etapas 2 e 3 para cada capa de controle que voc deseja criar.
Observao
Voc pode definir apenas uma capa padro por controle. Use o atributo SkinID na declarao do controle
da capa para criar uma capa nomeada que voc pode aplicar s instncias de um controle especfico.
80
1.
2.
3.
4.
5.
<configuration>
<system.web>
<pages theme="ThemeName" />
</system.web>
</configuration>
Observao
Se um tema de aplicativo tem o mesmo nome de um tema de aplicativo global, o tema da pgina ter
prioridade.
6.
7.
<configuration>
8.
<system.web>
9.
<pages StyleSheetTheme="Themename" />
10.
</system.web>
</configuration>
Page com o
81
82
case "Blue":
Page.Theme = "BlueTheme";
break;
case "Pink":
Page.Theme = "PinkTheme";
break;
}
}
Para aplicar um tema de folha de estilo programaticamente
83