Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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: