Windows runtime deep dive

Post on 24-May-2015

2,609 views 5 download

Tags:

description

Apresentação na trilha Windows Phone / Windows 8 no TDC Florianópolis 2013.

transcript

Windows Runtime Deep DiveOsvaldo Daibert http://twitter.com/daibertTechnical Evangelist, Microsoft Brasilodaibert@microsoft.com

Investimentos na Plataforma

Investimentos Principais

Novas APIs do Windows Runtime (WinRT)Novo Ambiente de Execução de AplicaçõesNova Experiência de Usuário Windows 8

Windows Store

O que é o Windows (Phone) Runtime• Infraestrutura de componentes para aplicações

nativas Windows 8 / Windows Phone • Conjunto de tipos base compativeis entre várias

linguagens• Tecnologia baseada em COM (isso mesmo!)• Windows.* Runtime objects é um conjunto de

nomes de APIs padronizadas para todas as linguagens (Javascript / C# / VB.Net / C++ …)

• WinRT não substitui o .NET

• WinRT melhora o .NET

O qu é o Windows (Phone) Runtime

Plataforma Windows 8

Aplicações Windows Store

HTMLJavaScri

pt

CC++

C#VB

Apps Desktop

Win32

.NET / SL

Internet Explore

r

Comunicação & Dados

Modelo de Aplicação

Dispositivos & Impressão

WinRT APIsGráficos &

Mídia

Serv

iços

do S

iste

ma

JavaScript(Chakra)

CC++

C#VB

XAML HTML / CSSVie

wM

od

el

Contr

olle

r

Serviços do núcleo do Sistema Operacional WindowsN

úcl

eo

Windows Runtime Architecture

Windows Metadata

& Namespa

ce

Language Projection

Windows Core

Windows Runtime Core

XAMLStorag

e…Network

UI Pickers MediaControls

Windows Store app

Runtime Broker

Language Support

(CLR, WinJS, CRT)

Web Host (HTML, CSS, JavaScript))

Comparando o Windows Runtime com o COM

COM Windows Runtime

APIs Co* são utilizados para ativação das aplicações como em CoInitializeEx();

APIs Ro* são utilizados para ativação das aplicações como em RoInitialize();

Strings usam tipos nativos BSTRs

Strings usam tipos nativos HSTRING

Todos os componentes COM são derivados da interface Iunknown

Todos os objetos Windows Runtime são derivaods da interface IInspectable

APIs do Windows Runtime

APIs para Aplicações Windows Store

APIs fundamentaisApplication

Services Threading/Timers Memory Management Authentication Cryptography Globalization

Dispositivos

Geolocation Portable Sensors NFC

Interface de Usuário

SVG Tiles Input Accessibility Printing

HTML5/CSS XAML DirectX Controls Data Binding

Comunicações & Dados

Memory Management XML Networking SMS

Notifications Streams

Contracts Local & Cloud Storage Web

Mídia

Playback Capture PlayTo Visual Effects

Windows Runtime As APIs Windows Runtime são assíncronas

As APIs Windows Runtime provêm acesso rico ao dispositivo, sistema operacional e serviços

As APIs Windows Runtime APIs parecem naturais no C#, JavaScript e C++

Projeção das Linguagens

WindowsRuntime

Escrito emC++, C#, VB

Metadados doWindows

Aplicação C++

Pro

jeçã

o

CLR

Aplicação C#/VB

Pro

jeção

Aplicação HTMLCh

akra

Pro

jeçã

o

Ambiente de Execução de Aplicações

Aquisição de Aplicações Windows Store retaguarda

daWindows

Store

Gerenciador de PacotesWindows

Store instalaMecanismo

de execução

Tratador de

extensões

armazena

Repositório unificado

registra Informações de registro

Blocos de um Pacote de Aplicação Manifesto contém todas as informações necessárias para instalar a aplicação

Blockmap contém os códigos hash de todos os arquivos de dentro do pacote

Assinatura valida a integridade do pacote

AppXManifest.xml

BlockMap

Assinatura

Diretório Central do Zip

Arquivos / Recursos

pacote .appx

Manifesto da Aplicação e Capacidades Explicitamente declara os pontos de integração da aplicação Capacidade de acessar arquivos (bibliotecas de

músicas/imagens/vídeos/documentos, armazenamento removível)

Dispositivos (webcam, microfone, localização, sms, proximidade); extensível para novos tipos de dispositivos

Rede e identidade (internet, rede privada, credenciais) Associações de tipo de arquivo Contratos da aplicação (busca, compartilhamento, etc.)

appxmanifest.xml

Ambiente de Execução de Aplicações – Processos e Dados

Transição dos estados de um Processo

Aplicaçãorodando

suspendendo

retomando

Aplicaçãosuspensa

Poucos Recursos

Aplicação terminada

Isolamento de Processos

OSDados do usuário Dispositivos Comunicações Tratadores Tiles Criptografia … …

Inte

rmed

iador

es

Processo 1Contexto Local

Contexto Web Dados da aplicação

Local Temp Roaming

Contratos

Processo 2Contexto Local

Contexto Web Dados da aplicação

Local Temp Roaming

APIs

Dire

tas

Dados da Aplicação vs. Dados do Usuário

Dados do Usuário

Documentos

Fotos Músicas Vídeos

Dados da Aplicação

Configura-ções

ArquivosEstado de

sessãoCache Local

Roaming / Itinerância

A aplicação usa os dados normalmente

Sincronização de dados para a conta de usuário Microsoft

Armazenamento Local

Revisão – Ambiente de Execução

Conectado

Acesso aos dados transparente

Roaming de dados

Poderoso

Alto desempenho

Plataforma nativa

Confiável

Baseado em capacidades

Alto isolamento

Apps C# versus Apps HTML5/ Javascript

…Booting Windows RT From the firmware, the system can then load the boot manager, boot loader, and in turn the kernel, HAL, and boot device drivers

© 2012 Microsoft Corporation. All rights reserved. Microsoft Confidential - For Internal and Partner Use Only

24

Windows reimaginadoPara consumidores, para desenvolvedores

http://aka.ms/mva

http://design.windows.com

http://dev.windows.com

http://aka.ms/Win8hack

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Windows Runtime Deep Dive

Osvaldo Daibert http://twitter.com/daibertTechnical Evangelist