Olá pessoal,

neste post vou falar um pouco mais dos bastidores do Windows Phone 8.

Quando falamos tecnicamente do Windows Phone 8, a primeira coisa que nos vem a cabeça é o Kernel compartilhado do Phone com o Windows 8. Já apresentei neste post http://aka.ms/kernel8 uma visão geral do Kernel compartilhado entre o Windows 8 e o Windows Phone.

Desta vez, vamos entrar um pouco mais a fundo na plataforma.

Quando a Microsoft criou a primeira versão do Windows Phone, o Windows Phone 7.0, ela utilizou o Kernel do Windows CE como fundamento para o novo Sistema Operacional para telefones. Então veio a versão 7.5 e nova funcionalidades foram implementadas, porém o núcleo do Sistema Operacional, continuava o mesmo, do Windows CE.

 

phone7

Windows Phone 7.X

Não há problema algum com o Phone 7.X ter sido desenvolvido sob o Kernel do Windows CE. A questão é que o Kernel do Windows CE é uma tecnologia muito estável, porém já tem mais de 15 anos. Por este motivo, existiam alguns limitadores de integração com hardwares de última geração, como sensores e multiplos núcleos de processadores.

Então, quando a Microsoft resolveu fazer a versão Windows Phone 8, aproveitou o momento da Plataforma Windows e unificou o Kernel nas 2 plataformas.

Mas o que mudou efetivamente?

Com a utilização do mesmo Kernel nas duas plataformas, várias coisas como drivers, modelo de desenvolvimento, classes portáveis passaram a ser compatíveis entre as duas plataformas de forma transparente.

Outra coisa que passou a estar presente no Windows Phone 8 é parte do conjunto de componentes do Windows Runtime, que no Phone chamado de Windows Phone Runtime. Este conjunto de componentes permite que boa parte do código que é utilizado em uma aplicação Windows 8 possa ser reaproveitado em uma App para Windows Phone 8 e vice versa.

phone8_01

Compatibilidade de aplicações Windows Phone 7.X com o Windows Phone 8

Bom, mas se o kernel do Windows Phone 8 não é compatível com o Kernel do Windows Phone 7.5, como as Apps do WP 7.5 rodam no Windows 8?

Uma das coisas que a Microsoft tem em seu DNA é a compatibilitade com versões anteriores dos seus sistemas operacionais.

Desta forma, a implementação do Windows Phone 8 vem com um modo conhecido como “Quirks Mode”. O Quirks Mode, é uma camada que faz com que as Apps WP 7.X sejam executadas no WP 8.0 com o comportamento que teriam em um WP 7.X sem que o desenvolvedor precise fazer alterações no código.

Então podemos imaginar que as Apps para WP 7.x rodam um pouco mais lento no WP 8.x, o que é verdade. Mas, por outro lado, como os hardwares que rodam o WP 8.x são bem mais rápidos que os que rodam o WP 7.x, isto é compensado.

Mas o ideal seriamos recompilhar nossas Apps para Windows Phone 8.

Para conhecer mais sobre o Quirks Mode, vejam este video http://channel9.msdn.com/Events/Build/2012/3-045

 

phone8_02

Aplicações Windows 7.X rodando em Windows Phone 8

 

Mudando o Target de sua App para Windows Phone 8

O Quirks Mode é algo que foge do controle do desenvolvedor, sendo utilizado pelo próprio Windows Phone Runtime.

Mudar o target do seu projeto para Windows Phone 8, faz com que sua App passe a ser executada de forma nativa para a nova versão do Windows Phone 8.

Mudar o target para WP 8.x é bem simples. Basta abrir o projeto no Visual Studio 2012+, right-click no projeto e selecionar a opção Upgrade to Windows Phone 8.0

__image_thumb_10

_image_thumb_11

 

Uma vez isto feito, sua App não utilizará mais o quirks mode, o que pode gerar algum problema de comportamento da App, caso alguma API tenha comportamento diferente do esperado no WP 8.0 comparado com o de WP 7.x.

Desta forma, será necessário que você teste sua App depois de recompila-la para WP 8.0.

 

Boas referências:

Windows Phone Versions

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202996(v=vs.105).aspx

Windows Phone API reference

http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff626516(v=vs.105).aspx

App platform compatibility for Windows Phone

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206947(v=vs.105).aspx

De bonus, segue este poster!!!

image

 

Abs,

@daibert

Anúncios