Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Windows App SDK поддерживает два языка для разработки приложений: C# и C++. Каждый язык использует проекцию языка для вызова API среда выполнения Windows (WinRT), и оба используют XAML (а именно XAML WinUI 3 в пространстве имен Microsoft.UI.Xaml) для определения пользовательского интерфейса. Вместе эти проекции и платформа пользовательского интерфейса формируют слой платформы.
Note
C# и C++ — это единственные языки с поддерживаемыми проекциями для Windows App SDK и WinUI 3. Проекты сообщества существуют для других языков (например, Rust), но они официально не поддерживаются.
Вам нужно знать об этом?
Если вы создаете проект из стандартных шаблонов Visual Studio для Windows App SDK или WinUI 3, для вас уже настроена проекция языка. Код C# или C++ может вызывать API WinRT напрямую, и вам не нужно думать о том, как работает проекция.
Как правило, вам нужно более глубоко взглянуть на слой проекции, когда вы:
- Создайте компонент среда выполнения Windows, который используют другие приложения или языки.
- Распространение библиотеки в виде пакета NuGet, который упаковывает API WinRT.
- Взаимодействие с низкоуровневыми интерфейсами COM или ABI из кода C++.
- Устранение ошибок сборки , связанных с созданным кодом взаимодействия или файлами WinMD.
Для разработки повседневных приложений приведенные ниже сведения являются фоновыми знаниями, полезными, если вы любопытны, но не требуется для начала работы.
Языковые проекции
API среда выполнения Windows определяются независимым от языка способом с использованием файлов метаданных Windows (.winmd). Проекция языка считывает метаданные и создает идиоматические привязки, чтобы можно было вызывать API естественно из C++ или C#.
| Projection | Language | Что это такое | Шаблон пространства имён |
|---|---|---|---|
| C++/WinRT | C++17 | Библиотека только заголовков, предоставляющая доступ к API WinRT первого класса. Он заменяет C++/CX и библиотеку шаблонов C++ среда выполнения Windows C++ (WRL). | winrt::Microsoft::UI::Xaml |
| C#/WinRT | C# (.NET) | Инструментарий, распространяемый как пакет NuGet, который генерирует .NET-сборки взаимодействия из файлов .winmd. Он позволяет использовать компоненты WinRT и создавать их из C#. |
Microsoft.UI.Xaml |
Платформа пользовательского интерфейса
| Framework | Что это такое | Namespace |
|---|---|---|
| XAML (WinUI 3) | Декларативный язык разметки на основе XML для пользовательских интерфейсов WinUI 3. Обрабатывает макет, стили, привязку данных и анимацию. Код программной части написан на C# или C++. |
Microsoft.UI.Xaml (не Windows.UI.Xaml, это UWP) |
Это важно
WinUI 3 XAML использует пространство имен Microsoft.UI.Xaml. Если вы видите код или документацию, где упоминается Windows.UI.Xaml, то это XAML для UWP, то есть другой фреймворк. Не смешивайте два пространства имен в проекте WinUI 3.
Дальнейшие действия
Выберите область, которая соответствует тому, что вы хотите узнать:
Windows developer