w w w. l a m b d a 3 . c o m .b r
Desktop App Converter(Project “Centennial”)
Trazendo apps Win32 para a Windows Store
dotNetConf.local | São Paulo - Lambda3 | 30/08/2016
Desde 2006• Visual Studio ALM
Sobre mim
@igorabadewww.tshooter.com.br
Desde 2010• Consultoria• Desenvolvimento• TreinamentoDemocracia Organizacional
Windows 10operating system
Bridging technologies
Win32desktop
Webhosted
Obj.CiOS
Universal Windows Platform
WWAC++& CX
.Netlanguages
HTMLDirectX
XAML
C++
.Netlanguages
MFCWFWPF
.Netruntime
Vamos falar sobre modelo de aplicações?
Por que precisamos de um Modelo de Aplicações?• Windows nunca teve a definição de “o que é uma aplicação”
• Quer dizer, você sabe o que é quando vê uma, mas não foi formalizado• Começou com os arquivos .exe mas…
• Como você instala?• Como você armazena estado?• Por quanto tempo a aplicação fica em execução?• Como é feito o versionamento?• Como você integra com o SO?• Como você integra com outras aplicações?• Do que a sua aplicação é capaz?
• Precisamos de um Modelo Universal
Fácil de obter e atualizar
Núcleo e plataforma de aplicação unificados
A jornada da convergência
Windows Phone 7.5
Windows Phone 8Windows Phone 8.1
Windows 8
Xbox One
Windows on Devices
Xbox 360
Windows 8.1
Windows 10
Kernel do SOunificado
Convergedapp model
Phone Small Tablet
2-in-1s(Tablet or Laptop)
Desktops & All-in-OnesPhablet Large Tablet
Classic Laptop
Xbox IoTSurface Hub
Holographic
Windows 10
Multiple device families
PC XBoxMobile Surface Hub
HoloLensDevices +IoT
Universal Apps
One Store +One Dev Center
Reuse Existing CodeOne SDK +
Tooling
Adaptive User Interface Natural
User Inputs
One Universal Windows Platform
O que é o “UWP Windows App Model”• Define o ciclo de vida da aplicação• Unificado em todos os dispositivos Windows• Escala desde IOTMobilePCXboxHololens
• Do nascimento ao fim da vida• Instalação• Ambiente de execução• Gestão de Recursos• Atualização • Modelo de dados • Desinstalação
Modelo de Aplicações UWPInclui todas as aplicações que rodam no Windows• Novas aplicações Universal Windows Apps• Aplicações Existentes• Phone Apps • Windows 8.1 Apps• Aplicações Clássicas Windows (CWA, Classic Windows Apps)
Desktop App Converter (Project “Centennial”)• Estende o UWP App Model para Aplicações Clássicas
Windows
Apresentando o Desktop App ConverterDesktop App Converter – Trazendo apps Win32 para a Windows Store
What is Project Centennial?
Aperfeiçoa a plataforma Windows para todos os desenvolvedores• Converte aplicações desktop para a tecnologia de
implantação Universal Windows (appx)• Mantém seu código atual Win32/.NET funcionando• Mesmo código para PCs com Windows 10 e Windows 7/8• Adicione components Universal Windows ao longo do
tempo• Monetização via Windows Store (ou outro canal de
distribuição)
Fluxo de trabalho do desenvolvedor
MSI
Desktop App ConverterConverte o instalador desktop existenteResulta numa app empacotada com manifesto UWP
Teste, Atualize e EvoluaFaça mudanças de código compatíveis para as versões legadas e AppXEvolua a versão AppX para tirar proveito da Universal Windows Platform
Publique e DistribuaDistribua o pacote da aplicação via sideloading, MDM ou Windows Store*
AppX
* Em breve
Classic Desktop ApplicationCódigo Win32 / .NETInstalador MSI/EXE/BAT…Roda num processo desktop
Passo 0 – Aplicação Win32 Desktop
Classic Windows App
Universal App Package
Benefícios Imediatos:Tecnologia de deployment moderna para todas as aplicaçõesAtualizações transparentes, desinstalação limpaMonetização via Windows StoreRoda seu código atualPequena quantidade de mudanças no código (se tiver)
Passo 1 – Converter a Aplicação
Classic Windows App
Dem
oConversão de aplicação Desktop
Como isso funciona?• Deployment• Usa Universal Windows Platform Deployment Stack• Extensões para os pontos de extensibilidade WIn32• Extensões do Shell (ex. associações de tipo de arquivo)
• Resolve “DLL Hell”, “Registry Bloat”/“Windows Rot”• Redirecionamento/Mesclagem do Registry• Redirecionamento/Mesclagem do Sistema de Arquivos• Redirecionamento de escrita para alguns diretórios• Mesmo código continua funcionando no
Windows 7, 8, etc.
Ponte (bridge) para a Universal Windows PlatformNeste ponto sua aplicação já tem:• Instalação moderna• Ativação por Tiles, tipos de arquivo ou Protocolos URL• App Identity acesso à API UWP • UWP App Model• Ou seja… Tudo o que uma
UWA pode fazer!
Exemplos de recursos:Suporte a Live TilesNotificações AvançadasCortanaetc.
Passo 2 – Chamar APIs UWP
Universal Windows API
Classic Windows App
Universal App Package
Continuando a Migração para UWP
Configuration Security Management Updates
Natural User Inputs
One SDK + Tooling
Cloud Services
One Store +One Dev Center
Adaptive User
Interface
Holographic Xbox
Devices +IoT
Surface HubMobilePC
• Fazer tudo o que uma aplicação UWP pode fazer• Tirar proveito de mais APIs UWP• Tirar proveito de Serviços de Aplicação, Tarefas de
Segundo Plano & gatilhos• Migrar UI para XAML
Passo 3 – Adicionar um Componente UWP
Exemplos de Recursos:Interface de Usuário em XAMLTarefas de Segundo PlanoFile Picker UI
Rodar no App ContainerComunicação via AppService
Universal Windows App
Classic Windows App
Universal App Package
Processos Desktop & App Container• Código atual executando em um processo Desktop• Aplicação UWP roda em um App Container• Ativar processo Desktop a partir de App Container e
vice-versa• Inter Process Communication (via AppService)
Activate
Activate
DesktopProcess
App ContainerProcess
Passo 4 – Migrar código para UWP
Mover código/componentes compatíveis para o App Container
Universal Windows App
Classic Windows App
Universal App Package
Passo 5 – Totalmente UWP
Move código restante para o App ContainerRoda em todo lugarPCMobileXbox OneHoloLensetc.
Universal App Package
Universal Windows App
Complete a Migração para UWP• Remova código não-aderente• Mais APIs Win32 suportadas no AppContainer
• Mova o resto do código para o App Container• Rode em qualquer dispositivo (PC, phone, Xbox One,
HoloLens, etc.)
Resumo• Project Centennial é uma
ponte para UWAs• Converte suas aplicacões
para AppX• Virtualiza acesso a
recursos• Permite que você
adicioner Recursos UWA aos poucos
Perguntas?
Desktop App Converter (Project “Centennial”)Trazendo apps Win32 para a Windows Store
www.lambda3.com.br