Curso C++/WinRT com WinUI 3 e WinAppSDK Advanced
24 horasVisão Geral
Este Curso C++/WinRT com WinUI 3 e WinAppSDK Advanced é projetado para capacitar profissionais experientes em C# e com conhecimento intermediário em C++ no desenvolvimento de aplicações modernas para Windows usando C++/WinRT, com WinUI 3 e WinAppSDK. O curso também abordará interoperabilidade entre C++/WinRT e C#.
O que é C++/WinRT com WinUI 3 e WinAppSDK?
- C++/WinRT: É uma biblioteca moderna baseada em C++ que permite aos desenvolvedores acessar as APIs do Windows Runtime (WinRT) de forma eficiente e nativa. O WinRT é a base para criar aplicações modernas no Windows, como aplicativos UWP (Universal Windows Platform), e o C++/WinRT oferece uma abordagem simplificada e performática para interagir com essas APIs, substituindo tecnologias mais antigas como C++/CX ou WRL.
- WinUI 3: É a terceira geração da biblioteca de interface de usuário da Microsoft, projetada para criar interfaces gráficas modernas, consistentes e visualmente atraentes para aplicações Windows. Diferente do WinUI anterior, que era restrito ao UWP, o WinUI 3 pode ser usado em aplicações desktop tradicionais, oferecendo controles avançados e suporte a XAML.
- WinAppSDK (Windows App SDK): É um conjunto de ferramentas e bibliotecas que unifica o desenvolvimento para Windows, permitindo que desenvolvedores criem aplicações desktop (não apenas UWP) com acesso às APIs modernas do WinRT, incluindo o WinUI 3. Ele fornece recursos como threading, acesso ao sistema e integração com tecnologias nativas do Windows, independentemente do framework (.NET, C++, etc.).
Juntos, C++/WinRT, WinUI 3 e WinAppSDK formam uma poderosa combinação para desenvolver aplicações desktop Windows modernas, rápidas e com interfaces gráficas ricas, aproveitando o desempenho do C++ e a flexibilidade do ecossistema Windows.
Objetivo
Após realizar este Curso C++/WinRT com WinUI 3 e WinAppSDK Advanced, você será capaz de:
- Criar aplicações modernas para Windows usando C++/WinRT, WinUI 3 e WinAppSDK.
- Implementar interfaces gráficas eficientes e responsivas.
- Integrar C++/WinRT com C#.
- Trabalhar com comunicação assíncrona e multithreading.
- Otimizar performance e gerenciar memória de forma eficiente.
- Garantir segurança e proteção de dados em suas aplicações.
- Criar uma aplicação completa como projeto final.
O que vou aprender após o término desse curso?
Ao concluir o Curso C++/WinRT com WinUI 3 e WinAppSDK Advanced, você terá adquirido um conjunto abrangente de habilidades práticas e avançadas, incluindo:
- Fundamentos e Arquitetura: Entender como o C++/WinRT, WinUI 3 e WinAppSDK funcionam juntos e como se diferenciam de tecnologias anteriores (UWP, C++/CX).
- Interfaces Gráficas Modernas: Criar interfaces ricas com WinUI 3, utilizando XAML, MVVM, eventos e controles personalizados.
- Interoperabilidade C# e C++: Integrar código C++/WinRT com C# via projeções WinRT, COM Interop e P/Invoke, permitindo flexibilidade em projetos híbridos.
- Programação Assíncrona: Implementar operações assíncronas com co_await, gerenciar threads e evitar problemas como deadlocks.
- Acesso ao Sistema: Manipular arquivos, configurações e APIs nativas (Win32) com segurança e eficiência.
- Networking: Desenvolver comunicação entre processos (ex.: TCP/IP, Named Pipes) e integrar serviços HTTP.
- Otimização: Aplicar técnicas de gerenciamento de memória (RAII, smart pointers) e diagnosticar desempenho com ferramentas como o Visual Studio Profiler.
- Segurança: Proteger dados com criptografia, permissões e prevenção contra ataques (buffer overflow, injeções).
- Projeto Prático: Construir uma aplicação desktop completa (ex.: transferência de arquivos segura) que combine todos esses elementos.
Você sairá do curso com a capacidade de desenvolver aplicações Windows avançadas e práticas, prontas para cenários reais.
Publico Alvo
Quais são os profissionais que devem participar deste Curso C++/WinRT com WinUI 3 e WinAppSDK Advanced?
Esse Curso C++/WinRT com WinUI 3 e WinAppSDK Advanced é voltado para profissionais com experiência técnica que desejam se especializar ou aprimorar suas habilidades em desenvolvimento avançado para Windows. Os principais perfis incluem:
- Desenvolvedores C# com interesse em C++: Profissionais experientes em C# (ex.: .NET, WPF, UWP) que desejam migrar ou integrar suas habilidades com C++ para criar aplicações mais performáticas.
- Desenvolvedores C++ intermediários: Aqueles com conhecimento em C++ que buscam dominar o C++/WinRT para desenvolver aplicações modernas no Windows.
- Engenheiros de Software: Especialistas em sistemas Windows que precisam criar soluções desktop otimizadas, seguras e escaláveis.
- Arquitetos de Software: Responsáveis por projetar aplicações híbridas (C# e C++) que exigem alta performance e integração com APIs nativas.
- Desenvolvedores de Aplicações Desktop: Que trabalham com ferramentas legadas (ex.: Win32, MFC) e desejam modernizar seus projetos com WinUI 3 e WinAppSDK.
- Profissionais de TI em transição: Que buscam especialização em desenvolvimento avançado para Windows como diferencial no mercado.
Esse Curso C++/WinRT com WinUI 3 e WinAppSDK Advanced é ideal para quem já tem uma base técnica sólida e quer dar um passo além no desenvolvimento nativo para Windows.
Pre-Requisitos
- Conhecimento intermediário de C++.
- Experiência com desenvolvimento em C#.
- Familiaridade com Visual Studio e desenvolvimento para Windows.
Materiais
Inglês/Português/Lab PráticoConteúdo Programatico
Fundamentos do C++/WinRT e Arquitetura WinAppSDK
- Visão geral do Windows Runtime (WinRT) e seu papel na plataforma Windows.
- Diferenças entre UWP, WinUI 3 e WinAppSDK.
- Estrutura do C++/WinRT: projeções, namespaces, geração de código.
- Comparação entre C++/WinRT, C++/CX e WRL.
- Criando um projeto com WinUI 3 e WinAppSDK no Visual Studio.
Criando Interfaces Gráficas com WinUI 3 e C++/WinRT
- Estrutura de uma aplicação WinUI 3 (Desktop) com C++/WinRT.
- Manipulação da UI com XAML: layouts, controles e bindings.
- Trabalhando com MVVM em C++/WinRT (separação entre UI e lógica).
- Eventos e comunicação entre componentes UI e código C++.
- Customização de controles e estilos no WinUI 3.
Interoperabilidade entre C++/WinRT e C#
- Chamando código C++/WinRT a partir do C# (projeções WinRT).
- Criando bibliotecas WinRT em C++ para uso no C#.
- P/Invoke e COM Interop para integração direta entre C# e C++.
- Interop com .NET 6/7+ e desafios na comunicação entre os dois mundos.
- Exemplo prático: Criando uma API de alto desempenho em C++/WinRT e consumindo em um aplicativo C#.
Comunicação Assíncrona e Multithreading em C++/WinRT
- Programação assíncrona com co_await e IAsyncAction/IAsyncOperation.
- Trabalhando com Thread Pool e Background Tasks no WinAppSDK.
- Comunicação segura entre UI Thread e Worker Threads.
- Sincronização de dados e compartilhamento seguro de recursos.
- Estratégias avançadas para evitar deadlocks e race conditions.
Acesso ao Sistema e Gerenciamento de Arquivos
- Trabalhando com StorageFile, StorageFolder e FileOpenPicker.
- Lendo e escrevendo arquivos em C++/WinRT.
- Integração com APIs nativas do Windows (Win32) via WinAppSDK.
- Implementando logging e diagnóstico de erros em tempo de execução.
- Acesso e manipulação de configurações do sistema.
Comunicação entre Processos e Networking
- Criando Named Pipes e Sockets TCP/IP em C++/WinRT.
- Comunicação entre processos usando WinRT Remoting.
- Serialização e deserialização de JSON e XML.
- Conectando-se a serviços HTTP usando Windows.Networking.Http.
- Exemplo prático: Implementando um servidor e cliente TCP usando C++/WinRT.
Otimização de Performance e Gerenciamento de Memória
- Estratégias para evitar memory leaks com RAII (Resource Acquisition Is Initialization).
- Uso eficiente de winrt::com_ptr<> e smart pointers.
- Técnicas de cache e pooling de objetos.
- Diagnóstico de performance com Visual Studio Profiler.
- Melhores práticas para uso eficiente de buffers e streams.
Segurança e Proteção de Dados em C++/WinRT
- Gerenciamento de permissões no WinAppSDK.
- Proteção de dados com Windows.Security.Cryptography.
- Uso de SecureString e Data Protection API (DPAPI).
- Prevenção contra buffer overflows e injeções de código.
- Implementação de sandboxing e isolamento de processos.
Projeto Final - Criando uma Aplicação Completa
Desenvolvimento de um aplicativo desktop seguro para transferência de arquivos via TCP/IP, com:
- UI moderna com WinUI 3 para seleção e envio de arquivos.
- Criptografia antes do envio (AES ou RSA).
- Processamento paralelo (multithreading) para melhor desempenho.
- Mecanismos de segurança contra ataques (buffer overflow, injeções, etc.).
- Interoperação entre C++/WinRT e C# para máxima flexibilidade.