Perguntas Frequentes sobre Desenvolvimento de Aplicação do Windows

Esta FAQ fornece respostas a perguntas comuns sobre o desenvolvimento de aplicações Windows, incluindo orientações sobre como escolher o framework certo para os seus projetos. Os tópicos abordados incluem:

  • Introdução e o panorama do desenvolvimento de aplicações para Windows.
  • Desenvolvimento nativo de aplicações exclusivo para Windows com WinUI 3, Windows Presentation Foundation (WPF) e Windows Forms (WinForms).
  • Kit de Desenvolvimento de Software Windows (SDK) e SDK de Aplicações Windows.
  • Fazer do Windows o alvo como parte da sua estratégia de desenvolvimento multiplataforma.
  • Desenvolvimento híbrido e de aplicações web com .NET MAUI, Blazor e ASP.NET Core.
  • Como escolher uma abordagem enquanto compreende os investimentos da Microsoft.

Panorama do desenvolvimento de aplicações Windows

Onde posso encontrar uma visão geral direta das tecnologias de desenvolvimento Windows?

Para uma excelente análise das opções de hoje para programadores de Windows, veja o episódio mais recente Windows Dev Chat, Escolher a sua plataforma de desenvolvimento ideal, onde discutem WinUI, .NET MAUI, React Native, Blazor e Progressive Aplicações Web (PWAs).

Também pode consultar a visão geral das opções de desenvolvimento de aplicações para programadores para Windows.

Porque é que o desenvolvimento de aplicações cliente continua a ser crucial para a transformação digital moderna na era da cloud services?

Na era dos serviços na cloud, o desenvolvimento de aplicações cliente continua a ser importante para proporcionar interações responsivas e significativas nos dispositivos dos utilizadores.

Eis porque as aplicações clientes são importantes:

  • Alcance do dispositivo: As aplicações clientes permitem-lhe levar a sua aplicação diretamente aos utilizadores nos seus dispositivos preferidos.
  • Gateway para Serviços Inteligentes: As aplicações cliente são frequentemente a primeira interação dos utilizadores com os seus serviços. Eles oferecem uma interface rica e interativa que permite que você exiba recursos inteligentes e diferencie seu produto dos outros.
  • Escalabilidade com Integração na Cloud: Uma aplicação cliente bem integrada pode sincronizar facilmente com os serviços de backend na cloud, permitindo acesso a dados em tempo real e escalabilidade fluida à medida que a sua base de utilizadores cresce.
  • Maior produtividade e fidelidade do usuário: Um aplicativo cuidadosamente projetado pode aumentar a produtividade e manter os usuários envolvidos com seu produto ou serviço ao longo do tempo.

Desenvolvimento nativo de aplicações só para Windows

Qual é a SDK de Aplicações Windows?

O SDK de Aplicações Windows fornece componentes independentes para aplicações de ambiente de trabalho Windows, incluindo WinUI, ciclo de vida da aplicação, janelas, notificações, recursos e APIs de texto. Suporta aplicações que correm no Windows 10, versão 1809 e posteriores, sujeitas ao ciclo de vida de suporte das versões do Windows e do SDK de Aplicações Windows.

Qual é a diferença entre o SDK de Aplicações Windows e o SDK Windows?

Ambos são kits de desenvolvimento de software (SDKs) que permitem criar aplicações para Windows.

O SDK de Aplicações Windows fornece componentes que são fornecidos de forma independente do Windows e funcionam entre versões suportadas do Windows até ao Windows 10, versão 1809. Inclui WinUI e APIs para ciclo de vida da aplicação, janelas, notificações, recursos, texto e outras funcionalidades.

O SDK do Windows fornece cabeçalhos, bibliotecas, metadados e ferramentas para APIs do sistema operativo como Win32, WinRT, COM, DirectX, dispositivos e capacidades de shell.

O SDK de Aplicações Windows não substitui o Windows SDK. As aplicações que adotam o SDK de Aplicações Windows podem continuar a usar APIs do Windows SDK, e as aplicações WinUI usam frequentemente ambas.

Estou a formar uma nova equipa para desenvolver uma aplicação exclusiva de Windows. Porque é que devo escolher desenvolver com uma framework Windows nativa como WinUI, WPF ou WinForms?

Aqui estão algumas razões para escolher uma framework Windows nativa para a sua aplicação exclusiva do Windows:

  • Performance: Os frameworks nativos de Windows são otimizados para tirar partido do hardware Windows moderno, proporcionando experiências de utilizador rápidas e responsivas.
  • Integration: Windows vem com uma grande variedade de APIs que permitem experiências sofisticadas disponíveis apenas em Windows. Frameworks nativos proporcionam uma integração profunda com estas funcionalidades e APIs.
  • Experiência de utilizador nativa: Os frameworks nativos proporcionam uma experiência consistente em dispositivos Windows, garantindo que a sua aplicação tenha um aspeto e funcione perfeitamente em qualquer lugar.
  • Suporte offline: Frameworks nativos suportam cenários offline, permitindo que as aplicações funcionem mesmo sem ligação à internet.
  • Suporte e ferramentas: A Microsoft mantém os frameworks nativos e fornece SDKs atuais, documentação, ferramentas de depuração e exemplos.
