Elemar DEV

Tecnologia e desenvolvimento .net

Desenvolvendo para Windows 8 – Parte 3 – O que é (e o que não é) WinRT?! O que são Projections?

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.

Afinal, o que é WinRT

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.

O que WinRT não é?

Tão interessante quanto explicitar o WinRT é determinar o que ele não é. Vejamos:

  • WinRT não é .NET (nem um subset) – Aliás, não é subconjunto de nada. Podemos usar WinRT com linguagens tradicionalmente associadas a .NET, como C#, entretanto, a “coisa” para por aí;
  • WinRT não é cross-platform – WinRT foi planejado e desenvolvido para expor os serviços do ambiente Metro. Não é um “framework de propósito geral”. WinRT vai estar disponível em ambientes onde o Windows 8, em seu ambiente Metro, estiver disponível;
  • WinRT não é baseado em Win32 – Aliás, WinRT é o substituto do Win32 em ambiente Metro. Não é uma “camada” (como .NET).
  • WinRT não é como CLR, ou qualquer outro tipo de “middle”, entre a aplicação e o sistema.

WinRT foi desenvolvido em C++ e é orientado a objetos

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.

Projections?!

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?!

Naturalmente assíncrono

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.

Onde posso saber mais sobre o que há no WinRT?

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.

11 Comments on “Desenvolvendo para Windows 8 – Parte 3 – O que é (e o que não é) WinRT?! O que são Projections?

  1. Como fica o Emit/IL no WinRT, ainda é possível fazer isso ?

  2. Hugo Nickerson
    02/07/2012

    Muito bom o post como sempre. Estou curtindo essa série desenvolvimento para windows 8.

  3. Hemerson Camargo
    10/07/2012

    Muito boa a serie Elemar, você indica algum livro pra começar?

    • elemarjr
      10/07/2012

      No momento, o melhor ponto de começo é o livro do Charles Petzold.

  4. Tiago David Furtado
    20/02/2013

    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.

  5. Alexsandro Souza
    27/03/2013

    Muito bom a série. Parabens pelo trabalho.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

Você está comentando usando sua conta WordPress.com. Sair / Mudar )

Imagem do Twitter

Você está comentando usando sua conta Twitter. Sair / Mudar )

Foto do Facebook

Você está comentando usando sua conta Facebook. Sair / Mudar )

Conectando a %s

Informação

Publicado às 02/07/2012 por em Post e marcado , .

Estatísticas

  • 427,234 hits
%d bloggers like this: