Visão geral das opções de estrutura
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 a criação de aplicativos, incluindo WinUI, WPF, C++, C#, .NET e uma variedade de estruturas entre plataformas. 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.
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 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.
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 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.
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 é 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.
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.
Opções multiplataforma
Para que o aplicativo seja do tipo de plataforma cruzada, considere o .NET MAUI, um PWA (Aplicativo Web Progressivo) ou o React Native para Windows. Há 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 a alta eficiência da WinUI no Windows e também permitem a execução em outros sistemas operacionais. O React Native para Windows permite escrever aplicativos que são executados em todos os dispositivos compatíveis com o Windows 10 e o Windows 11 (não apenas em computadores). 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.
Para obter mais informações sobre o .NET MAUI, consulte os seguintes links:
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 (RNW) | 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) |
❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ |
Depuração da interface do usuário | Hot Reload | Hot Reload | Atualização rápida | Hot Reload | - | Hot Reload | Hot Reload | Hot Reload |
Design Fluente | ✅ | ✅ | ✅ | ✅ (via WinUI 2) | ❌ | ❌ | ✅ | ❌ |
.NET | .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 | ✅ (mais informações) | ✅via MAUI | ✅ (mais informações) | ❌ | ✅ | ✅ (mais informações) | ✅ | ✅ (mais informações) |
Ótimo para toque | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
Plataforma cruzada | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Aplicativos Xbox/HoloLens | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Área restrita (AppContainer) | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Com suporte no momento | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Recebendo atualizações | ✅ | ✅ | ✅ | ✅ (bugfix de segurança ) | ✅ | ✅ | ✅ | ✅ |
Roteiro | GitHub | GitHub | GitHub | N/D | N/D | GitHub | GitHub | GitHub |
Saiba mais sobre cada uma destas opções:
- .NET Multi-Platform App UI (.NET MAUI)
- ASP.NET Core Blazor Hybrid
- React Native para Windows (RNW)
- 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
WinUI é nossa plataforma recomendada para aplicativos do Windows, e essas etapas ajudarão você a começar a usar rapidamente.
- Configurar seu ambiente de desenvolvimento no Windows
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.
Windows developer