데스크톱 앱 현대화

Windows 11 및 Windows 10은 데스크톱 앱에 최신 환경을 제공하는 데 사용할 수 있는 여러 기능을 제공합니다. 이러한 기능 대부분은 다른 플랫폼용 애플리케이션을 다시 작성하지 않고도 자신의 업무 속도에 맞춰 데스크톱 앱에 채택할 수 있는 모듈식 구성 요소로 사용할 수 있습니다. 채택하려는 Windows 기능을 선택하여 기존 데스크톱 앱을 개선할 수 있습니다.

이 토픽에서는 현재 데스크톱 앱에서 사용할 수 있는 기능을 설명합니다. 이 토픽에 설명된 많은 기능을 사용하도록 기존 앱을 현대화하는 방법을 보여주는 자습서는 WPF 앱 현대화 튜토리얼을 참조하세요.

참고

Windows 10 이상으로 데스크톱 앱을 마이그레이션하기 위한 지원이 필요한가요? App Assure 서비스는 앱을 Windows 10 이상으로 포팅하려는 개발자에게 직접적인 무료 지원을 제공합니다. 이 프로그램은 모든 ISV 및 적격 엔터프라이즈에서 사용할 수 있습니다. 자격 및 프로그램 자체에 대한 자세한 내용은 /fasttrack/win-10-app-assure-assistance-offered를 참조하세요. 당장 시작하려면 요청을 제출하세요.

Windows 11 기능 적용

Windows 11은 Windows 운영 체제의 시각적 진화를 표시하며 앱 기본 사항과 사용자 경험을 개선하는 새로운 기능을 도입합니다. 이러한 기능 중 대부분은 앱에 대해 기본적으로 활성화되어 있지만 데스크톱 앱은 일부 새로운 기능과 통합하기 위한 업데이트가 필요할 수 있습니다. 이러한 기능에는 최상위 창의 둥근 모서리, 스냅 레이아웃 및 파일 탐색기의 업데이트된 컨텍스트 메뉴가 포함됩니다.

자세한 내용은 Windows 11에서 앱을 효율적으로 만들기 위해 할 수 있는 11가지 주요 작업을 참조하세요.

Windows 앱 SDK

Windows 앱 SDK는 Windows 앱 개발 플랫폼의 다음 진화를 나타내는 새로운 개발자 구성 요소 및 도구 세트입니다. Windows 앱 SDK는 Windows 11 및 여러 버전의 Windows 10의 모든 데스크톱 앱에서 일관된 방식으로 사용할 수 있는 API 및 도구의 통합 세트를 제공합니다. 프로젝트 템플릿을 사용하여 WinUI 3 기반 UI와 함께 Windows 앱 SDK를 사용하는 새 데스크톱 앱을 만들거나 기존 데스크톱 앱에서 Windows 앱 SDK를 사용할 수 있습니다.

자세한 내용은 Windows 앱 SDK를 참조하세요.

Windows UI 라이브러리

WinUI(Windows UI) 라이브러리는 Windows 데스크톱 및 UWP 애플리케이션 모두에 대한 네이티브 사용자 환경 프레임워크입니다. WinUI는 하위 버전의 Windows를 대상으로 하는 UWP 앱을 위한 최신 버전 및 업데이트된 버전의 WinRT XAML 컨트롤을 제공하는 도구 키트로 시작되었습니다. 최신 버전인 WinUI 3은 범위가 확장되었으며 이제 Windows 데스크톱 앱을 위한 최신 네이티브 UI 플랫폼입니다.

데스크톱 앱에서 다음과 같은 방법으로 WinUI를 사용할 수 있습니다.

  • WinUI 3을 사용하여 완전히 WinUI 3 기반 사용자 인터페이스로 데스크톱 앱을 만듭니다(첫 번째 WinUI 3 프로젝트 만들기 참조). WinUI 3은 Windows 앱 SDK에서 제공하는 여러 기능 중 하나입니다.
  • XAML Islands를 사용하여 기존 WPF, Windows Forms 및 C++ 데스크톱(Win32) 앱을 업데이트하고 WinUI 2 컨트롤을 호스팅할 수 있습니다.

자세한 내용은 Windows UI(WinUI) 라이브러리를 참조하세요.

Windows 런타임 API

WPF, Windows Forms 또는 C++ 데스크톱 앱에서 직접 여러 Windows 런타임 API를 호출하여 사용자에게 유용한 최신 환경을 통합할 수 있습니다. 예를 들어, Windows 런타임 API를 호출하여 데스크톱 앱에 알림 메시지를 추가할 수 있습니다.

자세한 내용은 데스크톱 앱에서 Windows 런타임 API 사용을 참조하세요.

MSIX 배포

MSIX는 UWP, WPF, Windows Forms 및 Win32 앱을 비롯한 모든 Windows 앱에 유니버설 패키징 환경을 제공하는 최신 Windows 앱 패키지 형식입니다. MSIX는 MSI, .appx, App-V 및 ClickOnce 설치 기술의 장점을 결합하여 현대적이고 안정적인 패키징 환경을 제공합니다.

MSIX 패키지에 데스크톱 Windows 앱을 패키지하면 강력한 설치 및 업데이트 환경, 유연한 기능 시스템을 포함하는 관리형 보안 모듈, Microsoft Store, 엔터프라이즈 관리 및 여러 사용자 지정 모델에 대한 지원 기능에 액세스할 수 있습니다.

자세한 내용은 코드에서 MSIX 패키지 빌드를 참조하세요.

런타임 시 동적으로 MSIX 프레임워크 패키지 사용

Windows 앱 SDK 및 Windows 11 OS의 동적 종속성 기능을 사용하면 앱이 런타임 시 MSIX 프레임워크 패키지를 참조할 수 있습니다. 이 기능은 MSIX 프레임워크 패키지에서 제공하는 API를 호출하기 위해 패키지되지 않은 데스크톱 앱에서 주로 사용하기 위한 것입니다.

자세한 내용은 데스크톱 앱에서 동적으로 MSIX 프레임워크 패키지 사용을 참조하세요.

.NET

.NET(이전의 .NET Core)은 Windows 앱 SDK를 사용하여 만든 WinUI 3 앱을 포함하여 Windows 데스크톱 앱을 지원합니다(첫 번째 WinUI 3 프로젝트 만들기 참조). .NET은 WPF(Windows Presentation Foundation)WinForms(Windows Forms) 앱도 지원합니다. .NET에서 신규 및 기존 Windows 데스크톱 앱을 실행하고 .NET에서 제공하는 모든 혜택을 제공합니다.

자세한 내용은 .NET 6의 새로운 기능을 참조하세요.

호스트 WinRT XAML 컨트롤(XAML Islands)

Windows 10, 버전 1903부터 창 핸들(HWND)에 연결된 WPF, Windows Forms 또는 C++ 데스크톱 앱의 모든 UI 요소에 직접 UWP XAML 컨트롤을 추가할 수 있습니다. 즉, Windows InkFluent Design 시스템을 지원하는 컨트롤을 비롯한 최신 UWP 기능을 데스크톱 앱의 창 및 기타 디스플레이 화면에 완전히 통합할 수 있습니다. 이 개발자 시나리오를 XAML Islands라고도 지칭합니다.

자세한 내용은 데스크톱 앱의 WinRT XAML 컨트롤을 참조하세요.

데스크톱 앱에서 시각적 계층 사용

이제 비 UWP 데스크톱 앱의 Windows 런타임 API를 사용하여 WPF, Windows Forms 및 C++ 데스크톱 앱의 모양, 느낌 및 기능을 향상시키고, UWP를 통해서만 사용할 수 있는 최신 Windows UI 기능을 활용할 수 있습니다. 이러한 기능은 XAML Islands를 사용하여 호스트할 수 있는 기본 제공 WinRT XAML 컨트롤을 능가하는 사용자 지정 환경을 만들어야 할 때 유용합니다.

자세한 내용은 시각적 개체 레이어를 사용하여 데스크톱 앱 현대화를 참조하세요.

