Portabilidade do Windows Phone Silverlight para XAML do Tempo de Execução do Windows 8

Portabilidade do Windows Phone Silverlight para XAML do Tempo de Execução do Windows 8

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

Observação  Para saber mais sobre a portabilidade para um aplicativo da Plataforma Universal do Windows (UWP) para Windows 10, consulte Mudar do Windows Phone Silverlight para a UWP.
 

Ao portar um aplicativo do Windows Phone Silverlight para o modelo para aplicativos XAML do Tempo de Execução do Windows, a maior parte do seu conhecimento e da sua experiência será transferida, assim como grande parte do seu código-fonte e dos padrões de software que você usa. Até mesmo sua marcação da interface do usuário e o design podem ser prontamente portados. Você pode se surpreender com a relativa facilidade do processo, mesmo se houver um desafio ou dois ao longo do caminho.

Enquanto lê este guia de portabilidade, você pode consultar o tópico anterior: Mapeamentos de classes e namespaces do Windows Phone Silverlight para o Tempo de Execução do Windows. O mapeamento razoavelmente simples é a regra geral, mas há algumas exceções. A tabela de mapeamentos de namespace e de classe descreve todas as exceções, mas consulte também algumas exceções no nível do recurso listadas no tópico principal.

Informações adicionais sobre os aplicativos da Windows Store com XAML, em geral, podem ser encontradas em Mapa para aplicativos do Tempo de Execução do Windows em C# ou Visual Basic.

Abordagem de portabilidade camada por camada

  • Modo de exibição. O modo de exibição (juntamente com o modelo de exibição) compõe a interface do usuário do seu aplicativo. Idealmente, o modo de exibição consiste em marcação associada às propriedades observáveis de um modelo de exibição. Outro padrão (comum e conveniente, mas somente a curto prazo) destina-se a para código imperativo em um arquivo code-behind para manipular elementos de interface do usuário diretamente. Em ambos os casos, grande parte da marcação da interface do usuário e do design — e até mesmo do código imperativo que manipula os elementos da interface do usuário — terá uma portabilidade simples.
  • Exiba modelos e modelos de dados. Mesmo se você não adotar formalmente padrões de separação de preocupações (como MVVM), inevitavelmente haverá presente em seu aplicativo código que execute a função de modelo de exibição e de modelo de dados. O código do modelo de exibição usa tipos nos namespaces da estrutura da IU. O código dos modelos de exibição e de dados também usa APIs de sistema operacional não visual e do .NET Framework (incluindo APIs para acesso a dados). E a maioria delas está disponível para um aplicativo de Tempo de Execução do Windows, portanto, você pode esperar ser capaz de fazer a portabilidade de grande parte desse código sem alteração. Lembre-se: um modelo de exibição é um modelo, ou uma abstração, de um modo de exibição. Um modelo de exibição oferece o estado e o comportamento da interface do usuário, enquanto o modo de exibição propriamente dito oferece os elementos visuais. Por esse motivo, qualquer interface do usuário que você adaptar aos diferentes fatores forma que o Tempo de Execução do Windows permite que você execute provavelmente precisará de alterações correspondentes no modelo de exibição.
  • Serviços de nuvem. É provável que alguma parte do seu aplicativo (talvez uma grande parte dele) seja executada na nuvem na forma de serviços. A parte do aplicativo em execução no dispositivo cliente se conecta a elas. Essa é a parte de um aplicativo distribuído que mais provavelmente permanecerá inalterada durante a portabilidade da parte cliente. Se você ainda não tiver um, uma boa opção de serviços de nuvem para seu aplicativo Universal do Windows é o Serviços Móveis do Microsoft Azure, que oferece avançados componentes back-end que aplicativos Universais do Windows podem chamar para serviços desde notificações simples para atualizações de blocos dinâmicos até o tipo de escalabilidade pesada que um farm de servidores pode oferecer.

Antes ou durante a portabilidade, considere se o seu aplicativo pode ser melhorado por meio de refatoração, de forma que o código com finalidade semelhante seja agrupado em camadas e não fique espalhado arbitrariamente. A fatoração de seu Aplicativo Universal do Windows em camadas como as descritas acima facilita a correção de seu aplicativo, a aplicação de testes nele e, subsequentemente, a leitura e a manutenção dele. Você pode tornar a funcionalidade mais reutilizável — e evitar alguns dos problemas de diferenças de API da interface do usuário entre as plataformas — seguindo o padrão MVVM (Model-View-ViewModel). Esse padrão mantém partes de dados, comercial e da interface do usuário de seu aplicativo separadas umas das outras. Mesmo na interface do usuário, ele mantém o estado e o comportamento separados, e testáveis separadamente, dos elementos visuais. Com o MVVM, você pode escrever seus dados e sua lógica de negócios e usá-los em todas as plataformas. Também é muito provável que grande parte do modelo de exibição e das partes de exibição possa ser reutilizada entre plataformas, embora isso varie entre aplicativos.

O manifesto de pacote de aplicativo

Vale a pena saber como editar o manifesto de pacote de aplicativo, pois os tópicos a seguir tratam sobre como usá-lo para diversas declarações, recursos e outras configurações de que alguns recursos precisam. Você pode usar o editor de manifesto de pacote de aplicativo do Visual Studio para editá-lo. Se o Gerenciador de Soluções não for mostrado, escolha-o no menu Exibir. Clique duas vezes em Package.appxmanifest. Isso abre a janela do editor de manifesto. Selecione a guia apropriada para fazer alterações e então salve.

Nesta seção

TópicoDescrição

Portando o projeto

Você começa o processo de portabilidade ao criar um novo projeto de Tempo de Execução do Windows (um tipo de projeto da Loja) no Visual Studio e ao copiar seus arquivos nele. Se você optar por criar um projeto de aplicativo universal, poderá dar suporte a computadores, tablets e telefones de uma base de código.

Solução de problemas

É altamente recomendável a leitura até o final deste guia de portabilidade, mas também entendemos que você esteja ansioso para avançar e chegar ao estágio em que o seu projeto é compilado e executado. Para essa finalidade, você pode fazer um progresso temporário comentando ou eliminando qualquer código não essencial e, em seguida, retornando para saldar esse débito mais tarde. A tabela de solução de problemas de sintomas e soluções deste tópico pode ser útil para você neste estágio, embora não seja uma substituição para a leitura dos próximos tópicos. Você sempre pode consultar novamente a tabela conforme avança pelos próximos tópicos.

Portando XAML e a interface do usuário

A prática de definição da interface do usuário na forma de marcação XAML declarativa traduz extremamente bem do Windows Phone Silverlight para aplicativos do Tempo de Execução do Windows. Você descobrirá que grandes seções da sua marcação são compatíveis assim que tiver atualizado referências de Chave de recurso do sistema, alterado alguns nomes de tipo de elemento e alterado "clr-namespace" para "using".

Portabilidade para E/S, dispositivo e modelo de aplicativo

O código que se integra ao dispositivo em si e seus sensores envolve entrada do usuário e saída para ele. Ele também pode envolver o processamento de dados. Mas esse código geralmente não é considerado como a camada da interface do usuário ou a camada de dados. Esse código inclui a integração com o controlador de vibração, acelerômetro, giroscópio, microfone e alto-falante (que interceptam o reconhecimento de fala e síntese), localização geográfica e modalidades de entrada, como toque, mouse, teclado e caneta.

Portando camadas de negócios e dados

Por trás de sua interface do usuário estão as camadas de negócios e dados. O código dessas camadas chama APIs do sistema operacional e do .NET Framework (por exemplo, processamento em segundo plano, localização, a câmera, o sistema de arquivos, rede e outro acesso a dados). A maioria delas está disponível para um aplicativo de Tempo de Execução do Windows, portanto, você pode esperar ser capaz de fazer a portabilidade de grande parte desse código sem alteração.

Portabilidade para o fator forma e a experiência do usuário

Os aplicativos do Windows compartilham uma aparência comum entre computadores, tablets e telefones. Os padrões da interface do usuário, de entrada e de interação são muito semelhantes, e um usuário que se mova entre dispositivos ficará contente com a experiência familiar. Mas existem diferenças práticas entre dispositivos, como tamanho físico, orientação padrão e resolução efetiva de pixels no design de um Aplicativo Universal do Windows.

Estudo de caso: Bookstore1

Este tópico apresenta um estudo de caso de portabilidade de um aplicativo muito simples do Windows Phone Silverlight para um Aplicativo Universal do Windows (usando o Tempo de Execução do Windows ou WinRT). O aplicativo consiste em um vínculo ListBox a um modelo de modo de exibição. O modelo de modo de exibição tem uma lista de livros que mostra o título, o autor e a capa do livro.

Estudo de caso: Bookstore2

Este estudo de caso, que se baseia nas informações fornecidas no Bookstore1, começa com um aplicativo do Windows Phone Silverlight que exibe dados agrupados em um LongListSelector. No modelo de exibição, cada instância da classe Author representa o grupo dos livros escritos por esse autor e, no LongListSelector, podemos exibir a lista de livros agrupados por autor ou podemos reduzir o zoom para ver uma lista de atalhos de autores.

Estudo de caso: Bookstore3

Este estudo de caso é o terceiro de uma série que mostra como portar Windows Phone Silverlight apps para Aplicativos Universais do Windows (usando o Tempo de Execução do Windows, ou WinRT). Ele se destina a complementar as técnicas de portabilidade que aprendemos no Bookstore1 e no Bookstore2, e o aplicativo que examinaremos aqui acrescenta novos recursos importantes a seu modelo de exibição e sua interface do usuário.

 

Tópicos relacionados

Mapeamentos de classes e namespaces do Windows Phone Silverlight para o Tempo de Execução do Windows.
Referência de Tempo de Execução do Windows
Visão geral de .NET para aplicativos da Windows Store
.NET para aplicativos da Windows Store
Desenvolvendo a experiência do usuário para aplicativos

 

 

Mostrar:
© 2017 Microsoft