Que framework devo usar para aproveitar os mais recentes investimentos da Microsoft no desenvolvimento de aplicações Windows?

Se estiver a criar uma nova aplicação só para Windows, recomendamos usar o WinUI. O WinUI é o mais recente framework nativo de interface para desenvolvimento de aplicações Windows e foi concebido para funcionar numa vasta gama de dispositivos Windows. Fornece uma estrutura de interface moderna e flexível para criar aplicações Windows visualmente apelativas e interativas. O WinUI faz parte do SDK de Aplicações Windows e funciona melhor com as versões mais recentes do Windows.

Posso usar SDK de Aplicações Windows / WinUI na minha aplicação de Windows existente?

Note que WinUI (um framework de UI) vem com o SDK de Aplicações Windows (um framework de desenvolvimento de plataforma Windows).

Pode migrar a interface de uma aplicação para o WinUI, ou usar ilhas XAML do WinUI para alojar os controlos do SDK de Aplicações Windows num alojamento de ambiente de trabalho já suportado. As ilhas XAML do sistema legado alojam controlos UWP XAML e utilizam diferentes APIs.

Elementos do SDK de Aplicações Windows podem frequentemente ser usados em aplicações de ambiente de trabalho, dependendo de como a aplicação existente foi construída. As aplicações UWP não são suportadas pelo SDK de Aplicações Windows.

Isto significa que as aplicações WPF/MFC/WinForms podem usar APIs SDK de Aplicações Windows que não estão relacionadas com o WinUI. Exemplos incluem Ciclo de Vida da Aplicação, Janelas e Notificações Toast.

Consulte Use o SDK de Aplicações Windows num projeto existente para mais informações.

Preciso de usar Visual Studio para construir aplicações WinUI?

Não. As builds XAML do WinUI usam o MSBuild, mas podes compilar com o SDK .NET e os templates atuais do WinUI a partir da linha de comandos noutro editor. Veja a localização do .NET e da linha de comandos.

O Visual Studio 2026 oferece a experiência integrada mais rica de edição, depuração, perfilação e XAML Hot Reload. Use o fluxo de trabalho que corresponda aos seus requisitos de ferramentas.

Recebo o erro "Não é possível carregar DLL 'Microsoft.ui.xaml.dll'" ao correr a minha aplicação. Como é que resolvo?

Este erro ocorre normalmente em cenários de aplicações não embaladas em que o tempo de execução do SDK de Aplicações Windows não foi instalado na máquina. Experimente o seguinte:

  • Se estiveres a usar uma aplicação packaged (o padrão recomendado), certifica-te de que estás a iniciar via Visual Studio com o perfil de lançamento MsixPackage selecionado (não o perfil do executável simples). A etapa de empacotamento MSIX instala os componentes de runtime necessários.
  • Se estiver a executar uma aplicação não empacotada dependente de estrutura, instale o runtime correspondente do SDK de Aplicações Windows. Uma implementação autónoma inclui as suas dependências do SDK de Aplicações Windows.
  • Confirma se o teu projeto corresponde ao teu modelo de implementação. Para uma aplicação .NET normal e não empacotada, a definição <WindowsPackageType>None</WindowsPackageType> ativa a inicialização automática do SDK de Aplicações Windows em tempo de execução. Usa a API do bootstrapper diretamente apenas quando precisares de controlo explícito sobre a inicialização dinâmica de dependências.

Consulte Deploy apps que utilizam o SDK de Aplicações Windows para mais detalhes sobre os requisitos de implementação.

Qual é a diferença entre o WinUI 3 e o WinUI 2 para UWP?

WinUI (anteriormente referido como WinUI 3) é o mais recente framework nativo de UI para desenvolvimento de aplicações Windows. Fornece uma estrutura de interface moderna e flexível para criar aplicações Windows visualmente apelativas e interativas. O WinUI faz parte do SDK de Aplicações Windows e funciona melhor com as versões mais recentes do Windows.

WinUI para UWP (anteriormente referido como WinUI 2) é um conjunto de controlos e estilos de interface construídos sobre o UWP. Proporciona um aspeto moderno para aplicações UWP e foi concebido para Windows 10.

Quando construo uma aplicação usando SDK de Aplicações Windows e WinUI, estou a construir uma "app WinUI"?

