Introdução
Nas aplicações que trabalhamos atualmente, sejam elas Windows Applications, Web Applications, ou qualquer outro tipo de aplicação sabemos que sempre temos que nos preocupar com o modelo de execução da aplicação, ou seja, de que maneira ela é executada no ambiente, qual seu comportamento e pré-requisitos, cuidados e devemos ter e seu respectivo ciclo de vida.
Com o desenvolvimento para Windows Phone não é diferente. É importante que compreendamos alguns conceitos e características importantes para que possamos obter o máximo dos recursos oferecidos, proporcionando assim um tempo de resposta satisfatório aos nossos clientes.
A primeira grande característica do Windows Phone é que apenas uma aplicação é executada de cada vez. Sei que muitos podem estranhar essa características, pois estão acostumados com as versões anteriores do Windows Mobile, onde múltiplas tarefas podem ser executadas simultaneamente. No entanto todos nós sabemos que com o tempo isso vai acarretando um aumento de consumo dos recursos do celular e o mesmo vai ficando cada vez mais lento. Mas uma coisa podemos ficar tranquilos, caso a aplicação seja bem escrita e siga as recomendações, o usuário poderá estar com um aplicativo aberto, navegar até outro aplicativo, utilizar os botões de navegação para retornar à primeira aplicação e nada será perdido, pois é possível manter o estado das aplicações.
Este gerenciamento de estado é possível pois ao solicitar a abertura de uma aplicação o Windows Phone realiza a ativação e desativação dinâmica das aplicações, disponibilizando ao desenvolvedor uma série de eventos como resposta as alterações de estado da aplicação. Como dissemos anteriormente, caso o desenvolvedor crie seu código adequadamente, tratando os eventos oferecidos pelo Windows Phone será possível salvar as informações da aplicação para que ao retornar novamente à ela, dê-se a impressão de que a aplicação continuou rodando.
Terminologia
Quando se trata do modelo de execução de aplicações Windows Phone é comum nos depararmos com alguns termos e é importante que saibamos o que cada um deles significa:
- Tombstoning: Procedimento do sistema operacional responsável por encerrar o processo de uma aplicação quando o usuário sai da aplicação. O sistema operacional mantém informações sobre o estado da aplicação. Caso o usuário retorne à aplicação o sistema operacional repassa essas informações à aplicação.
- Page state: O estado visual de uma página da aplicação. Responsável por gerenciar o conteúdo dos controles, como o texto de um TextBox por exemplo. Utiliza os eventos OnNavigateTo e OnNavigateFrom.
- Application state: Estado da aplicação. É gerenciado por meio de eventos expostos na classe PhoneApplicationService
- Persistent data: Dados que serão compartilhados entre todas as sessões da aplicação e são armazenadas no isolated storage. Podem ser utilizados para armazenar configurações da aplicação, informações do usuário e etc.
- Transient data: Dados que estão disponíveis para uma única instância da aplicação, ou seja, caso ela seja finalizada totalmente e iniciada novamente, estes dados não estarão mais lá. Ideal para dados temporários que necessitemos carregar.
Ciclo de vida das aplicações
Resumidamente, o clico de vida de uma aplicação pode ser representada pela seguinte figura (clique para ampliá-la):

Conclusão
Conforme foi apresentado, pudemos perceber que por mais que o Windows Phone 7 trabalhe com a execução de apenas uma aplicação por vez, se o aplicativo for desenvolvido seguindo as recomendações da Microsoft, isso será totalmente transparente ao usuário devido aos recursos de desenvolvimento que a plataforma oferece.