Mapeamentos de adaptador
An adaptador define um conjunto de características de um determinado dispositivo solicitante.Suponha que você está criando um novo dispositivo com base em um Palm piloto, e você deseja fazer as modificações de hardware e aprimoramentos.Para desenvolver páginas de Web móveis ASP.NET para seu novo dispositivo, você requer um adaptador do dispositivo personalizado fazer uso total do conjunto de recursos avançado de hardware.
Dentro do arquivo Web.config, mapeie cada um dos seus controles móveis para o adaptador personalizado criado para ele.Não somente você pode especificar adaptador dispositivo individual define de personalização específicas de dispositivo, mas você pode personalizar ainda mais por herança um adaptador do dispositivo, conjunto a partir de outro, assim, personalizar comportamento para combinações de dispositivo/controle específico.
Dentro do arquivo Web.config
Para mapear os controles móveis e adaptadores de dispositivo, declarativamente configurá-los no <mobilecontrols> o seção<sistema.web> elemento.Você pode fazer então na arquivo Web.config para que as alterações sejam isolados para determinado aplicativo.Configurações de todo o servidor estão localizadas na computador. arquivo de configuração para a instalação do .NET estrutura no diretório do Microsoft Windows.Na configuração de arquivos que você pode especificar que conjuntos de adaptadores individuais que são escolhidos em time de execução.
Observação: |
---|
Se um <mobileControls> seção atualmente não existe no seu arquivo Web.config, você pode adicionar um em qualquer lugar, sistema autônomo um filho a <system.web> elemento. |
Declarando um conjunto de adaptador
Um conjunto de adaptador do dispositivo é o mecanismo de mapeamento dentro do arquivo Web.config.Para cada controle que usa um adaptador do dispositivo personalizado, você deve incluir as seguintes informações dentro do conjunto de adaptador do dispositivo:
uma classe de predicado
um método de predicado
um adaptador de página
o controle nome e o adaptador do dispositivo associados
Para adicionar um adaptador do dispositivo conjunto para o arquivo Web.config do seu aplicativo, você deve declarar um adaptador do dispositivo conjunto usando um <device> elemento o <mobileControls> seção do arquivo Web.config, sistema autônomo neste exemplo de código a seguir.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<!-- Other settings previously specified reside here. -->
<mobileControls>
<device name="myDeviceAdapter"
predicateClass="fullyQualifiedAdapterClass"
predicateMethod="specificMethodToInvoke"
pageAdapter="fullyQualifiedPageAdapter">
<control name="fullyQualifiedControl"
adapter="fullyQualifiedPageAdapter"/>
<!-- Add additional control names here. -->
</device>
</mobileControls>
</system.web>
</configuration>
Definindo atributos dispositivo
sistema autônomo mostrado no exemplo de código anterior, você deve incluir em cada conjunto de adaptador de atributos definidos na tabela a seguir.
Termo |
Definição |
---|---|
name |
Identifica exclusivamente o conjunto de adaptador do dispositivo. |
(Opcional) Indica que o conjunto corrente de adaptador do dispositivo herda de outro conjunto, que é identificado pelo nome.O conjunto de adaptador do dispositivo pai pode residir em qualquer lugar no mesmo <mobileControls> seção do mesmo arquivo Web.config ou ele pode residir em um arquivo Web.config do pai. |
|
Aponte para um método estático que será chamado para avaliar se o conjunto de adaptador é apropriado para o dispositivo corrente.O método obtém um único parâmetro do tipo HttpContext e retorna um valor booliano que indica se o adaptador definido se aplica. O método pode examinar os recursos do dispositivo de destino usando o Browser propriedade do fornecida HttpContext objeto, que retorna um MobileCapabilities objeto. |
|
Identifica a classe do adaptador de página para o conjunto de dispositivos, um tipo que implementa o IPageAdapter interface. |
If a <device> seção inclui o InheritsFrom atributo, você não precisa declarar a PredicateClass, PredicateMethod, ou PageAdapter atributos. Em vez disso, seu conjunto de adaptador do dispositivo pode herdar esses da definição do conjunto pai adaptador do dispositivo.
Observação: |
---|
Embora esses atributos não sejam necessários, você pode defini-los se for apropriado para seu aplicativo. |
Você pode colocar qualquer número de <controle> elementos dentro de um conjunto de adaptador.Cada um fornece um mapeamento de adaptador de controle específico (uma classe que implementa IControlAdapter). A <control> elemento possui dois atributos: a name atributo que especifica a classe do controle deve ser mapeado, e um adapter atributo que especifica a classe do adaptador de controle.
Considerações do mapeamento
Embora haja um mapeamento um-para-um entre controle e o adaptador, não é necessário gravar uma classe de adaptador de controle separado para cada combinação de controle/dispositivo.Em geral, se um novo controle móvel usa herança ou composição simples e não exige a saída personalizada, ele não requer um adaptador de controle.Considere as seguintes alternativas:
Um adaptador ou conjunto de adaptadores podem ser aplicadas a um tipo geral de dispositivo.Por exemplo, todos os dispositivos de HTML 3.2 podem ter o mesmo conjunto de adaptadores de dispositivo.No entanto, para alguns controles, pode haver mais especializados adaptadores de dispositivo para dispositivos mais específicos.Por exemplo, convém gravar um Calendar adaptador do dispositivo de controle é especializado para Pocket PC.
Um adaptador de controle pode ser associado com uma classe base do controle, em vez de controles individuais.Por exemplo, um único adaptador pode ser suficiente para processar todos os controles de validação herdam o BaseValidator classe.
É possível gravar controles móveis totalmente funcionais que não usam adaptadores de dispositivo.No entanto, é altamente recomendável que os desenvolvedores escrevem adaptadores de dispositivo quando apropriado, como grande parte a flexibilidade da arquitetura do é perdido se qualquer controle único na página não usar adaptadores de dispositivo.
Novos controles criados ao estender controles existentes — controles de usuário, composição de controles e controles que são criados por meio de herança e que contêm controles existentes — não precisa de adaptadores de dispositivo porque são usados os adaptadores de controles contidos.
Noções básicas sobre o processo de seleção do adaptador do dispositivo
O processo a seguir descreve como um adaptador do dispositivo definidas para uma página está selecionado:
sistema autônomoP.NET itera através da coleção de conjuntos de adaptador do dispositivo, sistema autônomo definido por <device> seções no arquivo Web.config. Web. arquivo de configuração mais próximo a solicitada página é primeiro inspeção e cada Web sucessivas. arquivo de configuração localizado superior na hierarquia de configuração.A computador. arquivo de configuração é examinado pela última vez.
O predicado associado para cada conjunto de adaptador do dispositivo é avaliado com a predicateClass e predicateMethod atributos.
Cada predicado usa o fornecidoHttpContext objeto para examinar os recursos de dispositivo do dispositivo de destino e retorna true ou false, que indica se os conjuntos de adaptador do dispositivo são aplicáveis.
Assim que qualquer predicado retorna true, que o conjunto de adaptador do dispositivo é considerado selecionado. Neste ponto, o sistema usa o pageAdapter atributo das <device> elemento para determinar que classe para criar uma instância de criar o adaptador.
Se nenhum dos predicados no arquivo Web.config retornar true, o processo é repetido para os conjuntos de adaptador do dispositivo no arquivo de Web.config do diretório pai.
Para cada controle, a página é chamada para fornecer um adaptador do dispositivo para o tipo de controle especificado.O ASP.NET usa as seguintes etapas para escolher o adaptador de controle apropriado:
O conjunto de adaptador do dispositivo usado é mesmo um escolhido para o adaptador do dispositivo da página.
Se o conjunto de adaptador do dispositivo contiver um <control> elemento que mapeia diretamente a classe de controle para uma classe de adaptador do dispositivo, uma instância da classe adaptador especificado é criada.
Se o conjunto de adaptador do dispositivo não puder ser mapeado diretamente, uma nova instância da classe base para o controle é criada.
Esse processo é repetido até que a classe base Control for atingido. Se a qualquer momento for encontrado um mapeamento direto, uma nova instância da classe de adaptador do dispositivo especificado é criada.
Se um mapeamento não ainda foi encontrado e o conjunto de adaptador do dispositivo herda de outro conjunto de adaptador, as etapas para a seleção de adaptador são repetidas para o conjunto de adaptador pai.Esse procedimento continua a hierarquia de conjuntos de adaptador até que um mapeamento for encontrado.
Os resultados da pesquisa são armazenados em cache, para que a pesquisa especificada precisa ser executada uma vez apenas para o primeiro controle relevante.O comportamento descrito acima é preservado.
Consulte também
Outros recursos
Adicionando adaptadores de dispositivo novo e suporte de dispositivo