Panoramica della piattaforma SDK per app di Windows

Il SDK per app di Windows supporta due linguaggi per lo sviluppo di app: C# e C++. Ogni linguaggio utilizza una proiezione del linguaggio per chiamare le API di Windows Runtime (WinRT), ed entrambi utilizzano XAML (in particolare WinUI 3 XAML, nel namespace Microsoft.UI.Xaml) per definire l'interfaccia utente. Insieme, queste proiezioni e il framework dell'interfaccia utente formano il livello della piattaforma.

Note

C# e C++ sono gli unici linguaggi con proiezioni supportate per SDK per app di Windows e WinUI 3. I progetti della community esistono per altri linguaggi(ad esempio Rust), ma non sono ufficialmente supportati.

È necessario conoscerlo?

Se si crea un progetto dai modelli di Visual Studio standard per SDK per app di Windows o WinUI 3, la proiezione del linguaggio è già configurata automaticamente. Il codice C# o C++ può chiamare direttamente le API WinRT e non è necessario pensare al funzionamento della proiezione.

In genere è necessario esaminare più a fondo il livello di proiezione quando:

  • Creare un componente Windows Runtime utilizzato da altre app o lingue.
  • Distribuire una libreria come pacchetto NuGet che esegue il wrapping delle API WinRT.
  • Interoperabilità con interfacce COM o ABI di basso livello dal codice C++.
  • Risolvere gli errori di compilazione correlati al codice di interoperabilità generato o ai file WinMD.

Per lo sviluppo di app quotidiane, i dettagli seguenti sono informazioni di base, utili se si è curiosi, ma non è necessario iniziare.

Proiezioni del linguaggio

Windows Runtime API vengono definite in modo indipendente dal linguaggio usando file di metadati (.winmd) Windows. Una proiezione di linguaggio legge tali metadati e genera binding idiomatici, così da poter richiamare le API in modo naturale da C++ o C#.

Projection Language Che cos'è Schema dello spazio dei nomi
C++/WinRT C++17 Libreria costituita da soli file header che fornisce un accesso completo alle API di WinRT. Sostituisce C++/CX e la libreria di modelli C++ Windows Runtime (WRL). winrt::Microsoft::UI::Xaml
C#/WinRT C# (.NET) Toolkit distribuito come pacchetto NuGet che genera assembly di interoperabilità .NET a partire da file .winmd. Consente di usare e creare componenti WinRT da C#. Microsoft.UI.Xaml

Framework dell'interfaccia utente

Struttura Che cos'è Namespace
XAML (WinUI 3) Linguaggio di markup dichiarativo basato su XML per le interfacce utente winUI 3. Gestisce layout, stili, data binding e animazioni. Code-behind è scritto in C# o C++. Microsoft.UI.Xaml (non Windows.UI.Xaml, che è UWP)

Important

WinUI 3 XAML usa il namespace Microsoft.UI.Xaml. Se vedi codice o documentazione che fanno riferimento a Windows.UI.Xaml, si tratta di UWP XAML, che è un framework diverso. Non mischiare i due namespace in un progetto WinUI 3.

Passaggi successivi

Scegliere l'area corrispondente a ciò che si vuole apprendere: