Visão geral das opções de estrutura
Este artigo contém as informações necessárias para começar a criar aplicativos para Windows.
O Windows oferece uma ampla gama de linguagens, estruturas e ferramentas para criar aplicativos, incluindo WinUI, React Native for Desktop, WPF, C++, C#, .NET e uma variedade de estruturas multiplataforma. Aqui, fornecemos informações para ajudá-lo a decidir qual é a melhor opção para você.
WinUI
Recomendamos a WinUI e o SDK de Aplicativos Windows para criar aplicativos com ótima aparência e aproveitar as versões mais recentes do Windows. Se és novo no desenvolvimento de aplicativos para Windows, ou estiveres a começar a trabalhar numa nova aplicação do Windows, a WinUI oferece os meios necessários para criar excelentes aplicações de 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 de Aplicações Windows, ele incorpora Fluent Design, dando a cada aplicação do Windows a sensação polida que os clientes esperam.
Observação
O SDK de Aplicativos Windows é um conjunto de novos componentes e ferramentas de desenvolvedor que representam a evolução mais recente na plataforma de desenvolvimento de aplicativos do Windows. O SDK de Aplicativos Windows fornece um conjunto unificado de APIs e ferramentas que podem ser usadas de forma consistente por aplicativos da área de trabalho no Windows 11 e no nível inferior ao Windows 10, versão 1809.
Enquanto WinUI é a camada de interface do usuário nativa, você pode usar o SDK de aplicativos do Windows com WPF, WinForms ou aplicativos Win32. Se tiver desenvolvido aplicações para Windows antes, mas pretende começar a usar o Windows App SDK numa aplicação existente, consulte Guias específicos da estrutura.
React Native para Desktop
React Native é uma plataforma de desenvolvimento que permite a criação de aplicativos multiplataforma. React Native for 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 o Windows 10 e o Windows 11. Isso inclui PCs, tablets, 2 em 1, Xbox, dispositivos de realidade mista, etc.
Com o React Native for Desktop, você escreve a maior parte ou todo o código do seu aplicativo em JavaScript - ou TypeScript - e a estrutura produz um aplicativo UWP XAML nativo. Se seu aplicativo precisar chamar uma API de plataforma, você geralmente pode fazê-lo por meio de um dos muitos módulos da comunidade , ou se um módulo ainda não existir, você pode facilmente escrever um módulo nativo para expô-lo.
Aqui estão algumas razões para escolher o React Native for Desktop:
- Você deseja compartilhar código entre plataformas tanto quanto possível, ou você tem propriedades da Web com as quais deseja compartilhar código.
- Maior produtividade do desenvolvedor e loop interno, graças à atualização rápida.
- Os fundamentos do seu aplicativo (desempenho, acessibilidade, internacionalização) são tão bons quanto um aplicativo UWP nativo.
- Você tem experiência e preferência por JavaScript ou TypeScript
- Gostaria de tirar partido de bibliotecas feitas exclusivamente em JavaScript no npmjs.come de muitas bibliotecas nativas.
- Seu aplicativo usará os controles nativos, aparência visual, animações e cores e, portanto, se sentirá integrado à linguagem de design usada no Windows. Além disso, os aplicativos React Native for 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.
- Grande e crescente dinâmica comunitária, com muitos módulos comunitários.
Para obter mais informações sobre o React Native for Desktop, consulte os seguintes links:
- repositório do React Native no GitHub para Windows
- repositório React Native para macOS no GitHub
- Referência da API
- recursos do React Native para Desktop
WPF (Windows Presentation Foundation)
WPF é uma estrutura bem estabelecida para aplicações de ambiente de trabalho do Windows com acesso ao .NET ou ao .NET Framework. 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, vinculação de dados, layout, 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 do .NET.
Além disso, agora você pode integrar um ambiente de sandbox em seus aplicativos WPF empacotados, fornecendo uma camada adicional de segurança. Esse 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 a investir no WPF. Consulte o de perguntas frequentes para desenvolvedores do Windows para obter mais informações.
Se tens um aplicativo WPF .NET, também tens acesso às funcionalidades modernas da plataforma Windows e APIs fornecidas pelo Windows App SDK. Para obter mais informações, consulte Usar o SDK do Aplicativo Windows em um aplicativo WPF e Modernizar seus aplicativos da área de trabalho.
Dica
Se precisar de mais ajuda para decidir qual estrutura é a melhor opção para seu aplicativo, consulte o módulo de treinamento Escolha a melhor estrutura de aplicativo para um projeto de desenvolvimento do Windows.
Outras opções de plataforma nativa
Muitos aplicativos para Windows são escritos usando Win32, Windows Formsou UWP. Cada uma dessas estruturas é suportada e continuará a receber correções de bugs, confiabilidade e segurança, mas com níveis variáveis de investimento para novos recursos e estilos. Para obter mais informações sobre esses tipos de aplicativos, consulte as guias a seguir.
Os aplicativos de área de trabalho Win32 (também chamados aplicativos de área de trabalho clássicos) são o tipo de aplicativo original para aplicativos nativos do Windows que exigem acesso direto ao Windows e hardware. Isso torna o Win32 o tipo de aplicativo de escolha para aplicativos que precisam do mais alto nível de desempenho e acesso direto ao hardware do sistema.
Usar a API do Win32 com C++ torna possível alcançar os mais altos níveis de desempenho e eficiência, assumindo mais controle da plataforma de destino com código não gerenciado do que é possível em um ambiente de tempo de execução gerenciado como WinRT e .NET. No entanto, exercer esse nível de controle sobre a execução do seu aplicativo requer maior cuidado e atenção para acertar, e troca a produtividade do desenvolvimento pelo desempenho do tempo de execução.
Aqui estão alguns destaques do que a API do Win32 e o C++ oferecem para permitir que você crie aplicativos de alto desempenho.
- Otimizações no nível de hardware, incluindo controle rígido sobre alocação de recursos, tempo de vida de objetos, layout de dados, alinhamento, empacotamento de bytes e muito mais.
- Acesso a conjuntos de instruções orientadas para o desempenho, como SSE e AVX, através de funções intrínsecas.
- Programação genérica eficiente e segura para tipos usando modelos.
- Contentores e algoritmos eficientes e seguros.
- DirectX, em particular Direct3D e DirectCompute.
- Use C++/WinRT para criar aplicativos Win32 modernos de área de trabalho com acesso de primeira classe às APIs do Tempo de Execução do Windows (WinRT).
Além disso, agora você pode integrar um ambiente de área restrita em seus aplicativos Win32, fornecendo uma camada adicional de segurança. Esse aprimoramento requer pouca ou nenhuma alteração no seu código, graças ao novo recurso de segurança Win32 App Isolation.
Você também tem acesso aos recursos modernos da plataforma Windows e APIs fornecidos pelo SDK de Aplicativo Windows. Para obter mais informações, consulte Usar o SDK do Aplicativo Windows em um projeto existente e Modernizar seus aplicativos da área de trabalho.
Outras opções multiplataforma
Se você precisar que seu aplicativo seja multiplataforma, além do React Native for Desktop, considere .NET MAUI ou um Progressive Web App (PWA). Existem muitas outras opções disponíveis (aqui está uma lista de opções populares), mas estes são alguns bons pontos de partida.
O .NET MAUI aproveita o poder do WinUI no Windows, ao mesmo tempo em que permite a execução em outros sistemas operacionais. Outra opção multiplataforma, Progressive Web Apps (PWAs), são sites que funcionam como aplicativos instalados e nativos no Windows e outras plataformas suportadas, enquanto funcionam como sites comuns em navegadores.
Para obter mais informações, consulte as guias a seguir.
.NET Multi-platform App UI (MAUI) é uma estrutura de código aberto e multiplataforma para criar aplicativos Android, iOS, macOS e Windows que aproveitam a interface do usuário nativa e os serviços de cada plataforma a partir de uma única base de código .NET. Como o .NET MAUI favorece experiências nativas da plataforma, ele usa a WinUI e o SDK de aplicativos do Windows para que os aplicativos obtenham a experiência de usuário mais recente no Windows. Isso dá aos seus aplicativos acesso a tudo o que você obtém com o 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 de código .NET possível entre aplicativos móveis e de desktop.
- Você deseja enviar seu aplicativo além do Windows para outros destinos de desktop e dispositivos móveis com experiências de plataforma nativas.
- Você deseja usar C# e/ou XAML para criar aplicativos entre plataformas.
- Você está usando Blazor para desenvolvimento web e deseja incluir tudo ou parte disso em um aplicativo móvel ou desktop.
Para obter mais informações sobre a MAUI do .NET, consulte os seguintes links:
Comparação da estrutura de desenvolvimento de aplicativos e seus recursos
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 suportados por cada estrutura.
Funcionalidade | .NET MAUI | Blazor Híbrido | React Native para Desktop | UWP XAML (Windows.UI.Xaml) | Win32 (MFC ou ATL) | Formulários do Windows | WinUI 3 | WPF |
---|---|---|---|---|---|---|---|---|
Language | C# | C# | JavaScript, TypeScript | C#, C++, Visual Basic | C++, Rust | C#, Visual Basic | C#, C++ | C#, Visual Basic |
idioma da interface do usuário | XAML/Código | Navalha | JSX | XAML | Código | Código | XAML | XAML |
Designer de IU (arrastar &, soltar) |
❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ |
Depuração de UI | Hot Reload | Recarga a Quente | Atualização Rápida | Hot Reload | - | Hot Reload | Hot Reload | Hot Reload |
de Design Fluente | ✅ | ✅ | ✅ | ✅ (via WinUI 2) | ❌ | ❌ | ✅ | ❌ |
.NET | .NET | .NET | N/A | .NET Core & .NET Native | N/A | .NET & .NET Framework | .NET | .NET & .NET Framework |
SDK de Aplicações Windows | ✅ (mais info) | ✅ via MAUI | ✅ (mais informações) | ❌ | ✅ | ✅ (mais informações) | ✅ | ✅ (mais info) |
Ótimo ao toque | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
multiplataforma | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
aplicativos Xbox/HoloLens | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Sandboxing (AppContainer) | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Atualmente suportado | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Receber atualizações | ✅ | ✅ | ✅ | ✅ (correção de bugs de segurança &) | ✅ | ✅ | ✅ | ✅ |
Plano de Ação | GitHub | do GitHub | do GitHub | n/a | n/a | GitHub | GitHub | do GitHub |
Saiba mais sobre cada uma dessas opções:
- FAQ de desenvolvedores do Windows
- .NET Multi-platform App UI (.NET MAUI)
- ASP.NET Core Blazor híbrido
- React Native para Desktop
- da Plataforma Universal do Windows (UWP)
- Recomendações para escolher entre ATL e MFC
- Windows Forms
- Windows Presentation Foundation (WPF)
- WinUI no do SDK de Aplicativo Windows (WinUI 3)
Próximos passos
-
Use a WinUI para começar a desenvolver aplicativos para o Windows
WinUI é a nossa plataforma recomendada para aplicativos do Windows, e estas etapas irão ajudá-lo a começar rapidamente.
-
Configurar seu ambiente de desenvolvimento no Windows
O Windows não é apenas ótimo para desenvolver aplicativos que são executados no Windows, mas também é um ambiente poderoso para desenvolver aplicativos para qualquer plataforma. Saiba mais sobre as ferramentas e opções disponíveis para maximizar o seu desenvolvimento.
Windows developer