Uma visão geral das opções de desenvolvimento no Windows
Artigo
Este artigo contém todas as informações necessárias para começar a criar aplicativos para o ambiente de área de trabalho do Windows.
O Windows oferece uma ampla variedade de opções para a criação de aplicativos, incluindo C++, .NET e outras tecnologias emergentes, como ferramentas de código aberto no WSL e rust. Com tantas opções, pode ser difícil saber por onde começar.
A WinUI 3 (Biblioteca de Interface do Usuário do Windows) é a estrutura da IU (interface do usuário) mais atual para aplicativos da área de trabalho do Windows, incluindo aplicativos gerenciados que usam o C# e o .NET e aplicativos nativos que usam o C++ com a API do Win32. Ela ainda está em desenvolvimento muito ativo. Portanto, embora possa não ser capaz de atender a todas as suas necessidades hoje, ela está amadurecendo a cada versão.
Incorporando o Sistema Fluent Design em todas as experiências, controles e estilos, o WinUI fornece experiências uniformes, intuitivas e acessíveis usando os padrões de interface do usuário mais recentes. A WinUI 3 está disponível como parte do SDK do Aplicativo Windows . O SDK de Aplicativo do Windows conta com um conjunto unificado de APIs e ferramentas que podem ser usadas de modo consistente por qualquer aplicativo Win32 C++ ou .NET C# em diversas versões do sistema operacional Windows de destino.
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 esse aplicativo 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, especialmente Direct3D e DirectCompute (observe que a UWP também oferece interoperabilidade com DirectX).
Use C++/WinRT para criar aplicativos Win32 da área de trabalho modernos com acesso de primeira classe a APIs do WinRT (Windows Runtime).
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 Modernize seus aplicativos da área de trabalho.
O WPF é a plataforma estabelecida para aplicativos gerenciados do Windows com acesso ao .NET ou ao .NET Framework. Ele também usa a marcação XAML para separar a interface do usuário do código. Essa plataforma é adequada para aplicativos da área de trabalho que exigem uma interface do usuário sofisticada, personalização de estilos e cenários com uso intensivo de gráficos. As habilidades de desenvolvimento do WPF são semelhantes às habilidades de desenvolvimento da WinUI 3, portanto, a migração do WPF para WinUI 3 é mais fácil do que a migração de Windows Forms.
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 Modernize seus aplicativos da área de trabalho.
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 3 envolve uma reescrita completa da interface do usuário.
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 Modernize seus aplicativos da área de trabalho.
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.
A UWP é uma plataforma altamente personalizável que usa marcação XAML para separar a interface do usuário (apresentação) do código (lógica de negócios). A UWP é adequada para aplicativos da área de trabalho que exigem uma interface do usuário sofisticada, personalização de estilos e cenários com uso intensivo de gráficos. A UWP também tem suporte interno para o Fluent Design System para a experiência padrão do UX e fornece acesso às APIs do Windows Runtime (WinRT).
Você não terá acesso às APIs fornecidas pelo SDK do Aplicativo Windows. Para usar o SDK do Aplicativo Windows, você terá que migrar seu aplicativo UWP para WinUI 3. Para obter mais informações, consulte Migrar para SDK do Aplicativo Windows.
Opções multiplataforma
A WinUI também funciona como base para tecnologias multiplataforma que oferecem ótimas experiências nativas do Windows usando uma variedade de linguagens de codificação. O .NET MAUI e o React Native para Windows utilizam o poder do WinUI no Windows, além de permitirem 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.
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 3 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 3, 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.
O React Native é uma plataforma de desenvolvimento que permite a criação de aplicativos de plataforma cruzada.
O React Native para Windows dá suporte ao React Native para os SDKs do Windows 10 e 11, permitindo que você use o JavaScript para criar aplicativos nativos do Windows para todos os dispositivos compatíveis com Windows 10 e o Windows 11. Isso inclui PCs, tablets, dispositivos 2 em 1, Xbox, dispositivos de realidade misturada etc.
Com o React Native para Windows, você escreve a maior parte ou todo o código do aplicativo em JavaScript ou TypeScript, e a estrutura produz um aplicativo nativo UWP XAML. 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.
Veja alguns motivos para escolher o React Native para Windows:
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, o React Native para aplicativos do Windows não precisa comprometer o conjunto de APIs que eles podem chamar, pois a estrutura permite que você chame APIs de plataforma e escreva os próprios gerenciadores de exibição e módulos nativos.
A origem deste conteúdo pode ser encontrada no GitHub, onde também pode criar e rever problemas e pedidos Pull. Para mais informações, consulte o nosso guia do contribuidor.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja: https://aka.ms/ContentUserFeedback.