Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
Windows developer