패키지 ID가 있는 앱에 사용할 수 있는 추가 기능

일부 최신 Windows 환경은 런타임에 패키지 ID가 있는 데스크톱 앱에서만 사용할 수 있습니다. 이러한 기능에는 특정 Windows 런타임 API, 패키지 확장 및 UWP 구성 요소가 포함됩니다. 자세한 내용은 패키지 ID가 필요한 기능을 참조하세요.

데스크톱 앱용으로 최적화된 WinRT XAML 컨트롤

데스크톱 디바이스 제품군만을 대상으로 하는 WinRT XAML 앱을 빌드하거나 WPF, Windows Forms 또는 C++ 데스크톱 앱에서 WinRT XAML 컨트롤을 사용하려는 경우 Fluent Design 시스템을 사용하여 데스크톱 최적화 환경을 제공하도록 디자인된 다음의 새롭거나 업데이트된 UWP 컨트롤을 사용하세요. 이러한 컨트롤은 Windows 10, 버전 1809(2018년 10월 업데이트 또는 버전 10.0.17763)에 도입되었습니다.

제어 설명
MenuBar CommandBar에서 허용하는 것보다 더 많은 조직 또는 그룹화가 필요할 수 있는 앱에 대한 명령 세트를 빠르고 간편하게 노출할 수 있는 방법을 제공합니다.
DropDownButton 더 많은 옵션을 포함하는 연결된 플라이아웃이 있는 시각적 표시기 형태의 갈매기형 펼침 단추를 표시합니다.
SplitButton 별도로 호출할 수 있는 두 부분으로 이루어진 버튼을 제공합니다. 한 부분은 표준 버튼처럼 동작하며 즉각적인 작업을 호출합니다. 다른 부분은 사용자가 선택할 수 있는 추가 옵션을 포함하는 플라이아웃을 호출합니다.
ToggleSplitButton 별도로 호출할 수 있는 두 부분으로 이루어진 버튼을 제공합니다. 한 부분은 끄거나 켤 수 있는 토글 버튼처럼 동작합니다. 다른 부분은 사용자가 선택할 수 있는 추가 옵션을 포함하는 플라이아웃을 호출합니다.
CommandBarFlyout UI 캔버스에 항목 컨텍스트로 일반적인 사용자 작업을 표시할 수 있습니다.
ComboBox 컨트롤에 나열되지 않는 값을 입력할 수 있도록 편집 가능한 콤보 상자를 제공합니다.
TreeView 데이터 바인딩, 항목 템플릿 및 끌어서 놓기를 사용하도록 트리 보기를 구성할 수 있습니다.
DataGridView 행과 열에 데이터 컬렉션을 표시할 수 있는 유연한 방법을 제공합니다. 이 컨트롤은 Windows 커뮤니티 도구 키트에서 사용할 수 있습니다.

최신 데스크톱 앱을 위한 기타 기술

Microsoft Graph

Microsoft Graph는 수백만 사용자 데이터와 상호 작용하는 조직 및 소비자를 위한 앱을 빌드하는 데 사용할 수 있는 API 컬렉션입니다. Microsoft Graph는 데이터에 액세스하기 위한 REST API 및 클라이언트 라이브러리를 다음과 같이 제공합니다.

  • Azure Active Directory
  • Microsoft 365 Office 앱: SharePoint, OneDrive, Outlook/Exchange, Microsoft Teams, OneNote, Planner, Excel
  • Enterprise Mobility + Security 서비스: Identity Manager, Intune, Advanced Threat Analytics, Advanced Threat Protection
  • Windows 서비스: 활동 및 디바이스

자세한 내용은 Microsoft Graph 설명서를 참조하세요.

적응형 카드

적응형 카드는 공통적이며 일관된 방식으로 디바이스 및 플랫폼 간에 카드 기반 UI 콘텐츠를 교환하는 데 사용할 수 있는 개방형 플랫폼 간 프레임워크입니다.

자세한 내용은 적응형 카드 설명서를 참조하세요.