Diretrizes para dados de uso de conexão
Considere as seguintes recomendações ao usar as APIs de informações de rede do Tempo de Execução do Windows em seu aplicativo conectado.
Modificando o comportamento do aplicativo de acordo com o tipo de custo de rede
Embora o Windows 8 forneça automaticamente opções de conectividade quando um dispositivo detecta novas redes, não há nenhuma garantia de uma transição perfeita de conexões existentes para novas redes em cada operação. Um aplicativo da Windows Store que se conecta a destinos na Web deve usar APIs de Informações de Rede para obter informações de custo e eventos de mudança de status para a rede na qual ele está enviando/recebendo dados.
Use o valor NetworkCostType indicado para cada conexão para modificar seu comportamento adequadamente:
Tipo de Custo da Rede | Comportamento de Aplicativo Recomendado |
---|---|
Irrestrito |
|
Limite de Utilização de Dados Variável/Aproximado |
|
Desconhecido |
|
Mantendo uma conexão confiável com a Web
Uma das maneiras mais fundamentais de o seu aplicativo demonstrar agilidade no espaço de rede é mantendo um nível consistente de qualidade ao fazer interface com a Web. Isso pode ser feito usando as informações fornecidas pelo perfil de conexão e notificações subsequentes de mudança de status de rede e identificando as redes disponíveis que atendem aos requisitos atuais.
Todos os aplicativos da Windows Store devem fazer o seguinte para dar suporte à conectividade com a Web:
- Chamar GetInternetConnectionProfile para verificar o custo de conexão com a Internet.
- Registre as notificações de alteração de status da rede para a conexão.
- Inicialize a operação da rede na conexão.
- Quando uma notificação de status de rede alterado é recebida, as opções de conectividade/custo disponíveis podem ter mudado. O aplicativo deve:
- Verificar o custo da conexão à Internet. Se a característica de custo tiver mudado de irrestrita para limitada, ou de limitada para irrestrita, repita a operação de rede. O Windows usará automaticamente a rede com o menor custo disponível.
- Se a característica de custo de se conectar à Internet não tiver mudado, mas uma notificação relacionada ao custo for recebida (por exemplo, mais de 80% do limite consumido, custo variável, roaming etc), adapte o comportamento conforme sugerido na tabela NetworkCostType acima.
- Se um erro indicar perda da conexão, o aplicativo deverá:
- Verificar o custo de se conectar à Internet usando outra rede disponível. Siga as orientações fornecidas na tabela NetworkCostType acima.
- Repita a operação. Se isso falhar, aguarde uma notificação NetworkStatusChange.
Depurando e solucionando problemas com o seu aplicativo conectado
Falhas de rede podem fazer com que os aplicativos travem, falhem ou exibam caixas de diálogo não acionáveis e mensagens de erro confusas aos usuários. A depuração desses erros pode ser difícil porque os erros podem ocorrer em qualquer lugar na pilha da rede.
Todos os aplicativos da Windows Store que usam a rede diretamente (usando soquetes) ou indiretamente (através de uma API que eventualmente usa a rede) são afetados. A situação ideal é que o sistema operacional automaticamente manipule condições de erro em benefício do desenvolvedor e quando isso não funcionar, os aplicativos devem estar preparados para lidar com erros.
Todos os aplicativos da Windows Store conectados devem fazer o seguinte:
- Quando um erro de rede acontecer, repetir a operação se isso for apropriado. Por exemplo, não repita a operação se a autenticação falhar, mas repita a operação se a rede na qual você estava se comunicando desaparecer porque outra pode estar disponível. Muitos erros podem simplesmente desaparecer quando a operação é novamente tentada. Ao repetir a operação, seguir as diretrizes especificadas anteriormente em Reagindo a alterações de status da rede.
- Certifique-se de usar APIs assíncronas para que não haja bloqueio nas chamadas do segmento da interface do usuário. Em outras palavras, se uma operação de rede demorar muito para ser concluída ou se houver um erro, o aplicativo não deve travar. Não emule o comportamento síncrono sobre a natureza assíncrona do Tempo de execução do Windows.
- Teste o seu aplicativo em diferentes ambientes de rede com atividades como desconexão ou reconexão à rede, suspensão ou retomada e alternância de uma rede para outra.
- Quando você estiver testando o seu aplicativo e encontrar erros que não são imediatamente óbvios, habilite o Rastreamento ETW.
Considerações de Segurança
Os artigos a seguir fornecem orientação sobre como gravar código C++ seguro.
Tópicos relacionados
Desenvolvendo aplicativos conectados (Whitepaper)
Exemplo de informações de rede
Para desenvolvedores (HTML)
Estado da conexão e gerenciamento de custo
Para desenvolvedores (XAML)