Windows 앱 SDK 플랫폼 개요

이 Windows 앱 SDK 앱 개발을 위한 두 가지 언어인 C#C++를 지원합니다. 각 언어는 언어 프로젝션을 사용하여 winRT(Windows 런타임) API를 호출하고, 둘 다 XAML(특히 네임스페이스에서 WinUI 3 XAMLMicrosoft.UI.Xaml)을 사용하여 사용자 인터페이스를 정의합니다. 이러한 프로젝션과 UI 프레임워크는 함께 플랫폼 계층을 형성합니다.

Note

C# 및 C++는 Windows 앱 SDK 및 WinUI 3에 대해 지원되는 프로젝션이 있는 유일한 언어입니다. 커뮤니티 프로젝트는 다른 언어(예: Rust)에 대해 존재하지만 공식적으로 지원되지는 않습니다.

당신은 이것에 대해 알아야합니까?

Windows 앱 SDK 또는 WinUI 3용 표준 Visual Studio 템플릿에서 프로젝트를 만드는 경우 언어 프로젝션이 이미 구성되어 있습니다. C# 또는 C++ 코드는 WinRT API를 직접 호출할 수 있으며 프로젝션의 작동 방식을 생각할 필요가 없습니다.

일반적으로 다음과 같은 경우 프로젝션 계층을 더 자세히 살펴봐야 합니다.

  • 다른 앱 또는 언어에서 사용하는 Windows 런타임 구성 요소를 작성합니다.
  • 라이브러리를 WinRT API를 래핑하는 NuGet 패키지로 배포합니다.
  • C++ 코드에서 저수준 COM 또는 ABI 인터페이스와 상호 운용
  • 생성된 interop 코드 또는 WinMD 파일과 관련된 빌드 오류를 해결합니다.

일상적인 앱 개발의 경우 아래 세부 정보는 배경 지식입니다. 호기심이 많지만 시작할 필요는 없는 경우에 유용합니다.

언어 프로젝션

Windows 런타임 API는 Windows 메타데이터(.winmd) 파일을 사용하여 언어 중립적인 방식으로 정의됩니다. 언어 프로젝션은 해당 메타데이터를 읽어 해당 언어에 맞는 바인딩을 생성하여 C++ 또는 C#에서 API를 자연스럽게 호출할 수 있게 합니다.

Projection Language 그것이 무엇인지 네임스페이스 패턴
C++/WinRT C++17 WinRT API에 대한 일류 액세스를 제공하는 헤더 전용 라이브러리입니다. C++/CX 및 Windows 런타임 C++ 템플릿 라이브러리(WRL)를 대체합니다. winrt::Microsoft::UI::Xaml
C#/WinRT C#(.NET) .winmd 파일로부터 .NET interop 어셈블리를 생성하는 NuGet 패키지로 제공되는 도구 키트입니다. 이를 통해 C#에서 WinRT 구성 요소를 사용하고 작성할 수 있습니다. Microsoft.UI.Xaml

UI 프레임워크

Framework 그것이 무엇인지 네임스페이스
XAML(WinUI 3) WinUI 3 사용자 인터페이스에 대한 선언적 XML 기반 태그 언어입니다. 레이아웃, 스타일 지정, 데이터 바인딩 및 애니메이션을 처리합니다. 코드 비하인드는 C# 또는 C++로 작성됩니다. Microsoft.UI.Xaml(Windows.UI.Xaml가 아니라, UWP임)

Important

WinUI 3 XAML은 네임스페이스를 Microsoft.UI.Xaml 사용합니다. 참조하는 Windows.UI.Xaml코드 또는 설명서가 표시되면 다른 프레임워크인 UWP XAML입니다. WinUI 3 프로젝트에서 두 네임스페이스를 혼합하지 마세요.

다음 단계

학습하려는 영역과 일치하는 영역을 선택합니다.