데스크톱 앱에 대한 최신 Windows 기능

최신 Windows 기능을 활용하기 위해 WPF, Windows Forms 또는 Win32 앱을 다시 작성할 필요가 없습니다. Windows 앱 SDK 광범위한 Windows 플랫폼은 사용자 고유의 속도로 증분 방식으로 채택할 수 있는 모듈식 기능을 제공합니다.

이 문서에서는 앱의 프레임워크에 따라 추가할 기능과 시작할 위치를 결정할 수 있도록 WinRT(Windows 런타임) API 호출, Windows 앱 SDK 추가, MSIX 패키징 채택 등 세 가지 독립적인 현대화 방법을 소개합니다.

WinUI 3으로 UI 프레임워크 마이그레이션

앱의 UI 계층을 완전히 현대화하는 것이 목표인 경우 Windows 데스크톱 앱용 네이티브 UI 프레임워크인 WinUI 3으로 마이그레이션하는 것이 좋습니다. 시작하려면 WinUI 3 프로젝트 만들기 및 실행을 참조하세요.

UI 계층을 변경하지 않고 기존 앱 프레임워크(WPF, Windows Forms 또는 C++ Win32)에 Windows 기능을 추가하려면 이 문서에 설명된 현대화 방법 중 하나를 사용합니다.

메모

이 문서에서는 기존 데스크톱 앱에 최신 Windows 기능을 추가하는 방법을 설명합니다. .NET 도구 체인 또는 C++ 컴파일러를 현대화하려면 GitHub Copilot 업그레이드 또는 Microsoft C++ 포팅 및 업그레이드 가이드를 참조하세요.

현대화 방법

세 가지 현대화 방법은 독립적입니다. 동일한 앱에서 하나, 둘 또는 세 가지를 모두 사용할 수 있습니다.

Approach 그것은 당신에게 주는 것 패키징이 필요하세요?
WinRT API .NET 또는 C++ 데스크톱 앱에서 Windows 플랫폼 API(알림, Bluetooth, 공유 계약, 센서 등)에 직접 액세스 아니요, 대부분의 API의 경우
Windows 앱 SDK 기존 앱에 최신 Windows 개발 기능(창, 텍스트 렌더링, 리소스 등)을 제공하는 NuGet 패키지 아니요, 대부분의 기능
MSIX 패키징 새로 제거, 자동 업데이트 및 패키지 ID를 사용하는 최신 설치 관리자 소스 코드를 변경하지 않아도 됩니다. 해당 없음 — 패키징이 그 접근 방식입니다

Tip

특정 Windows 플랫폼 API를 호출하려는 경우 WinRT API로 시작합니다. 해당 기능이 필요할 때 Windows 앱 SDK 추가합니다(DWriteCore, MRT Core, windowing). 패키지 ID가 필요하거나 설치 관리자를 현대화하려는 경우 MSIX 패키징 을 추가합니다.

WinRT API들

WinRT(Windows 런타임) API는 앱 알림, 공유 계약, Bluetooth 등과 같은 Windows 플랫폼 기능을 노출합니다. WPF, Windows Forms 및 C++ Win32 앱에서 직접 이러한 API를 호출할 수 있습니다.

Windows 앱 SDK

Windows 앱 SDK는 기존 프로젝트에 추가할 수 있는 NuGet 패키지 형태로 최신 Windows 개발 기능을 제공합니다. UI 프레임워크를 변경할 필요가 없습니다.

MSIX 패키징 및 패키지 ID

MSIX 패키징은 기존 설치 관리자를 대체하고 앱 패키지 ID를 제공합니다. 백그라운드 작업, 시작 작업, 파일 연결 및 Windows AI Foundry를 비롯한 일부 Windows 기능에는 런타임에 패키지 ID가 필요합니다. 기존 설치 관리자를 유지하려는 경우 전체 MSIX 패키징 없이도 패키지 ID를 부여할 수 있습니다. 외부 위치 또는 스파스 패키지로 패키징이라고도 하는 접근 방식입니다.

프레임워크별 시작점

다음 표에서는 각 데스크톱 앱 프레임워크에 권장되는 시작점을 나열합니다.

귀하의 프레임워크 권장되는 시작점
WPF 기존 프로젝트에서 Windows 앱 SDK 사용하기
Windows Forms 기존 프로젝트에서 Windows 앱 SDK 사용하기
C++ Win32 기존 프로젝트에서 Windows 앱 SDK 사용하기
C++/WinRT 데스크톱 앱용 WinRT API

데스크톱 앱 현대화를 위한 기능 카탈로그

다음 표에는 일반적인 현대화 기능과 각각에 Windows 앱 SDK 또는 패키지 ID가 필요한지 여부가 나와 있습니다.

AI

Feature Windows 앱 SDK 필요합니까? 패키지 ID가 필요합니까?
Windows AI 파운드리 No Yes

UI 및 텍스트

Feature Windows 앱 SDK 필요합니까? 패키지 ID가 필요합니까?
데스크톱 앱의 WinUI 3 구성 요소 Yes No
XAML Islands를 사용하여 WinUI 컨트롤 호스트 Yes No
DWriteCore를 사용하여 텍스트 렌더링 Yes No
Win32 앱에 Mica 또는 Acrylic 적용 No No
둥근 모서리 적용 No No
Windows 테마 적용 No No

앱 수명 주기

Feature Windows 앱 SDK 필요합니까? 패키지 ID가 필요합니까?
백그라운드 작업(Windows 앱 SDK) Yes Yes
시작 작업 No Yes

Windows 통합

Feature Windows 앱 SDK 필요합니까? 패키지 ID가 필요합니까?
시트 통합 공유 No No
디바이스 간 사용자 API No No
파일 연결 No Yes
Windows 위젯 No Yes

Security

Feature Windows 앱 SDK 필요합니까? 패키지 ID가 필요합니까?
자격 증명 보관 No No
OAuth 2.0 No No
지문 생체 인식 No No
스마트 카드 No No
암호화 No No

Resources

Feature Windows 앱 SDK 필요합니까? 패키지 ID가 필요합니까?
MRT Core 리소스 관리 Yes No

데스크톱 앱에서 사용할 수 있는 플랫폼 기능의 전체 목록은 Windows 앱 플랫폼 개요를 참조하세요.

AI 지원 현대화

GitHub Copilot 업그레이드는 지원되는 .NET 데스크톱 프로젝트를 평가하고 업그레이드할 수 있습니다. AI 지원 Windows 기능 채택 및 UI 마이그레이션은 AI 지원 현대화를 참조하세요.