Partilhar via


Escolha a estrutura da sua aplicação

Este artigo contém a informação de que precisa para começar a construir aplicações para Windows e escolher o framework de interface que se adequa ao seu conjunto de competências e cenário.

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

Logotipo WinUI.

Use 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 os aplicativos da área de trabalho no Windows 11 e no nível inferior ao Windows 10, versão 1809, podem usar de forma consistente.

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 desenvolveste aplicações para Windows anteriormente, mas queres começar a usar o Windows App SDK numa aplicação existente, consulta Guias específicos do Framework.

React Native para Desktop

O React Native é uma plataforma de desenvolvimento que permite a criação de aplicativos multiplataforma. O React Native for Desktop inclui 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. Este suporte inclui PCs, tablets, 2 em 1, Xbox, dispositivos de Realidade Mista e muito mais.

Com o React Native for Desktop, você escreve a maior parte ou todo o código do seu aplicativo em JavaScript ou TypeScript. 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. Se um módulo ainda não existe, 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.
  • Você deseja aproveitar bibliotecas exclusivamente JavaScript no npmjs.com, assim como muitas bibliotecas nativas.
  • Seu aplicativo usa os controles nativos, aparência visual, animações e cores, para que pareça 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 da plataforma, bem como escreva seus próprios gerenciadores de visualizaçã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:

WPF

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 extra 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 continua 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. Esse acesso 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.

Usando a API Win32 com C++, você pode alcançar os mais altos níveis 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 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 extra 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 o .NET MAUI,Blazor Hybrid ou um Progressive Web App (PWA). 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 o poder do WinUI no Windows, ao mesmo tempo em que permite a execução em outros sistemas operacionais. Blazor Hybrid combina estruturas de cliente nativo para desktop e dispositivos móveis com .NET e Blazor. 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. Com a MAUI do .NET, você pode aproveitar 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. Essa abordagem dá aos seus aplicativos acesso a tudo o que você obtém com o WinUI, além da capacidade de alcançar outras plataformas.

O .NET MAUI para Windows é uma ótima opção se:

  • Deseja compartilhar o máximo de código .NET possível entre aplicativos móveis e de desktop.
  • Deseja enviar seu aplicativo além do Windows para outros destinos móveis e de desktop com experiências de plataforma nativas.
  • Deseja usar C# e/ou XAML para criar aplicativos entre plataformas.
  • Estão usando Blazor para desenvolvimento web e desejam 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

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 suportados por cada estrutura.

Funcionalidade .NET MAUI Blazor Híbrido 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++, Ferrugem 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)
Não suportado Não suportado Não suportado Suportado Não suportado Suportado Não suportado Suportado
Depuração de UI Atualização Rápida Atualização Rápida Atualização Rápida Atualização Rápida - Atualização Rápida Atualização Rápida Atualização Rápida
de Design Fluente Suportado Suportado Suportado Suportado (via WinUI 2) Não suportado Não suportado Suportado Não suportado
.NET .NET .NET N/A .NET Core & .NET nativo N/A .NET & .NET Framework .NET .NET & .NET Framework
SDK de Aplicações Windows Suportado (mais informações) Suportadovia MAUI Suportado (mais informações) Não suportado Suportado Suportado (mais informações) Suportado Suportado (mais informações)
Ótimo ao toque Suportado Suportado Suportado Suportado Não suportado Não suportado Suportado Não suportado
multiplataforma Suportado Suportado Suportado Não suportado Não suportado Não suportado Não suportado Não suportado
aplicativos Xbox/HoloLens Não suportado Não suportado Suportado Suportado Não suportado Não suportado Não suportado Não suportado
Área restrita (AppContainer) Não suportado Não suportado Suportado Suportado Não suportado Não suportado Não suportado Não suportado
Atualmente suportado Suportado Suportado Suportado Suportado Suportado Suportado Suportado Suportado
Receber atualizações Suportado Suportado Suportado Suportado (segurança e correção de bugs) Suportado Suportado Suportado Suportado
Plano de Ação GitHub GitHub GitHub não aplicável não aplicável GitHub GitHub GitHub

Saiba mais sobre cada uma dessas opções:

Próximos passos