Visão geral da plataforma do SDK de Aplicações Windows

O SDK de Aplicações Windows suporta duas linguagens para desenvolvimento de aplicações: C# e C++. Cada linguagem utiliza uma projeção de linguagem para chamar APIs do Windows Runtime (WinRT), e ambas usam XAML (especificamente o WinUI 3 XAML, no Microsoft.UI.Xaml espaço de nomes) para definir a interface de utilizador. Juntas, estas projeções e a estrutura da interface formam a camada da plataforma.

Note

C# e C++ são as únicas linguagens com projeções suportadas para SDK de Aplicações Windows e WinUI 3. Existem projetos comunitários para outras linguagens (como Rust), mas não são oficialmente suportados.

Precisas de saber sobre isto?

Se criar um projeto a partir dos modelos padrão do Visual Studio para o SDK de Aplicações Windows ou WinUI 3, a projeção de linguagem já está configurada para si. O seu código em C# ou C++ pode chamar diretamente as APIs do WinRT, e não precisa de pensar em como funciona a projeção.

Normalmente precisas de olhar mais fundo na camada de projeção quando:

  • Crie um componente Windows Runtime que outras aplicações ou linguagens consomem.
  • Distribuir uma biblioteca como um pacote NuGet que envolva APIs do WinRT.
  • Interoperabilidade com interfaces COM ou ABI de baixo nível a partir de código em C++.
  • Resolver erros de compilação relacionados com código de interoperabilidade gerado ou ficheiros WinMD.

Para o desenvolvimento diário de aplicações, os detalhes abaixo são conhecimentos prévios — úteis se estiveres curioso, mas não obrigatórios para começar.

Projeções linguísticas

As APIs do Windows Runtime são definidas de forma neutra em relação à linguagem usando ficheiros de Metadados do Windows (.winmd). Uma projeção de linguagem lê esses metadados e gera ligações idiomáticas para que possas chamar as APIs naturalmente a partir de C++ ou C#.

Projection Linguagem O que é Padrão de espaço de nomes
C++/WinRT C++17 Uma biblioteca apenas com cabeçalhos que fornece acesso de primeira classe às APIs do WinRT. Substitui o C++/CX e a Windows Runtime C++ Template Library (WRL). winrt::Microsoft::UI::Xaml
C#/WinRT C# (.NET) Um kit de ferramentas distribuído como pacote NuGet que gera assemblies de interoperabilidade .NET a partir de ficheiros .winmd. Permite-lhe consumir e criar componentes WinRT a partir de C#. Microsoft.UI.Xaml

Estrutura UI

Framework O que é Namespace
XAML (WinUI 3) A linguagem de marcação declarativa baseada em XML para interfaces de utilizador do WinUI 3. Trata do layout, estilo, ligação de dados e animações. Code-behind é escrito em C# ou C++. Microsoft.UI.Xaml (não Windows.UI.Xaml, que é UWP)

Important

O XAML do WinUI 3 utiliza o Microsoft.UI.Xaml namespace. Se encontrares código ou documentação que faz referência a Windows.UI.Xaml, trata-se de UWP XAML, que é um framework diferente. Não misture os dois namespaces num projeto WinUI 3.

Passos seguintes

Escolhe a área que corresponde ao que queres aprender: