Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo contém as informações necessárias para começar a criar aplicativos para Windows e escolher a estrutura de interface do usuário que se ajuste ao seu conjunto de habilidades e ao cenário.
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
Use o WinUI e o SDK de Aplicativos do Windows para criar aplicativos que parecem ótimos e aproveitem 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.
Observação
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 do Windows fornece um conjunto unificado de APIs e ferramentas que os aplicativos da área de trabalho no Windows 11 e de nível inferior ao Windows 10, versão 1809, podem usar de forma consistente.
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. Se você já desenvolveu aplicativos para o Windows, mas deseja começar a integrar o Windows App SDK em um aplicativo já existente, consulte os guias específicos para a plataforma.
React Native para desktop
O React Native é uma plataforma de desenvolvimento que permite a criação de aplicativos multiplataforma. O React Native para Área de Trabalho inclui o React Native para Windows e macOS, trazendo suporte do 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. Esse suporte inclui computadores, tablets, 2 em 1s, Xbox, dispositivos de Realidade Misturada e muito mais.
Com o React Native para Área de Trabalho, você escreve a maioria ou todo o código do aplicativo em JavaScript ou TypeScript. A estrutura produz um aplicativo XAML UWP nativo. Se seu aplicativo precisar chamar uma API de plataforma, você geralmente poderá fazê-lo por meio de um dos muitos módulos da comunidade. Se um módulo ainda não existir, você poderá escrever facilmente 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 e preferência por JavaScript ou TypeScript.
- Você deseja aproveitar bibliotecas somente JavaScript em npmjs.com e muitas bibliotecas nativas também.
- Seu aplicativo usa os controles nativos, aparência visual, animações e cores, para que ele se sinta 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. A estrutura permite que você chame APIs de plataforma, bem como escreva seus próprios gerentes de exibição e módulos nativos.
- Grande e crescente impulso na comunidade, com muitos módulos da comunidade.
Para obter mais informações sobre o React Native para Desktop, consulte os seguintes links:
- React Native para o repositório de Windows no GitHub
- Repositório React Native para macOS no GitHub
- Referência de API
- Recursos do React Native para desktop
WPF
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 de área restrita aos aplicativos WPF empacotados, fornecendo uma camada extra 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, poderá 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 do desenvolvedor do Windows para obter mais informações.
Se você tem um acesso de WPF .NET aos recursos modernos da plataforma do Windows e às APIs fornecidas pelo SDK do Aplicativo Windows. 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 escolha para seu aplicativo, consulte o módulo de treinamento Escolher 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 Forms ou UWP. Cada uma dessas estruturas tem suporte e continua recebendo correções de bugs, de confiabilidade e de segurança, mas apresenta diferentes níveis de investimento para novos recursos e estilos. Para obter mais informações sobre esses tipos de aplicativo, consulte as guias a seguir.
- Win32
- Windows Forms
- UWP
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. Esse acesso torna o Win32 o tipo de aplicativo escolhido para aplicativos que precisam do mais alto nível de desempenho e acesso direto ao hardware do sistema.
Usando a API Win32 com C++, você pode obter os níveis mais altos de desempenho e eficiência. Você assume 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 Win32 e o C++ oferecem 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 de área restrita aos seus aplicativos Win32, fornecendo uma camada extra 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.
Você também tem acesso aos recursos modernos da plataforma do Windows e às APIs fornecidas pelo SDK do 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 de plataforma cruzada
Se você precisar que seu aplicativo seja multiplataforma, além do React Native for Desktop, considere o .NET MAUI, Blazor Hybrid ou um PWA (Aplicativo Web Progressivo). Muitas outras opções estão disponíveis (aqui está uma lista de opções populares), mas essas opções são bons pontos de partida.
O .NET MAUI aproveita a alta eficiência da WinUI no Windows e também permitem a execução em outros sistemas operacionais. O Blazor Hybrid combina estruturas de cliente nativo móvel e de área de trabalho com .NET e Blazor. 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:
- do .NET MAUI
- Blazor Híbrido
- PWAs (Aplicativos Web Progressivos)
A MAUI (interface do usuário de aplicativo multiplataforma) do .NET é uma estrutura multiplataforma de software livre para a criação de aplicativos Android, iOS, macOS e Windows. Com o .NET MAUI, você pode aproveitar a interface do usuário nativa e os serviços de cada plataforma de uma única base de código do .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. Essa abordagem fornece aos seus aplicativos acesso a tudo o que você obtém com o WinUI, além da capacidade de acessar outras plataformas.
.NET MAUI para Windows é uma ótima opção se você:
- Deseja compartilhar o maior número possível de códigos .NET entre aplicativos móveis e de desktop.
- Deseja disponibilizar seu aplicativo além do Windows para outros alvos móveis e de desktop, proporcionando experiências de plataforma nativas.
- Deseja usar C# e/ou XAML para criar aplicativos multiplataforma.
- Estão usando o Blazor para desenvolvimento na Web e desejam incluir tudo ou parte dele em um aplicativo móvel ou de área de trabalho.
Para obter mais informações sobre o .NET MAUI, consulte os seguintes links:
Comparação de recursos da estrutura de desenvolvimento de aplicativos
Você tem muitas opções para desenvolver 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 (Blazor Híbrido) | React Native para desktop | XAML UWP (Windows.UI.Xaml) | Win32 (MFC ou ATL) | Windows Forms | WinUI 3 | WPF |
|---|---|---|---|---|---|---|---|---|
| Idioma | C# | C# | JavaScript, TypeScript | C#, C++, Visual Basic | C++, Ferrugem | C#, Visual Basic | C/C++ | C#, Visual Basic |
| Idioma da interface do usuário | Código XAML: | Razor | JSX | XAML | Code | Code | XAML | XAML |
|
Designer de interface do usuário (arrastar e soltar) |
Sem suporte | Sem suporte | Sem suporte | Suportado | Sem suporte | Suportado | Sem suporte | Suportado |
| Depuração da interface do usuário | Recarga Rápida | Recarga Rápida | Atualização rápida | Recarga Rápida | - | Recarga Rápida | Recarga Rápida | Recarga Rápida |
| Design Fluente | Suportado | Suportado | Suportado | Com suporte (por meio de WinUI 2) | Sem suporte | Sem suporte | Suportado | Sem suporte |
| .REDE | .NET | .NET | N/D | .NET Core e .NET Native | N/D | .NET e .NET Framework | .NET | .NET e .NET Framework |
| SDK do Aplicativo do Windows | Com suporte (mais informações) | Com suportepor meio de MAUI | Com suporte (mais informações) | Sem suporte | Suportado | Com suporte (mais informações) | Suportado | Com suporte (mais informações) |
| Ótimo para toque | Suportado | Suportado | Suportado | Suportado | Sem suporte | Sem suporte | Suportado | Sem suporte |
| Plataforma cruzada | Suportado | Suportado | Suportado | Sem suporte | Sem suporte | Sem suporte | Sem suporte | Sem suporte |
| Aplicativos Xbox/HoloLens | Sem suporte | Sem suporte | Suportado | Suportado | Sem suporte | Sem suporte | Sem suporte | Sem suporte |
| Área restrita (AppContainer) | Sem suporte | Sem suporte | Suportado | Suportado | Sem suporte | Sem suporte | Sem suporte | Sem suporte |
| Com suporte no momento | Suportado | Suportado | Suportado | Suportado | Suportado | Suportado | Suportado | Suportado |
| Recebendo atualizações | Suportado | Suportado | Suportado | Com suporte (segurança e correção de bugs) | Suportado | Suportado | Suportado | Suportado |
| Roteiro | GitHub | GitHub | GitHub | N/D | N/D | GitHub | GitHub | GitHub |
Saiba mais sobre cada uma destas opções:
- FAQ do desenvolvedor Windows
- .NET Multi-Platform App UI (.NET MAUI)
- ASP.NET Core Blazor Híbrido
- React Native para desktop
- UWP (Plataforma Universal do Windows)
- Recomendações para escolher entre a ATL e o MFC
- Windows Forms
- WPF (Windows Presentation Foundation)
- WinUI no SDK do Aplicativo Windows (WinUI 3)
Próximas etapas
-
Usar WinUI para começar a desenvolver aplicativos para Windows
O WinUI é a plataforma recomendada para aplicativos do Windows. Essas etapas rapidamente o iniciam.
-
Configurar seu ambiente de desenvolvimento no Windows
O Windows não é apenas ótimo para o desenvolvimento de aplicativos que são executados no Windows. Também é um ambiente poderoso para o desenvolvimento de aplicativos para qualquer plataforma. Saiba mais sobre as ferramentas e opções disponíveis para maximizar seu desenvolvimento.
Windows developer