Este artigo contém as informações necessárias para começar a criar aplicativos para o Windows.
O Windows oferece uma ampla variedade de linguagens, estruturas e ferramentas para criar aplicativos, incluindo WinUI, React Native para Desktop, WPF, C++, C#, .NET e uma variedade de estruturas multiplataforma. Aqui, fornecemos informações para ajudar você a decidir qual opção é melhor para o seu caso.
WinUI
Recomendamos o WinUI e o SDK do Aplicativo Windows para criar aplicativos com ótima aparência e aproveitar as versões mais recentes do Windows. Se você é novo no desenvolvimento do Windows ou está começando a trabalhar em um novo aplicativo do Windows, a WinUI fornece os recursos necessários para criar ótimos aplicativos para Windows 11.
WinUI é uma camada de interface do usuário baseada em marcação XAML que contém controles e estilos modernos para criar aplicativos do Windows. Como a camada de interface do usuário nativa para o SDK do Aplicativo Windows, ela incorpora o Fluent Design, dando a cada aplicativo do Windows a sensação refinada que os clientes esperam.
O SDK do Aplicativo Windows é um conjunto de novos componentes e ferramentas para desenvolvedores que representa a mais recente evolução da plataforma de desenvolvimento de aplicativos do Windows. O SDK do Aplicativo Windows fornece um conjunto unificado de APIs e ferramentas que podem ser usadas de maneira consistente por qualquer aplicativo da área de trabalho no Windows 11 e na versão anterior para Windows 10, versão 1809.
Embora WinUI seja a camada nativa da interface do usuário, você pode usar o SDK do Aplicativo Windows com aplicativos WPF, WinForms ou Win32. Caso você já tenha desenvolvido aplicativos para Windows antes, mas está buscando começar a usar o SDK do Aplicativo Windows em um aplicativo existente, consulte Guias específicos da estrutura.
React Native para desktop
O React Native é uma plataforma de desenvolvimento que permite a criação de aplicativos de plataforma cruzada. O React Native para Desktop engloba o React Native para Windows e macOS, trazendo suporte ao React Native para o SDK do Windows. O React Native for Desktop permite que você use JavaScript para criar aplicativos nativos do Windows para todos os dispositivos compatíveis com Windows 10 e Windows 11. Isso inclui PCs, tablets, dispositivos 2 em 1, Xbox, dispositivos de Realidade Misturada etc.
Com o React Native para Desktop, você escreve a maior parte ou todo o código do aplicativo em JavaScript - ou TypeScript - e a estrutura produz um aplicativo XAML UWP nativo. Se o seu aplicativo precisar chamar uma API de plataforma, você geralmente pode fazer isso por meio de um dos vários módulos da comunidade. Se um módulo ainda não existir, é fácil escrever um módulo nativo para expô-lo.
Aqui estão alguns motivos para escolher o React Native para Desktop:
Você deseja compartilhar código entre plataformas o máximo possível ou você tem propriedades da Web com as quais deseja compartilhar o código.
Maior produtividade do desenvolvedor e loop interno, graças à atualização rápida.
Os conceitos básicos do seu aplicativo (desempenho, acessibilidade, internacionalização) são tão bons quanto um aplicativo UWP nativo.
Você tem experiência com JavaScript ou TypeScript e preferência por eles
Você gostaria de aproveitar bibliotecas somente JavaScript em npmjs.com e muitas bibliotecas nativas também.
Seu aplicativo usará os controles nativos, a aparência visual, as animações e as cores e, portanto, ficará integrado à linguagem de design usada em Windows. Além disso, os aplicativos React Native para desktop não precisam comprometer o conjunto de APIs que podem chamar, pois a estrutura permite que você chame APIs de plataforma, bem como escreva seus próprios gerenciadores de exibição e módulos nativos.
O WPF é uma estrutura bem estabelecida para aplicativos de área de trabalho do Windows com acesso ao .NET ou o .NET Framework. Assim como o WinUI, ele também usa marcação XAML para separar a interface do usuário do código. O WPF fornece um conjunto abrangente de recursos de desenvolvimento de aplicativos que incluem controles, associação de dados, layout, elementos gráficos 2D e 3D, animação, estilos, modelos, documentos, mídia, texto e tipografia. O WPF faz parte do .NET; portanto, você pode criar aplicativos que incorporam outros elementos da API .NET.
Além disso, agora você pode integrar um ambiente sandbox aos seus aplicativos WPF empacotados, fornecendo uma camada adicional de segurança. Este aprimoramento requer pouca ou nenhuma alteração no seu código, graças ao novo recurso de segurança Win32 App Isolation.
Dica
Se você já investiu no WPF, pode continuar a usá-lo e aproveitar as opções de modernização no .NET 9. Você pode criar seus aplicativos sabendo que a Microsoft continua investindo no WPF. Consulte as Perguntas frequentes sobre a estrutura de desenvolvimento de aplicativos cliente para obter mais informações.
Muitos aplicativos para Windows são escritos usando Win32, Windows Forms ou UWP. Cada uma dessas estruturas é suportada e continuará a receber correções de bug, confiabilidade e segurança, mas níveis variados de investimento para novos recursos e estilos. Para saber mais sobre esses tipos de aplicativos, confira as guias a seguir.
Os aplicativos da área de trabalho do Win32 (às vezes chamados de aplicativos da área de trabalho clássicos) são o tipo de aplicativo original para aplicativos do Windows nativos que exigem acesso direto ao Windows e ao hardware. Isso torna o Win32 o tipo preferido para aplicativos que precisam do nível mais alto de desempenho e acesso direto ao hardware do sistema.
Usar a API do Win32 com C++ permite alcançar os mais altos níveis de desempenho e eficiência ao assumir mais controle da plataforma de destino com código não gerenciado do que é possível em um ambiente de runtime gerenciado como WinRT e .NET. No entanto, exercer esse nível de controle sobre a execução de seu aplicativo requer maior cuidado e atenção para dar certo, além de negociar a produtividade de desenvolvimento para o desempenho do runtime.
Aqui estão alguns destaques do que a API do Win32 e C++ oferece para permitir que você crie aplicativos de alto desempenho.
Otimizações de nível de hardware, incluindo controle rígido sobre alocação de recurso, tempos de vida do objeto, layout de dados, alinhamento, empacotamento de bytes e muito mais.
Acesso a conjuntos de instruções orientadas por desempenho como SSE e AVX por meio de funções intrínsecas.
Programação genérica eficiente e fortemente tipada usando modelos.
Contêineres e algoritmos eficientes e seguros.
DirectX, em particular Direct3D e DirectCompute.
Use C++/WinRT para criar aplicativos Win32 da área de trabalho modernos com acesso de primeira classe a APIs do WinRT (Windows Runtime).
Além disso, agora você pode integrar um ambiente sandbox aos seus aplicativos Win32, fornecendo uma camada adicional de segurança. Este aprimoramento requer pouca ou nenhuma alteração no seu código, graças ao novo recurso de segurança Win32 App Isolation.
O Windows Forms é a plataforma original para aplicativos gerenciados do Windows com um modelo de interface do usuário leve e acesso ao .NET ou ao .NET Framework. Ele permite que os desenvolvedores comecem rapidamente a criar aplicativos, mesmo para os desenvolvedores novos na plataforma. Esta é uma plataforma que usa o método RAD, baseada em formulários, com uma grande coleção interna de controles do tipo "arrastar e soltar" de visual e não visual. O Windows Forms não usa XAML. Portanto, decidir posteriormente reescrever seu aplicativo para a WinUI envolve uma reescrita completa da interface do usuário.
Além disso, agora você pode integrar um ambiente sandbox aos seus aplicativos Windows Forms empacotados, fornecendo uma camada adicional de segurança. Este aprimoramento requer pouca ou nenhuma alteração no seu código, graças ao novo recurso de segurança Win32 App Isolation.
A UWP (Plataforma Universal do Windows) oferece um sistema de tipo comum, APIs e modelo de aplicativo para todos os dispositivos na Plataforma Universal do Windows. Você não só pode usar a UWP para criar aplicativos da área de trabalho para computadores Windows, mas a UWP também é a única plataforma com suporte para escrever um único aplicativo universal nativo que é executado no Xbox, HoloLens e Surface Hub. Os aplicativos UWP podem ser nativos ou gerenciados.
Observação
Seu aplicativo UWP existente continuará funcionando conforme o esperado. No entanto, para aproveitar os recursos modernos do WinUI 3 e do SDK do Aplicativo Windows, recomendamos migrar seu aplicativo.
Você não terá acesso às APIs fornecidas pelo SDK do Aplicativo Windows ou .NET 6 e posterior. Para usar o SDK do Aplicativo Windows, você precisará migrar seu aplicativo UWP para o WinUI e o SDK do Aplicativo Windows. Para obter mais informações, consulte Migrar para SDK do Aplicativo Windows.
O .NET MAUI aproveita a alta eficiência da WinUI no Windows e também permitem a execução em outros sistemas operacionais. Outra opção de plataforma cruzada, os PWAs (Aplicativos Web Progressivos), são sites que funcionam como aplicativos nativos instalados no Windows e outras plataformas compatíveis, mas que atuam como sites comuns em navegadores.
Para obter mais informações, confira as guias a seguir:
A .NET MAUI (Multi-platform App UI) é uma estrutura de código aberto e multiplataforma para a criação de aplicativos Android, iOS, macOS e Windows que aproveitam a interface do usuário nativa e os serviços de cada plataforma de uma única base de código .NET. Como .NET MAUI favorece experiências nativas da plataforma, ela usa WinUI e SDK do Aplicativo Windows para que os aplicativos recebam a experiência mais recente do usuário Windows. Isso dá aos seus aplicativos acesso a tudo o que você tem com a WinUI, além da capacidade de alcançar outras plataformas.
.NET MAUI para Windows é uma ótima opção se:
Você deseja compartilhar o máximo possível de código .NET em aplicativos móveis e da área de trabalho.
Você deseja enviar seu aplicativo além do Windows para outros destinos móveis e de área de trabalho com experiências de plataforma nativa.
Você deseja usar C# e/ou XAML para criar aplicativos multiplataforma.
Você está usando o Blazor para o desenvolvimento na Web e deseja incluir tudo ou parte dele em um aplicativo móvel ou de área de trabalho.
Os PWAs (Aplicativos Web Progressivos) fornecem acesso a tecnologias da Web abertas a fim de oferecer interoperabilidade de plataforma cruzada. Os PWAs fornecem aos usuários uma experiência semelhante a um aplicativo e personalizada para seus dispositivos. Eles consistem em sites que são progressivamente aprimorados para funcionar como aplicativos nativos instalados em plataformas de suporte (incluindo o Windows), e funcionam como sites regulares em outros navegadores.
Quando instalados no Windows, os PWAs são como outros aplicativos. Por exemplo:
Um PWA pode ser adicionado ao menu Iniciar.
Um PWA pode ser fixado na barra de tarefas.
Os PWAs podem lidar com arquivos.
Os PWAs podem ser executados quando o usuário faz logon.
Os PWAs podem ser enviados à Microsoft Store, onde milhões de usuários do Windows podem descobri-los e instalá-los facilmente com outros aplicativos do Windows.
Comparação de recursos da estrutura de desenvolvimento de aplicativos
Há uma ampla gama de opções para o desenvolvimento de aplicativos para Windows. A melhor opção para você depende dos requisitos do aplicativo, do código existente e da familiaridade com a tecnologia. A tabela a seguir lista as estruturas de desenvolvimento de aplicativos mais populares disponíveis no Windows e os recursos compatíveis com cada estrutura.
Recurso
.NET MAUI
Blazor Hybrid
React Native para desktop
UWP XAML (Windows.UI.Xaml)
Win32 (MFC ou ATL)
Windows Forms
WinUI 3
WPF
Idioma
C#
C#
JavaScript, TypeScript
C#, C++, Visual Basic
C++, Rust
C#, Visual Basic
C/C++
C#, Visual Basic
Idioma da interface do usuário
Código XAML:
Razor
JSX
XAML
Código
Código
XAML
XAML
Designer de interface do usuário (arrastar e soltar)
O Windows não é ótimo apenas para desenvolver aplicativos executados no Windows, ele também é um ambiente poderoso para desenvolver aplicativos para qualquer plataforma. Saiba mais sobre as ferramentas e opções disponíveis para maximizar seu desenvolvimento.
Colaborar conosco no GitHub
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.
Comentários do Windows developer
O Windows developer é um projeto código aberto. Selecione um link para fornecer comentários:
Os desenvolvedores do Windows têm várias opções para criar aplicativos que são executados no Windows. Este módulo apresenta as estrutura da IU do Windows disponíveis para desenvolvimento no Windows. Ele também fornece diretrizes sobre como escolher a melhor estrutura para seu aplicativo.