Sim — "WinUI app" é o termo recomendado. As aplicações WinUI são chamadas de "aplicações WinUI" porque o WinUI para UWP não é um tipo de aplicação, mas sim um conjunto de componentes usados em aplicações UWP.

Posso atualizar incrementalmente a minha aplicação UWP com o WinUI para controlos UWP para o WinUI, substituindo gradualmente o WinUI para componentes UWP por componentes WinUI?

Não. O SDK de Aplicações Windows não pode ser usado em aplicações UWP, e o WinUI para UWP não pode ser combinado com o WinUI. Ver Migrar do UWP para o SDK de Aplicações Windows.

Quão difícil é migrar uma aplicação UWP para o WinUI?

A migração de componentes da interface do usuário geralmente é simples (para C# e C++/WinRT). Caso contrário, o custo da migração depende principalmente de:

  1. Customização do ficheiro de projeto e do MSBuild: O esforço de migração varia consoante o uso avançado do MSBuild.
  2. Migração da API .NET: Aplicações UWP que usam .NET Native podem migrar para uma versão .NET atualmente suportada com Native AOT. Esta modernização é separada da migração da interface para o WinUI.
  3. Bibliotecas de componentes UI: As bibliotecas devem ter versões direcionadas para o WinUI.
  4. Se a aplicação UWP for escrita no agora obsoleto C++/CX, é necessário portar o código-fonte. Consulte Transição para C++/WinRT a partir de C++/CX.

Para mais informações, consulte Migrar do UWP para o SDK de Aplicações Windows.

Se eu tiver uma aplicação UWP existente na Loja, posso publicar uma nova aplicação WinUI empacotada usando os mesmos identificadores?

Sim, as aplicações atualizadas podem ser publicadas sem atualizar a identidade da aplicação. Os utilizadores da versão antiga serão atualizados para a nova versão. Isto aplica-se apenas a aplicações de ambiente de trabalho. As aplicações Xbox, HoloLens e Surface Hub não conseguem migrar para o WinUI.

Como empacotar/distribuir a minha aplicação WinUI?

Consulte Visão geral da implantação.

Onde posso encontrar SDK de Aplicações Windows orientação sobre migração?

Ver Migrar do UWP para o SDK de Aplicações Windows.

Preciso de usar marcação XAML se quiser usar o WinUI?

Não. Os controles de interface do usuário podem ser criados em código. No entanto, representar a interface em marcação XAML declarativa oferece muitos benefícios, incluindo uma experiência de programador melhorada.

  • Migração do UWP para o WinUI: Muitos componentes XAML e UI podem ser reutilizados, embora sejam necessários alguns ajustes na sintaxe.
  • Migração do WPF para o WinUI: Muitos conceitos mantêm-se, mas o conjunto de controlos e as APIs diferem.
Tem Visual Studio um designer de superfície de design / UI para o WinUI?

Atualmente, não. Use XAML Hot Reload, Live Visual Tree, Live Property Explorer e ferramentas de runtime relacionadas para inspecionar e atualizar XAML enquanto a aplicação está a correr.

Para uma explicação completa das ferramentas de design em tempo de execução disponíveis para o WinUI 3, consulte ferramentas de design em tempo de execução XAML para o WinUI 3.

O SDK de Aplicações Windows inclui o WinUI?

Yes. O WinUI é fornecido como parte do SDK de Aplicações Windows.

Inclui SDK de Aplicações Windows WinUI para UWP?

Não. O WinUI para UWP faz parte da plataforma UWP.

O WinUI para UWP e o WinUI são construídos com base na mesma tecnologia?

Não exatamente. Embora o WinUI tenha começado originalmente com a base de código WinUI para UWP, são tecnologias distintas. Ambos são frameworks de interface baseados em XAML que funcionam em .NET e C++, mas o WinUI para UWP e o WinUI não são compatíveis entre si.

Posso usar o WinUI sem usar SDK de Aplicações Windows?

Não. O WinUI é fornecido como parte do SDK de Aplicações Windows.

Posso usar o WinUI numa aplicação não empacotada?

Yes. O WinUI e muitas APIs do SDK de Aplicações Windows funcionam em aplicações não empacotadas. No entanto, algumas funcionalidades do Windows exigem identidade de pacote, e as aplicações não embaladas dependentes do framework têm de inicializar o runtime do SDK de Aplicações Windows. Compare as opções na visão geral da embalagem e as funcionalidades que exigem identidade da embalagem.

Qual é a diferença entre ilhas XAML e WinUI?

O WinUI é o framework de interface incluído no SDK de Aplicações Windows. XAML Islands é uma técnica de alojamento que permite a uma aplicação de ambiente de trabalho existente alojar conteúdo XAML lado a lado com a interface de utilizador de outro framework.

O termo pode referir-se às antigas System XAML Islands, que alojam controlos UWP XAML, ou às WinUI XAML Islands, que alojam controlos do SDK de Aplicações Windows em anfitriões de ambiente de trabalho suportados. As APIs, os espaços de nomes e os requisitos do anfitrião são diferentes.

Se criar uma aplicação WinUI, vai parecer moderna tanto no Windows 11 como no Windows 10?

Yes. A interface da sua aplicação herdará os princípios mais recentes de design Fluent UI em todas as versões suportadas do Windows 11 e Windows 10, até à versão 1809, tanto em cenários empacotados como não empacotados.

Posso usar fundos de Mica ou Acrílico em aplicações construídas com SDK de Aplicações Windows?

Yes. Consulte Aplicar materiais de Mica ou Acrílico em aplicações de desktop para Windows 11.

Onde posso encontrar exemplos do WinUI?

Consulte Exemplo e recursos. Alguns repositórios notáveis:

Se já investi muito em WPF, devo continuar a usar WPF ou considerar migrar para o WinUI?

Se já investiu bastante no WPF, pode continuar a usá-lo para aplicações existentes. O WPF é uma framework madura e estável, amplamente utilizada para construir aplicações de ambiente de trabalho para Windows.

Utilize o GitHub Copilot upgrade para avaliar e atualizar uma aplicação WPF em .NET Framework para o .NET moderno. Revise o plano gerado e valide cada alteração na sua aplicação.

Se eu criar uma nova aplicação de WPF, vai parecer desatualizada comparada com outras novas aplicações de Windows?

Ao desenvolver uma aplicação WPF com .NET 9 ou posterior, pode garantir que a sua aplicação corresponde ao aspeto moderno e elegante do Windows 11. O novo tema Fluent para WPF introduz uma estética contemporânea do Windows 11, com modo Claro/Escuro integrado e suporte a cores de destaque do sistema. Isto moderniza a aparência da sua aplicação e proporciona uma experiência de utilizador polida e coesa.

A minha equipa sente-se confortável a construir aplicações WinForms e isso adequa-se às nossas necessidades. Devemos considerar migrar para o WinUI ou outro framework?

Se o WinForms responder às suas necessidades e a sua equipa se sentir confortável com ele, pode continuar a usar o WinForms para aplicações existentes. O WinForms é uma framework madura e estável, amplamente utilizada para o desenvolvimento de ambiente de trabalho Windows.

A equipa WinForms continua a investir na plataforma. Algumas áreas de investimento atuais incluem:

  • Suporte assíncrono para controlos comuns
  • Modo escuro
  • Flexibilidade de layout
  • Funcionalidades de segurança no ambiente de trabalho, como acesso a prancheta

Desenvolvimento nativo multiplataforma

Quais são algumas razões para construir aplicações nativas multiplataforma direcionadas a Windows?

Se estiver a direcionar utilizadores em várias plataformas de SO, construir aplicações de plataforma cruzada com .NET MAUI ou React Native pode apresentar diversos benefícios.

  • Alcance: As aplicações multiplataforma alcançam um público maior através de diferentes dispositivos e sistemas operativos.
  • Reutilização de código: Reutilizar código entre plataformas reduz o tempo e o custo de desenvolvimento. Construir aplicações separadas para Windows, Android, iOS e macOS pode ser proibitivamente caro.
  • Experiência de utilizador consistente: Os frameworks multiplataforma ajudam a proporcionar uma aparência e sensação consistentes entre plataformas.
  • Integração: As aplicações multiplataforma ainda podem integrar-se com serviços específicos da plataforma para proporcionar uma experiência abrangente.
Posso confiar que .NET MAUI aplicações vão correr bem no Windows?

Quando constróis uma aplicação .NET MAUI para Windows, o resultado é uma aplicação WinUI. Durante o desenvolvimento, o .NET MAUI oferece uma experiência .NET consistente em várias plataformas, mas gera código específico para cada plataforma nos bastidores. Isto garante que as aplicações .NET MAUI têm um bom desempenho em cada plataforma e proporcionam uma experiência nativa ao utilizador.

Como pode .NET MAUI fornecer APIs nativas de dispositivos em todas as plataformas?

O .NET MAUI oferece uma experiência unificada de .NET em Windows, iOS, Android e macOS. Oferece APIs multiplataforma para capacidades comuns, como armazenamento, redes e sensores de dispositivos. Também pode chamar APIs específicas da plataforma ou fornecer implementações especializadas para cada plataforma.

Posso começar com o WinUI e depois integrar .NET MAUI se eventualmente quiser focar em cenários multiplataforma?

Neste momento, não. Embora o .NET MAUI utilize o WinUI quando corre no Windows, as equipas que esperam atingir várias plataformas devem começar com .NET MAUI ou React Native para ambiente de trabalho.

A nossa equipa possui fortes competências de desenvolvimento front-end web. Devemos considerar usar o React Native para ambiente de trabalho?

Equipas com forte experiência em desenvolvimento web podem querer considerar o React Native para Desktop. Inclui React Native para Windows e macOS. Com a abordagem "Aprenda uma vez, escreva em qualquer lugar", as competências existentes em JavaScript, TypeScript e React podem ser usadas para criar aplicações nativas para Windows e macOS.

O React Native for Desktop renderiza a interface diretamente para primitivas nativas, oferecendo desempenho nativo e capacidades de plataforma.

Veja a documentação do React Native para Desktop para começar.

Existem outros dispositivos Windows suportados pelo React Native for Desktop?

As aplicações React Native podem ser implementadas em todos os dispositivos suportados pelo Windows 10 e versões posteriores, incluindo PCs, tablets, 2-em-1, Xbox e dispositivos de realidade mista.

O que devo usar se quiser construir aplicações que funcionem em Windows e Xbox?

Se a sua aplicação precisa de suportar Xbox, HoloLens ou IoT, recomenda-se o UWP. O SDK de Aplicações Windows não suporta estas plataformas. Para desenvolvimento de jogos, usa o Kit de desenvolvimento de jogos da Microsoft.

O que devo usar se quiser construir aplicações que funcionem no Windows e no Surface Hub?

Se estiver a direcionar seja para Windows ou para Surface Hub, é recomendado o UWP.

Desenvolvimento híbrido e web

O que são aplicações híbridas e por que razão devo considerar criar uma?

Os aplicativos híbridos combinam o melhor do desenvolvimento de aplicativos nativos e da Web. O seu núcleo é construído usando tecnologias web como HTML, CSS e JavaScript, e está envolto num contentor nativo que dá acesso a certas funcionalidades e hardware nativos da plataforma. Eles também podem ser distribuídos através de lojas de aplicativos.

A principal vantagem é que as aplicações híbridas permitem construir uma única aplicação que pode correr em múltiplas plataformas nativas e na web, reduzindo o tempo e custos de desenvolvimento. Exemplos de plataformas híbridas de desenvolvimento de aplicações incluem:

  • Electron para aplicações de ambiente de trabalho
  • Ionic para aplicações móveis
  • .NET MAUI Blazor Hybrid para aplicações multiplataforma
Como é que construo aplicações web progressivas (PWAs) com sensação nativa em Windows?

Ver Desenvolvimento Web em Windows e Visão Geral do Progressive Aplicações Web.

O que é uma aplicação híbrida .NET MAUI Blazor?

Com .NET MAUI, as aplicações Blazor podem correr nativamente no Windows, iOS, Android e macOS. Isto permite-lhe criar aplicações cliente híbridas que combinam componentes Blazor e .NET MAUI numa única aplicação cliente nativa, com acesso total às capacidades nativas da plataforma.

Saiba mais em ASP.NET Core Blazor Hybrid.

Os componentes web de uma aplicação híbrida .NET MAUI precisam de ser criados com Blazor?

Não. A partir do .NET 9, o .NET MAUI inclui um controlo HybridWebView que permite alojar outras interfaces baseadas em JavaScript dentro de uma aplicação nativa.

Isto permite-lhe alojar aplicações Angular, React, Vue ou outras aplicações HTML/JavaScript dentro de uma aplicação .NET MAUI. O controlo híbrido proporciona interoperabilidade entre C# e JavaScript, pelo que o código C# pode chamar funções JavaScript e vice-versa.

Algum outro tipo de aplicação nativa consegue alojar componentes híbridos do Blazor?

Yes. As aplicações WPF e WinForms também podem alojar componentes híbridos Blazor, permitindo a adição de interfaces web modernas às aplicações existentes. Isto não é suportado para aplicações WPF ou WinForms construídas no .NET Framework.

A minha aplicação inteira precisa de ser híbrida, ou posso misturar componentes nativos e híbridos?

Componentes nativos e híbridos podem ser misturados dentro de uma aplicação. Por exemplo, o núcleo de uma aplicação pode ser construído com componentes .NET MAUI, enquanto componentes híbridos fornecem funcionalidades adicionais. Isto permite combinar o desempenho e as capacidades dos componentes nativos com a flexibilidade e eficiência de custos dos componentes híbridos.

Quais são as minhas opções para construir aplicações web baseadas em .NET que fiquem ótimas nos navegadores modernos no Windows?

As Web apps oferecem o alcance mais amplo de qualquer plataforma de aplicações cliente. Opções para criar belas aplicações web .NET incluem:

  • Aplicações ASP.NET Core com Razor Pages
  • Aplicações ASP.NET Core MVC
  • Aplicações ASP.NET Core Blazor, com opções de modelo de alojamento:
    • Blazor WebAssembly (estrutura para desenvolvimento de aplicações web)
    • Blazor Server

Os modelos de alojamento Blazor podem agora ser configurados ao nível do componente, permitindo cenários como alojar um componente Blazor WebAssembly numa aplicação Blazor Server.

Consulte a documentação ASP.NET Core para mais detalhes.

Escolha uma abordagem e compreenda os investimentos da Microsoft

Existem tantas opções de framework para construir aplicações direcionadas a Windows! Como decido?

O Windows é uma plataforma aberta que suporta muitas tecnologias. Aqui estão alguns critérios que podem ajudar a escolher uma plataforma:

  • Está a priorizar o Windows ou a desenvolver para várias plataformas?
  • Que linguagens ou competências já tens — .NET, JavaScript, outra coisa?
  • Precisas de acesso a APIs específicas do Windows?
  • Qual das capacidades do framework correspondem melhor aos requisitos da sua aplicação?
  • Consulte esta tabela para fatores de comparação adicionais.

Para muitas aplicações empresariais, as equipas escolhem frequentemente com base nas competências existentes e no que a equipa se sente mais confortável a usar.

Como escolher a melhor abordagem de desenvolvimento para a minha aplicação web?

Considere o seguinte ao escolher uma abordagem de desenvolvimento para a sua aplicação web:

  • O Blazor é recomendado para construir aplicações web front-end com .NET. Permite construir tanto o front-end como o back-end usando .NET, poupando tempo e custos, e é especialmente bom para aplicações empresariais.
  • As web apps em JavaScript continuam a fazer sentido se quiseres tirar partido das competências existentes em JavaScript ou se precisares de integrar com bibliotecas ou frameworks JS já estabelecidos.
  • As aplicações existentes que utilizam frameworks mais antigos como Web Forms, MVC ou Razor Pages continuam a ser suportadas e podem continuar a ser desenvolvidas e mantidas.
Quem está a construir aplicações com o WinUI atualmente?

Muitos clientes estão criando com a WinUI hoje, incluindo Adobe e Apple:

A Microsoft também desenvolveu muitas aplicações WinUI, como o Explorador de Ficheiros do Windows 11 e a aplicação Fotos.

Quem está a criar .NET MAUI apps hoje?

Muitos clientes, incluindo a Microsoft, estão a criar aplicações multiplataforma com .NET MAUI. Por exemplo, a aplicação móvel Microsoft Azure é construída usando .NET MAUI.

Veja mais na vitrine de clientes do .NET.

Quem está a criar WPF apps hoje?

A maior parte da interface Microsoft Visual Studio é construída com WPF. O próprio IDE Visual Studio é um exemplo importante de uma aplicação de WPF complexa e de alto desempenho.

Quem está a desenvolver aplicações Blazor atualmente?

O sistema de companhias aéreas FlightPulse da GE Digital utiliza o Blazor para a configuração backend de tudo o que os pilotos veem, levando dados e análises de sensores diretamente aos pilotos para melhorar a segurança e eficiência.

Veja mais histórias de clientes Blazor no site .NET.

Escolha de linguagem (.NET vs C++)

Devo usar C# ou C++ para a minha aplicação Windows?

Usa C# (.NET) na maioria dos casos. O C# oferece desenvolvimento mais rápido, segurança de memória, bibliotecas ricas e ferramentas excelentes. A maioria das aplicações Windows — incluindo WinUI 3, WPF, WinForms e aplicações .NET MAUI — é melhor construída com C#.

Use C++ quando precisar de acesso direto ao hardware, sobrecarga mínima em tempo de execução ou interoperar com bases de código C++ existentes. Cenários comuns em C++ incluem motores de jogo (DirectX), drivers, utilitários ao nível do sistema e componentes críticos de desempenho.

Fator C# (.NET) C++
Velocidade de desenvolvimento ✅ Mais rápido — memória gerida, ecossistema rico ⚠️ Mais lento — gestão manual de recursos
Desempenho em tempo de execução ✅Excelente para .NET moderno (AOT, Span<T>) ✅ O melhor possível — sem pausas no GC
Segurança de memória ✅ Recolha de lixo ⚠️ Manual — risco de fugas e vulnerabilidades
Acesso à API do Windows ✅ Via projeção C#/WinRT ✅ Via projeção C++/WinRT
Suporte ao WinUI 3 ✅ Suporte completo ✅ Suporte total via C++/WinRT
Multiplataforma ✅.NET corre em Windows, Linux, macOS ✅ Com código específico de cada plataforma
Melhor para Aplicações empresariais, CRUD, serviços, aplicações com muita interface de utilizador Jogos, controladores, ferramentas do sistema, baixa latência

Também pode misturar ambos: construir a sua aplicação em C# e chamar código nativo crítico de desempenho via P/Invoke (CsWin32) ou um componente C++/WinRT.

Como chamar APIs Win32 a partir de C#?

Utilize CsWin32, um gerador de código que cria assinaturas P/Invoke com segurança de tipos durante a compilação. Adiciona-se o Microsoft.Windows.CsWin32 pacote NuGet, lista as APIs de que precisa num NativeMethods.txt ficheiro e chama-as através de uma classe gerada PInvoke .

O CsWin32 substitui declarações manuscritas [DllImport] e funciona em qualquer projeto C# — WinUI, WPF, WinForms ou consola. Consulte Chamar APIs Win32 a partir de uma aplicação Windows em C# (CsWin32) para um guia passo a passo.

O que é C++/WinRT e quando devo usá-lo?

C++/WinRT é uma projeção padrão da linguagem C++17 para APIs do Windows Runtime. Use-o ao construir aplicações Windows em C++ que consomam ou criam APIs WinRT. Substitui o C++/CX e a Windows Runtime C++ Template Library (WRL).

Escolha C++/WinRT quando:

  • Estás a construir uma aplicação WinUI 3 em C++
  • Tem de criar componentes do Windows Runtime utilizados por outras linguagens
  • Está a migrar de C++/CX
O que é C#/WinRT e quando é que preciso dele?

C#/WinRT fornece suporte de projeção WinRT para C#. Na maioria dos casos, não interage diretamente com ele — as aplicações .NET direcionadas ao Windows têm acesso automático às APIs do WinRT através dos nomes de framework de destino (TFMs). É necessário C#/WinRT explicitamente ao criar componentes Windows Runtime em C# ou ao gerar assemblies de interoperabilidade para componentes WinRT de terceiros.

Empacotamento, implantação e atualizações

Qual é a diferença entre aplicações que vêm embaladas, não empacotadas e empacotadas com localização externa?

Uma aplicação empacotada contém os seus ficheiros, identidade e informações de implementação num pacote como o MSIX. Uma aplicação não empacotada usa um instalador ou processo de implementação fora do sistema de pacotes do Windows e não tem identidade de pacote por defeito. Uma aplicação com localização externa utiliza um pequeno pacote de identidade, mantendo binários localizados externamente e o seu processo de instalação e atualização existente.

Consulte a visão geral da embalagem para requisitos e compensações.

Preciso de uma identidade de pacote da aplicação?

Depende das funcionalidades do Windows que a sua aplicação utiliza. Alguns cenários de execução em segundo plano, notificações push, extensão de shell, associação e IA do Windows requerem identidade de pacote. Outras funcionalidades do SDK de Aplicações Windows, incluindo o WinUI e notificações de aplicações locais, podem funcionar sem ele.

Consulte Funcionalidades que exigem identidade do pacote. Se precisar de uma identidade de aplicação, mas tiver de manter um instalador existente, considere o empacotamento com localização externa.

Qual é a diferença entre uma implementação dependente do framework e uma implementação autónoma?

Uma aplicação dependente do framework utiliza pacotes de runtime do SDK de Aplicações Windows instalados separadamente no dispositivo. Isto reduz o tamanho de implementação da aplicação. Uma aplicação autónoma transporta o conteúdo do pacote SDK de Aplicações Windows Framework com a aplicação, o que aumenta o tamanho da implementação, mas permite que a aplicação sirva esses componentes do framework.

APIs que dependem de pacotes MSIX adicionais, como o pacote Singleton, podem exigir verificações separadas de implementação ou suporte em tempo de execução, mesmo numa aplicação autónoma. O empacotamento e a implementação em tempo de execução são decisões separadas. Consulte visão geral da implantação do SDK de Aplicativo Windows.

A minha aplicação WinUI vai atualizar-se automaticamente para os utilizadores finais?

Uma aplicação WinUI pode ser entregue através da Loja, de um ficheiro .appinstaller, ou através de um pacote MSI ou setup.exe existente. A Store e o AppInstaller suportam atualizações automáticas para utilizadores finais que tenham as atualizações automáticas ativadas, mas as aplicações MSI/setup.exe devem fornecer o seu próprio mecanismo de atualização.

Posso usar SDK de Aplicações Windows sem usar MSBuild?

Os projetos XAML do WinUI requerem MSBuild, mas o Visual Studio não é obrigatório. Pode usar o SDK do .NET e os modelos do WinUI para executar o MSBuild através de dotnet build na linha de comandos. Componentes do SDK de Aplicações Windows que não utilizam WinUI também podem ser integrados em projetos de ambiente de trabalho baseados em MSBuild suportados.

Windows AI

Como posso escolher entre APIs de IA do Windows, Foundry Local e Windows ML?

Use APIs de IA do Windows para capacidades de IA prontas a usar e geridas pelo Windows. Use o Foundry Local para descobrir, descarregar e executar modelos de linguagem e fala suportados localmente. Use Windows ML para executar modelos ONNX personalizados com fornecedores de execução para hardware disponível de CPU, GPU e NPU.

Hardware, versão do Windows, identidade do pacote, modelo e requisitos de distribuição variam. Verifique os requisitos atuais para a API ou runtime que escolher, em vez de assumir que todas as capacidades de IA do Windows estão disponíveis em todos os PCs.

O que devo considerar antes de lançar uma funcionalidade assistida por IA?

Defina o uso pretendido e as limitações da funcionalidade, avalie a qualidade e segurança com dados representativos, divulgue o comportamento da IA quando apropriado, proteja os dados dos utilizadores e forneça uma alternativa quando o modelo ou o hardware necessário não estiver disponível. Veja Desenvolvimento responsável de IA generativa no Windows.

Desempenho e otimização

O que posso fazer para que a minha aplicação de Windows pareça ótima para os utilizadores finais?

Consulte Desenvolvimento de aplicações para Windows - Melhores práticas e performance e fundamentos das aplicações Windows – visão geral.

Compatibility

Os meus utilizadores alguma vez terão de atualizar Windows para usar a minha aplicação WinUI?

As aplicações do SDK de Aplicações Windows podem funcionar em edições suportadas do Windows 10, versão 1809 e posteriores, mas APIs individuais e funcionalidades das aplicações podem exigir versões mais recentes do Windows ou hardware. Para suporte à produção, o dispositivo deve executar uma edição e versão Windows que ainda esteja em suporte, e a aplicação deve usar uma versão suportada do SDK de Aplicações Windows com as atualizações de manutenção atuais. Consulte o suporte ao SDK de Aplicações Windows e os canais de lançamento.

Posso direcionar o Arm64 com a minha aplicação WinUI?

Yes. Constrói uma aplicação Arm64 nativa para obter o melhor desempenho e eficiência. Para uma grande base de código C++ com dependências x64, o Arm64EC permite migrar módulos de forma incremental. O Windows 11 no Arm também pode correr muitas aplicações x86 e x64 existentes através da emulação Prism, mas deve testar o desempenho e a compatibilidade em dispositivos Arm representativos.

Depreciações e migrações

Os UWP / WinUI para UWP estão obsoletos?

Não. UWP e WinUI para UWP continuam suportados e recebem correções de bugs, fiabilidade e segurança. No entanto, o WinUI e o SDK de Aplicações Windows são os caminhos recomendados para novas aplicações de desktop Windows de uso geral e recebem a maioria dos investimentos em novas plataformas.

O suporte UWP para .NET moderno com AOT nativo está geralmente disponível e é o tipo padrão de projeto UWP em C# no Visual Studio 2026. Mover uma aplicação UWP existente do .NET Nativo para o .NET moderno é um passo de modernização separado da migração da interface para o WinUI. Veja Modernizar a sua aplicação UWP com .NET e AOT nativo.

Quando devo migrar uma aplicação UWP / WinUI para o WinUI?

Os programadores de UWP não devem sentir-se pressionados a migrar se estiverem satisfeitos com o UWP e o seu conjunto de funcionalidades — para muitas aplicações, a escolha certa pode ser permanecer no UWP.

As aplicações que queiram beneficiar da mais recente plataforma Windows e dos investimentos em .NET devem considerar migrar para o SDK de Aplicações Windows. Ver Migrar do UWP para o SDK de Aplicações Windows.

Quando é que *não* devo migrar uma aplicação UWP + WinUI para WinUI?

Continua a usar UWP se estiveres a construir para Xbox, Surface Hub ou HoloLens.

Está WPF descontinuado?

Não. O WPF é suportado, recomendado e continua a receber atualizações de funcionalidades. Consulte o roteiro WPF em GitHub.

O WinForms está obsoleto?

Não. O WinForms é suportado e continua a receber atualizações de funcionalidades. Consulte o Roadmap Windows Forms em GitHub.

O Windows Runtime (WinRT) está obsoleto?

Não. WinRT é uma interface binária de aplicação (ABI) que permite a interoperabilidade entre várias línguas. O WinRT é a evolução do COM, e o SDK de Aplicações Windows fornece a maior parte da sua funcionalidade através das APIs WinRT.

Notas de lançamento

Onde posso encontrar notas de lançamento para SDK de Aplicações Windows?

As notas de lançamento mais recentes podem ser encontradas na página What's New .