Olá pessoal. Tudo certo?!
Seja muito bem-vindo a terceira parte dessa série sobre Windows 8. O tema de hoje é WinRT.
Boa parte das informações que apresento nesse post foram extraídas do MSDN e do bom livro WinRT Revealed.
Quer ver as partes anteriores? Veja o índice de séries.
De forma direta:
WinRT é um conjunto de APIs utilizado para desenvolver aplicações Metro style.
Outra boa descrição:
É um novo framework ou modelo de programação para desenvolvimento de aplicações Metro.
Mais uma?! Lá vai:
É a forma como o Windows 8 expõe os serviços do sistema para as aplicações instaladas e em execução na máquina.
Tão interessante quanto explicitar o WinRT é determinar o que ele não é. Vejamos:
WinRT foi desenvolvido em C++ (já viu a série sobre a linguagem?!) e foi projetado seguindo princípios de orientação a objetos (diferente do Win32). Além disso, graças a capacidade de Reflection, pode ser adotado facilmente em linguagens dinâmicas, como Javascript.
Microsoft adicionou suporte a múltiplas linguagens de programação para o Windows 8. Além de tornar suas APIs acessíveis, ainda provê um mecanismo, chamado Projection, de forma que a sintaxe fique o mais próximo possível da convencionada para cada linguagem.
Veja o seguinte código em C#:
var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.FileTypeFilter.Add(".jpg");
await picker.PickSingleFileAsync();
Com WinRT, pode ser escrito dessa forma em Javascript:
var picker = new Windows.Storage.Pickers.FileOpenPicker;
picker.fileTypeFilter.append(".jpg");
picker.pickSingleFileAsync().then();
E dessa forma em C++
auto picker = ref Windows::Storage::Pickers::FileOpenPicker();
picker->FileTypeFilter->Append(".jpg");
auto asyncObj = picker->PickSingleFileAsync();
asyncObj->Start();
Bacana, não?!
WinRT, assim como Silverlight, foi projetado para desenvolvimento assíncrono. Mais que isso, assim como Silverlight, WinRT não permite desenvolvimento síncrono.
A idéia é entregar para o usuário uma experiência fluída e contínua. Ou seja, nada de deixar o usuário esperando enquanto a aplicação faz alguma coisa no backend. De certa forma, temos aqui uma boa justificativa para o async/await que estará disponível no C# 5 (veja mais sobre isso aqui no blog)
Todo o design de programação assíncrona do WinRT é baseado na TPL. Entretanto, ainda há acesso a threading clássico no namespace System.Threading.
Microsoft já disponibilizou uma documentação extensa sobre o que há no WinRT. Você pode consultar a página oficial no MSDN para consultar esta documentação.
Era isso.
Como fica o Emit/IL no WinRT, ainda é possível fazer isso ?
pois é .. ainda não sei..
Muito bom o post como sempre. Estou curtindo essa série desenvolvimento para windows 8.
Muito obrigado pelo feedback
muito boa mesmo Elemar, muito bom pra quem está iniciando
Muito boa a serie Elemar, você indica algum livro pra começar?
No momento, o melhor ponto de começo é o livro do Charles Petzold.
Cool, man !
Poxa Elemar, fui pesquisar no Google “programação para windows 8″ e aparce vc! Só fui ver depois que abri a paguina pela tua foto! Muito bom conteúdo.
Muito bom a série. Parabens pelo trabalho.
muito obrigado, man.