You are currently browsing the category archive for the ‘Windows 8’ category.

Hoje me deparei com um parceiro implementando uma App que utiliza o Bing Maps. Ele me pediu algumas referências de por onde começar.

Normalmente eu direciono os parceiros e clientes para este post http://rbrundritt.wordpress.com/2012/11/06/getting-started-with-bing-maps-windows-store-apps-native/

Mas hoje descobri um documento que agrega os principais links que um desenvolvedor precisa.

Você pode baixa-lo aqui, ó http://sdrv.ms/1fz5EjB

Espero que este documento ajude vocês.

 

Abs,

@daibert

http://twitter.com/daibert

Olá pessoal, está foi a minha apresentação na trilha Windows Phone dev no The Developers Conference Florianopolis 2013 fazendo um deep dive no Windows Runtime.

Aproveitem para ver um pouco mais de detalhes neste outro post sobre o mesmo assunto: http://aka.ms/internals01

Abs,
@daibert

 

http://twitter.com/daibert

Olá pessoal, está foi a minha apresentação na trilha Windows Phone dev no The Developers Conference Florianopolis 2013

 

 

Abs,
@daibert

Oi pessoal, uma dica rápida. Aqui temos um livro de melhores práticas de XAML para Windows 8.

have fun!!!

http://manning.com/pbrown3/

 

pbrown3_cover150

 

Abs,
@daibert

Olá pessoal.

Hoje vou falar um pouco sobre o Secure Boot do Windows Phone 8. O Secure Boot é uma tecnologia que faz uma validação na imagem do Windows Phone que esta gravada no firmware do aparelho.

Desta forma, durante o boot é feita uma validação que garante que o sistema operacional que será carregado está integro.

Isto é um dos motivos que faz com que o Windows Phone 8 não tenha virus ou malwares instalados.

Todos os componentes do sistema operacional possuem uma assinatura digital que é validada pelo chamado pre-UEFI (http://msdn.microsoft.com/en-us/library/windows/hardware/gg463075.aspx). Esta é a garantia que só estes componentes autorizados pelo UEFI podem ser carregados.

Para saber mais sobre este assunto, recomendo a leitura dos links abaixo:

System on a Chip http://blogs.windows.com/windows/b/bloggingwindows/archive/2011/01/05/next-version-of-windows-to-run-on-system-on-a-chip-architectures.aspx 

UEFI e o Windows 
http://msdn.microsoft.com/en-us/windows/hardware/gg463149.aspx

Abraços,

@daibert

http://twitter.com/daibert

Olá pessoal. Esta semana um cliente me pediu uma explicação “bem” detalhada sobre a diferença entre uma aplicação Windows Store feita em HTML5/Javascript versus a mesma aplicação feita em C# (ou VB.Net). Perguntei qual nível ele gostaria de chegar e ele me falou: “Quero saber lá das profundesas”.

Bom, com base nisto, fui resgatar algumas informações importantes que vi em um Deep Dive de Windows Runtime que tive no inicio do ano passado.

A chave para a discussão é saber que, independente da linguagem escolhida o produto final será o mesmo, um binário APPX. Mas, dependendo desta escolha, realmente o modelo de execução das Apps será diferente.

Mas vamos começar pelo começo. Primeiramente, quando você for desenvolver sua Windows Store App, você deve começar por onde você já conhece. Se é um desenvolvedor C#, não vá inventar moda de aprender Javascript + HTML5 + CSS3 para desenvolver sua App. Siga a “lei do menor esforço”.

Sabemos que a criação de aplicações Windows Store pode ser feita em HTM5/Javascript, C#, VB.NET, C++. Mas é importante lembrar que componentes Windows Runtime reutilizáveis, só podem ser criados em C#, VB.NET e C++. E que DLLs estáticas, carregadas por “load library” só podem ser feitas em C++. Isto está representado no quadro abaixo para faciltar:

 

Linguagem

Windows Store app

Componente reutilizável Windows Runtime

Static Library

HTML / JavaScript

X

   

VB .NET

X X  

C# .NET

X X  

C++

X X X

 

Porém, em casos muito específicos, pode ser que você precise seguir nesta linha de “inventar moda”. Como por exemplo, se quiser uma aplicação de extrema performance, deverá seguir pelos caminhos do C++, que é mais performático que o C# e o Javascript, mas por sua vez, nem todo mundo conhece bem o suficiente para desenvolver uma App em C++.

O Windows Runtime, disponibiliza para todas as linguagens suportadas por ele, seus componentes. Isto é o que chamamos de Windows Runtime “in a box”. Além disso, cada linguagem, herda suas específicas como no quadro abaixo:

API específicas

JavaScript

VB.NET/C#.NET

C++

WinJS

X

   

WinRT APIs

X

X X

.NET subset

  X  

Win32 subset

  X X

C Runtime

    X

Platform namespace

    X

 

Por exemplo, pode ser que não existam algumas funcionalidades em .NET subset com APIs equivalentes em C++ ou Javascript.

Um exemplo disto é o namespace System.Net.HTTP no C#. Este componente existe para C# mas não tem um equivalente em C++, e acredite, é bem trabalhoso criar um a partir do zero. Desta forma, podemos utilizar uma arquitetura de componentes aonde a sua aplicação C++ chame um componente feito em C#, para facilitar algumas situações.

Neste post não vou contar a estória do Windows Runtime do começo, mas o importante neste momento é saber que o Windows Runtime é uma evolução e mistura do bom e velho COM.

Desta forma, as Apps Windows Store rodam em um contexto como se fossem uma aplicação COM/DCOM utilizando a arquitetura de componentes do Combase.dll, Ole32.dll, Oleaut32.dll, etc.

Então, ao invés de termos um Co* (Co = Component Object) temos um Ro* (Runtime Object), BSTR para strings no COM e HSTRING no Windows Runtime, assim como no COM, todos os componentes derivam de IUnknow, no Windows Runtime, todos os componentes derivam de IInspectable.

Seria algo como: image

Mas até agora, você está pensando: “O Daibert está me enrolando e não falou ainda da diferença entre as Apps feitas em Javascript e C#”. Pois bem. Contei toda a estória acima para que você possa entender o mecanismo por trás disto tudo.

A grande diferença entre as Apps feitas em Javascript para as feitas em C# é o contexto em que elas rodam.

 

image

As aplicações feitas em Javascript rodam dentro de um container chamado de Windows Web Application ou WWAHost .

Como o Javascript não é compilado, precisamos de um surrogate (neste caso o WWAHOST.EXE) para hospedar o container que executa o Javascript, no caso do Windows o engine chamado de Chakra. Esta combinação, permite que a aplicação feita em Javascript consuma componentes Windows Runtime. Da mesma forma como esta arquitetura não permite que criemos componentes reutilizáveis em Javascript (Viu agora que aquela estória toda lá em cima não foi em vão?).

Já as aplicações feitas em C# e XAML são realmente compiladas e tranformadas em código binário.

 

Bom, espero ter ajudado vocês a entenderem um pouco mais de como funcionam por dentro as Windows Store Apps.

 

Abraços,

@daibert

http://twitter.com/daibert

 

Referências:

COM Surrogate:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms691260(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682432(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms695225(v=vs.85).aspx

MIDL – Microsoft Interface Definition Language

http://msdn.microsoft.com/en-us/library/windows/desktop/aa367091(v=vs.85).aspx

Olá pessoal.

Nesta segunda edição do Windows Talks, o convidado é o Danilo “Cobrinha” Perez.

O Danilo é um desenvolvedor que criou o jogo chamado Snake, para Windows Phone. O Snake é uma versão moderna para o antigo jogo da cobrinha da Nokia.

A grande sacada do Danilo para monetizar a App, foi colocar o ADK – Advertising Development Kit http://www.microsoft.com/en-us/download/details.aspx?id=8729.

E o Danilo focou seu desenvolvimento para Plataforma Windows, pois conseguiu perceber o verdadeiro valor da maior plataforma de Sistemas Operacionais do Mundo, o Windows (http://aka.ms/Mercado01)

 

Monetizando sua App com Advertising com o Danilo “Cobrinha” Perez

 

Mais informações sobre advertising você encontra aqui: http://advertising.microsoft.com/mobile-apps

Abs,

@daibert

http://twitter.com/daibert

Olá pessoal,

Este é o primeiro video do Windows Talks. O Windows Talks é uma série de videos falando sobre a plataforma Windows (Windows 8, Windows Phone, Windows Azure). Neste primeiro video, convidei o Thiago Fernandes da Apolineo Design for Apps para falar sobre modelos de negócio na Plataforma Windows.

O Thiago tem uma empresa de consultoria e desenvolvimento de aplicações móveis, que apostou na Plataforma Windows como seu principal foco de negócios.

Como o Thiago é um grande conhecedor da Plataforma Windows, ele trabalha como advisor de alguns gerentes de desenvolvimento de aplicações móveis de grandes empresas, sugerindo e apresentando soluções tecnicas como implementação de NFC e Carteira Eletronica.

Windows Talks Episódio 01–Modelo de Negócio

 

 

Se quiser saber um pouco mais sobre a utilização do NFC na Plataforma Windows, entre AQUI.

Abs,

@daibert

Olá pessoal.

Como apresentado no post da semana passada, o Windows 8 e o Windows Phone 8 compartilham o mesmo Kernel, porém no Windows 8 as aplicações rodam em cima do Windows Runtime e no Windows Phone 8 as aplicações rodam em cima do Windows Phone Runtime – WinPRT.

Isto significa que as aplicações feitas para Windows 8 não rodam no Windows Phone 8 e vice versa. Mas podemos aproveitar grande parte do código e tornar o processo de criação das Apps multiplataforma bem simples.

Para que possamos criar Apps que aproveitem o código uma da outra, precisamos trabalhar com o padrão de desenvolvimento de software MVVM (Model / View / View Model) e uma tecnologia de desenvolvimento do .Net, no caso deste post vamos utilizar Portable Class Library, ou PCL.

Sobre o MVVM vou falar em outro post, mas só para recaptular:  (Caso queira se aprofundar um pouco mais, dá uma olhada aqui ó: http://aka.ms/mvvm)

“MVVM é um padrão de design de software para aplicações orientadas a dados (data driven) aonde temos, de forma bem simplista:

Model

  • Contém os dados

ViewModel

  • Apresenta os dados para VIEW de forma que estes dados possam ser consumidos e apresentados na interface visual

View

  • Apresenta os dados em um interface para o usuário (User Interface)
  • Recebe dados que o usuário informou em uma interface visual “

Existem outras maneiras de se fazer projetos multi plataforma, como por exemplo utilizar expressões condicionais de compilação como:

#if NETFX_CORE

using Windows.UI.Xaml.Media.Imaging;

#else

using System.Windows.Media.Imaging;

#endif"

Mas vou falar disto em outro post também.

Um projeto do tipo Portable Class Library no Visual Studio suporta um sub conjunto de assemblies .NET Framework, Silverlight, .NET for Windows Store apps, Windows Phone, e Xbox 360.

Projetos PCL possuem prós e contras, como qualquer tecnologia. O principal ponto positivo de se utilizar a PCL, é poder aproveitar a mesma DLL multi plataforma, bastando apenas adiciona-la como referência nos projetos Windows 8 e Windows Phone 8.

Já como o principal contra da PCL, é que ela disponibiliza somente as classes que realmente são multi plataforma, deixando a PCL um pouco limitada do ponto de vista de conjunto de componentes.

 

Definindo a Arquitetura de Software das aplicações:

Para criarmos uma mesma aplicação para Windows 8 e Windows Phone 8, devemos primeiramente identificar os itens comuns entre elas.

Sabemos que as telas dos dispositivos Windows 8 são bem diferentes dos dispositivos Windows Phone 8.

Windows Phone 8
image
 
Windows 8
image

Resoluções: 800×480, 1280×720, 1280×768

Modos: Portrait, Landscape

Resoluções: 1024×768+

Modos: Landscape, Portrait, Snapped, Filled

 

Desta forma, o código feito para a tela da aplicação (View), não poderá ser reaproveitado entre as plataformas por alguns motivos, como:

  • Espaço da tela
  • Orientação da tela e Page Layout
  • XAML Namespaces
    • Windows.UI.Xaml.Controls contém os controles Windows 8
    • Microsoft.Phone.Controls e Microsoft.Phone.Shell contém os controles Windows Phone
    • System.Windows.Controls também contém controles Windows 8, mas contém controles compartilhados entre as plataformas
  • Controles XAML diferentes

Mais informações sobre este assunto, você encontra aqui.

Já a lógica das aplicações será a mesma. Vamos utilizar a PCL para encapsular nosso Model e nosso ViewModel em uma única DLL multi plataforma.

Então, do ponto de vista de arquitetura de software, nossas aplicações compatilharão uma mesma PCL.

 

image

 

Criando a Portable Class Library PCL:

Uma vez o projeto PCL compilado, você terá uma DLL. Esta DLL será adicionada como referência ao seu projeto de Windows 8 e Windows Phone 8.

Para criar a PCL, abra o Visual Studio 2012 (Professional ou superior) e selecione o Portable Class Library project em C# ou VB.NET:

image

 

Uma vez selecionado o projeto do tipo PCL, devemos escolher com quais plataformas esta DLL será compatível:

 

image

* IMPORTANTE: Para aparecer a opção de Windows Phone 8, você precisa instalar o Windows Phone 8 SDK

Pronto, sua PCL esta criada. Podemos ver que a única referência que existe neste projeto é um sub conjunto do .Net, chamado de .NET Portable Subset

image

 

Bom, em um próximo post vou continuar este projeto, e adicionar a esta PCL nosso Model e o ViewModel para ser compartilhado com as aplicações Windows 8 e Windows Phone 8. Fiquem ligados aqui no blog e no meu twitter http://twitter.com/daibert

Abraços,

@daibert

Outras referências para você conhecer melhor do assunto estão nos links no post http://aka.ms/SharedCodeDicas

Atualizações Twitter