Windows 앱 개발 질문과 대답

이 FAQ는 프로젝트에 적합한 프레임워크를 선택하는 지침을 포함하여 Windows 애플리케이션 개발에 대한 일반적인 질문에 대한 답변을 제공합니다. 다음 내용을 다룹니다.

  • 시작 및 Windows 앱 개발 환경
  • WinUI 3, Windows Presentation Foundation(WPF) 및 Windows Forms(WinForms)를 사용한 네이티브 Windows 전용 앱 개발
  • Windows 소프트웨어 개발 키트 (SDK) 및 Windows 앱 SDK.
  • 플랫폼 간 개발 전략의 일환으로 Windows 대상으로 지정합니다.
  • .NET MAUI, Blazor 및 ASP.NET Core 사용한 하이브리드 및 웹앱 개발
  • Microsoft 투자를 이해하면서 접근 방식을 선택하는 방법.

Windows 앱 개발 환경

Windows 개발 기술에 대한 간단한 개요를 찾을 수 있나요?

Windows 개발자를 위한 오늘의 다양한 옵션에 대한 훌륭한 검토를 위해 가장 최근의 Windows Dev Chat 에피소드인 이상적인 개발 플랫폼 선택하기를 시청하세요. 이 에피소드에서는 WinUI, .NET MAUI, React Native, Blazor, 그리고 웹 애플리케이션 PWA에 대해 논의합니다.

Windows 개발자를 위해 앱 개발 옵션을 참조할 수도 있습니다.

cloud services 시대에 최신 디지털 변환에 클라이언트 앱 개발이 여전히 중요한가요?

클라우드 서비스 시대에 클라이언트 앱 개발은 사용자 디바이스에서 응답성이 뛰어나고 의미 있는 상호 작용을 제공하는 데 여전히 중요합니다.

클라이언트 앱이 중요한 이유는 다음과 같습니다.

  • 디바이스 도달률: 클라이언트 앱을 사용하면 선택한 디바이스에서 사용자에게 애플리케이션을 직접 가져올 수 있습니다.
  • Gateway to Intelligent Services: 클라이언트 앱은 종종 사용자가 서비스와의 첫 번째 상호 작용입니다. 지능형 기능을 소개하고 제품을 다른 사용자와 차별화할 수 있는 풍부한 대화형 인터페이스를 제공합니다.
  • 클라우드 통합을 통한 확장성: 잘 통합된 클라이언트 앱은 백엔드 클라우드 서비스와 손쉽게 동기화되어, 사용자 기반이 증가함에 따라 실시간 데이터 액세스 및 원활한 확장성을 구현할 수 있습니다.
  • 향상된 생산성 및 사용자 충성도: 신중하게 디자인된 앱은 생산성을 향상시키고 사용자가 시간이 지남에 따라 제품 또는 서비스에 계속 참여할 수 있습니다.

네이티브 Windows 전용 앱 개발

Windows 앱 SDK란 무엇입니까?

이 Windows 앱 SDK WinUI, 앱 수명 주기, 창, 알림, 리소스 및 텍스트 API를 포함하여 Windows 데스크톱 앱에 대해 독립적으로 서비스되는 구성 요소를 제공합니다. Windows 릴리스 및 Windows 앱 SDK 버전의 지원 수명 주기에 따라 Windows 10 버전 1809 이상에서 실행되는 앱을 지원합니다.

Windows 앱 SDK와 Windows SDK의 차이점은 무엇입니까?

둘 다 Windows 앱을 빌드할 수 있는 SDK(소프트웨어 개발 키트)입니다.

Windows 앱 SDK는 Windows와 독립적으로 제공되며, Windows 10 버전 1809까지의 지원되는 Windows 릴리스 전반에서 작동하는 구성 요소를 제공합니다. 여기에는 앱 수명 주기, 창, 알림, 리소스, 텍스트 및 기타 기능에 대한 WinUI 및 API가 포함됩니다.

Windows SDK는 Win32, WinRT, COM, DirectX, 디바이스 및 셸 기능과 같은 운영 체제 API에 대한 헤더, 라이브러리, 메타데이터 및 도구를 제공합니다.

Windows 앱 SDK Windows SDK를 대체하지 않습니다. Windows 앱 SDK 채택하는 앱은 Windows SDK API를 계속 사용할 수 있으며 WinUI 앱은 일반적으로 둘 다 사용합니다.

Windows 전용 앱을 개발하기 위한 새 팀을 구축하고 있습니다. WinUI, WPF 또는 WinForms와 같은 네이티브 Windows 프레임워크를 사용하여 개발해야 하는 이유는 무엇인가요?

다음은 Windows 전용 앱에 대한 네이티브 Windows 프레임워크를 선택하는 몇 가지 이유입니다.

  • Performance: 네이티브 Windows 프레임워크는 최신 Windows 하드웨어를 활용하도록 최적화되어 빠르고 응답성이 뛰어난 사용자 환경을 제공합니다.
  • 인테그레이션: Windows Windows만 사용할 수 있는 정교한 환경을 지원하는 다양한 API와 함께 제공됩니다. 네이티브 프레임워크는 이러한 기능 및 API와 긴밀한 통합을 제공합니다.
  • Native 사용자 환경: 네이티브 프레임워크는 Windows 디바이스에서 일관된 환경을 제공하여 앱이 어디서나 멋지게 보이고 작동하도록 합니다.
  • 오프라인 지원: 네이티브 프레임워크는 오프라인 시나리오를 지원하므로 인터넷 연결 없이도 앱이 작동할 수 있습니다.
  • 지원 및 도구: Microsoft 네이티브 프레임워크를 유지 관리하고 현재 SDK, 설명서, 디버깅 도구 및 샘플을 제공합니다.
Windows 앱 개발에 Microsoft 최신 투자를 활용하는 데 사용해야 하는 프레임워크는 무엇입니까?

새 Windows 전용 앱을 빌드하는 경우 WinUI를 사용하는 것이 좋습니다. WinUI는 Windows 앱 개발을 위한 최신 네이티브 UI 프레임워크이며 광범위한 Windows 디바이스에서 작동하도록 설계되었습니다. 시각적으로 매력적이고 대화형 Windows 앱을 만들기 위한 최신의 유연한 UI 프레임워크를 제공합니다. WinUI는 Windows 앱 SDK 일부이며 최신 버전의 Windows 가장 잘 작동합니다.

기존 Windows 앱에서 Windows 앱 SDK/WinUI를 사용할 수 있나요?

WinUI(UI 프레임워크)는 Windows 앱 SDK(Windows 플랫폼 개발 프레임워크)과 함께 제공됩니다.

앱의 UI를 WinUI로 마이그레이션하거나 WinUI XAML Islands를 사용하여 지원되는 기존 데스크톱 호스트에서 Windows 앱 SDK 컨트롤을 호스트할 수 있습니다. 레거시 시스템 XAML Islands는 UWP XAML 컨트롤을 호스트하고 다른 API를 사용합니다.

Windows 앱 SDK 요소는 기존 앱이 빌드된 방식에 따라 데스크톱 앱에서 종종 사용할 수 있습니다. UWP 앱은 Windows 앱 SDK 지원되지 않습니다.

즉, WPF/MFC/WinForms 앱은 WinUI와 관련이 없는 Windows 앱 SDK API를 사용할 수 있습니다. 예로는 앱 수명 주기, 창 및 알림 메시지 등이 있습니다.

자세한 내용은 기존 프로젝트에서 Windows 앱 SDK 사용 참조하세요.

Visual Studio 사용하여 WinUI 앱을 빌드해야 하나요?

아니요. WinUI XAML 빌드는 MSBuild를 사용하지만 다른 편집기에서 명령줄에서 .NET SDK 및 현재 WinUI 템플릿을 사용하여 빌드할 수 있습니다. 명령줄 빠른 시작을 참조하세요.

Visual Studio 2026은 가장 풍부한 통합 편집, 디버깅, 프로파일링 및 XAML 핫 다시 로드 환경을 제공합니다. 도구 요구 사항과 일치하는 워크플로를 사용합니다.

앱을 실행할 때 "DLL 'Microsoft.ui.xaml.dll'을 로드할 수 없습니다." 오류가 발생합니다. 어떻게 수정합니까?

이 오류는 일반적으로 컴퓨터에 Windows 앱 SDK 런타임이 설치되지 않은 unpackaged 앱 시나리오에서 발생합니다. 다음을 시도해 보세요.

  • packaged 앱(권장 기본값)을 실행하는 경우 MsixPackage 시작 프로필이 선택된 상태에서 Visual Studio 통해 시작해야 합니다(일반 실행 프로필 아님). MSIX 패키징 단계에서는 필요한 런타임 구성 요소를 설치합니다.
  • 프레임워크 종속 패키지되지 않은 앱을 실행하는 경우 일치하는 Windows 앱 SDK 런타임을 설치합니다. 자체 포함 배포에는 Windows 앱 SDK 종속성이 포함됩니다.
  • 프로젝트가 배포 모델과 일치하는지 확인합니다. 일반 .NET 패키지되지 않은 앱의 경우 설정을 <WindowsPackageType>None</WindowsPackageType> 사용하면 Windows 앱 SDK 런타임 자동 초기화가 가능합니다. 동적 종속성 초기화를 명시적으로 제어해야 하는 경우에만 부트스트래퍼 API를 직접 사용합니다.

배포 요구 사항에 대한 자세한 내용은 Windows 앱 SDK 사용하는 앱 배포를 참조하세요.

UWP용 WinUI 3과 WinUI 2의 차이점은 무엇인가요?

WinUI(이전에는 WinUI 3이라고 함)는 Windows 앱 개발을 위한 최신 네이티브 UI 프레임워크입니다. 시각적으로 매력적이고 대화형 Windows 앱을 만들기 위한 최신의 유연한 UI 프레임워크를 제공합니다. WinUI는 Windows 앱 SDK 일부이며 최신 버전의 Windows 가장 잘 작동합니다.

UWP용 WinUI (이전에는 WinUI 2라고 함)는 UWP를 기반으로 빌드된 UI 컨트롤 및 스타일 집합입니다. UWP 앱에 대한 현대적인 모양과 느낌을 제공하며 Windows 10 위해 설계되었습니다.

Windows 앱 SDK 및 WinUI를 사용하여 앱을 빌드할 때 "WinUI 앱"을 빌드하고 있나요?

예 - "WinUI 앱"이 권장되는 용어입니다. UWP용 WinUI는 앱 유형이 아니라 UWP 앱에서 사용되는 구성 요소 집합이므로 WinUI 앱을 "WinUI 앱"이라고 합니다.

WinUI for UWP 컨트롤을 사용하는 UWP 앱을 WinUI 구성 요소로 점진적으로 교체하여 업데이트할 수 있나요?

아니요. Windows 앱 SDK UWP 앱에서 사용할 수 없으며 UWP용 WinUI는 WinUI와 혼합할 수 없습니다. UWP에서 Windows 앱 SDK로 이전하는 방법을 참조하세요.

UWP 앱을 WinUI로 마이그레이션하는 것이 얼마나 어려운가요?

UI 구성 요소 마이그레이션은 일반적으로 간단합니다(C# 및 C++/WinRT의 경우). 그렇지 않으면 마이그레이션 비용은 주로 다음 사항에 따라 달라집니다.

  1. Project 파일 및 MSBuild 사용자 지정: 마이그레이션 작업은 고급 MSBuild 사용량에 따라 달라집니다.
  2. .NET API 마이그레이션: .NET Native를 사용하는 UWP 앱은 Native AOT를 사용하여 현재 지원되는 .NET 릴리스로 이동할 수 있습니다. 이 현대화는 UI를 WinUI로 마이그레이션하는 경우와는 별개입니다.
  3. UI 구성 요소 라이브러리: 라이브러리에는 WinUI를 대상으로 하는 버전이 있어야 합니다.
  4. UWP 앱이 현재 대체된 C++/CX로 작성된 경우 일부 소스 코드 포팅이 필요합니다. C++/CX에서 C++/WinRT로 이동을 참조하세요.

자세한 내용은 UWP에서 Windows 앱 SDK로 마이그레이션을 확인하세요.

스토어에 기존 UWP 앱이 있는 경우 동일한 식별자를 사용하여 패키지된 새 WinUI 앱을 게시할 수 있나요?

예, 업그레이드된 앱은 애플리케이션 ID를 업데이트하지 않고 게시할 수 있습니다. 이전 버전의 사용자는 새 버전으로 업데이트됩니다. 데스크톱 앱에만 적용됩니다. Xbox, HoloLens 및 Surface Hub 앱은 WinUI로 마이그레이션할 수 없습니다.

내 WinUI 앱을 어떻게 포장하고 배포할 수 있나요?

배포 개요를 참조하세요.

Windows 앱 SDK 마이그레이션 지침은 어디서 찾을 수 있나요?

UWP에서 Windows 앱 SDK로 이전하는 방법을 참조하세요.

WinUI를 사용하려면 XAML 태그를 사용해야 하나요?

아니요. 코드에서 UI 컨트롤을 만들 수 있습니다. 그러나 선언적 XAML 태그에서 UI를 나타내는 것은 향상된 개발자 환경을 포함하여 많은 이점을 제공합니다.

  • UWP에서 WinUI로 마이그레이션: 일부 구문 조정이 필요하지만 많은 XAML 및 UI 구성 요소를 다시 사용할 수 있습니다.
  • WPF에서 WinUI로 마이그레이션: 많은 개념이 이월되지만, 컨트롤 집합과 API는 다릅니다.
Visual Studio에는 WinUI용 디자인 화면/UI 디자이너가 있습니까?

현재는 아닙니다. XAML 핫 다시 로드, Live Visual Tree, Live Property Explorer 및 관련 런타임 도구를 사용하여 앱이 실행되는 동안 XAML을 검사하고 업데이트합니다.

WinUI 3에 사용할 수 있는 런타임 디자인 도구의 전체 연습은 WinUI 3용 XAML 런타임 디자인 도구를 참조하세요.

Windows 앱 SDK에 WinUI가 포함되어 있습니까?

예. WinUI는 Windows 앱 SDK 일부로 제공됩니다.

UWP용 WinUI를 포함할 Windows 앱 SDK 있나요?

아니요. UWP용 WinUI는 UWP 플랫폼의 일부입니다.

UWP 및 WinUI용 WinUI는 동일한 기술을 기반으로 합니까?

그렇지 않습니다. WinUI는 원래 UWP 코드베이스용 WinUI에서 시작되었지만 고유한 기술입니다. 둘 다 .NET 및 C++에서 작동하는 XAML 기반 UI 프레임워크이지만 UWP 및 WinUI용 WinUI는 서로 호환되지 않습니다.

Windows 앱 SDK 사용하지 않고 WinUI를 사용할 수 있나요?

아니요. WinUI는 Windows 앱 SDK 일부로 제공됩니다.

패키지되지 않은 앱에서 WinUI를 사용할 수 있나요?

예. WinUI 및 많은 Windows 앱 SDK API는 패키지되지 않은 앱에서 작동합니다. 그러나 일부 Windows 기능에는 패키지 ID가 필요하며 프레임워크 종속 패키지되지 않은 앱은 Windows 앱 SDK 런타임을 초기화해야 합니다. 패키징 개요의 옵션과 패키지 ID가 필요한 기능을 비교합니다.

XAML Islands와 WinUI의 차이점은 무엇인가요?

WinUI는 Windows 앱 SDK 포함된 UI 프레임워크입니다. XAML Islands는 기존 데스크톱 앱이 다른 프레임워크의 UI와 함께 XAML 콘텐츠를 배치할 수 있는 호스팅 기술입니다.

이 용어는 UWP XAML 컨트롤을 호스트하는 레거시 시스템 XAML Islands 또는 지원되는 데스크톱 호스트에서 Windows 앱 SDK 컨트롤을 호스트하는 WinUI XAML Islands를 참조할 수 있습니다. API, 네임스페이스 및 호스트 요구 사항은 다릅니다.

WinUI 앱을 만들면 Windows 11 및 Windows 10 모두 최신으로 보이나요?

예. 앱의 UI는 패키지된 시나리오와 패키지되지 않은 시나리오에서 지원되는 모든 버전의 Windows 11 및 Windows 10 최신 Fluent UI 디자인 원칙을 버전 1809까지 상속합니다.

Windows 앱 SDK 사용하여 빌드된 앱에서 Mica 또는 아크릴 배경을 사용할 수 있나요?

예. Windows 11 데스크톱 앱에서 Mica 또는 Acrylic 재질 적용하기를 참조하세요.

WinUI 샘플은 어디에서 찾을 수 있나요?

샘플 및 리소스를 참조하십시오. 주목할 만한 리포지토리:

이미 WPF 많이 투자한 경우 WPF 계속 사용하거나 WinUI로 마이그레이션하는 것을 고려해야 합니다

이미 WPF 많이 투자한 경우 기존 앱에 계속 사용할 수 있습니다. WPF 데스크톱 앱을 빌드하는 데 널리 사용되는 성숙하고 안정적인 프레임워크 Windows입니다.

GitHub Copilot 업그레이드를 사용하여 .NET Framework WPF 앱을 평가하고 최신 .NET으로 업그레이드합니다. 생성된 계획을 검토하고 앱의 각 변경 내용에 대한 유효성을 검사합니다.

새 WPF 앱을 빌드하면 다른 새 Windows 앱에 비해 구식으로 보일까요?

.NET 9 이상을 사용하여 WPF 애플리케이션을 개발할 때 앱이 Windows 11 세련되고 현대적인 모양과 일치하는지 확인할 수 있습니다. WPF 대한 새로운 Fluent 테마는 통합 조명 / 어두운 모드와 시스템 악센트 색상 지원과 함께 현대적인 Windows 11 미학을 소개합니다. 이렇게 하면 앱의 모양이 현대화되고 세련되고 응집력 있는 사용자 환경이 제공됩니다.

우리 팀은 WinForms 앱을 쉽게 빌드할 수 있으며 요구 사항에 적합합니다. WinUI 또는 다른 프레임워크로 마이그레이션하는 것을 고려해야 하나요?

WinForms가 요구 사항을 충족하고 팀이 익숙한 경우 기존 앱에 WinForms를 계속 사용할 수 있습니다. WinForms는 Windows 데스크톱 개발에 널리 사용되는 성숙하고 안정적인 프레임워크입니다.

WinForms 팀은 플랫폼에 계속 투자하고 있습니다. 현재 투자 영역은 다음과 같습니다.

  • 공용 컨트롤에 대한 비동기 지원
  • 다크 모드
  • 레이아웃 유연성
  • 데스크톱 보안 기능으로는 클립보드 액세스 같은 것이 있습니다.

플랫폼 간 네이티브 개발

Windows 대상으로 하는 플랫폼 간 네이티브 앱을 빌드하는 이유는 무엇입니까?

여러 OS 플랫폼에서 사용자를 대상으로 하는 경우 .NET MAUI 또는 React Native를 사용하여 플랫폼 간 앱을 빌드하면 다음과 같은 몇 가지 이점이 있습니다.

  • 도달 범위: 크로스 플랫폼 애플리케이션은 다양한 디바이스 및 운영 체제에서 더 넓은 사용자층에게 도달합니다.
  • 코드 재사용: 플랫폼 간에 코드를 다시 사용하면 개발 시간과 비용이 줄어듭니다. Windows, Android, iOS 및 macOS용으로 별도의 앱을 빌드하면 비용이 엄청나게 많이 들 수 있습니다.
  • 일관된 사용자 환경: 플랫폼 간 프레임워크는 플랫폼 전체에서 일관된 모양과 느낌을 제공하는 데 도움이 됩니다.
  • 통합: 플랫폼 간 앱은 여전히 플랫폼별 서비스와 통합하여 포괄적인 환경을 제공할 수 있습니다.
.NET MAUI 앱이 Windows 잘 실행될 것이라고 확신할 수 있나요?

Windows용 .NET MAUI 앱을 빌드할 때 출력은 WinUI 앱입니다. 개발 중에 .NET MAUI 플랫폼 간에 단일 .NET 환경을 제공하지만 내부적으로 플랫폼별 코드를 생성합니다. 이렇게 하면 .NET MAUI 앱이 각 플랫폼에서 잘 수행되고 네이티브 사용자 환경을 제공합니다.

.NET MAUI는 모든 플랫폼에서 네이티브 디바이스 API를 제공할 수 있나요?

.NET MAUI Windows, iOS, Android 및 macOS에서 통합된 .NET 환경을 제공합니다. 스토리지, 네트워킹 및 디바이스 센서와 같은 일반적인 기능을 위한 플랫폼 간 API를 제공합니다. 플랫폼별 API를 호출하거나 각 플랫폼에 대한 특수 구현을 제공할 수도 있습니다.

WinUI로 시작하고 나중에 플랫폼 간 시나리오를 대상으로 지정하려는 경우 .NET MAUI 통합할 수 있나요?

이때는 그렇지 않습니다. .NET MAUI Windows 실행할 때 WinUI를 사용하지만 여러 플랫폼을 대상으로 하는 팀은 .NET MAUI 또는 React Native for Desktop으로 시작해야 합니다.

우리 팀은 강력한 웹 프런트 엔드 개발 기술을 보유하고 있습니다. 데스크톱용 React Native 사용을 고려해야 하나요?

강력한 웹 개발 환경을 갖춘 팀은 데스크톱용 React Native를 고려할 수 있습니다. 여기에는 Windows용 React Native 및 macOS 포함됩니다. "한 번 학습, 어디서나 쓰기" 접근 방식을 사용하면 기존 JavaScript, TypeScript 및 React 기술을 사용하여 네이티브 Windows 및 macOS 앱을 빌드할 수 있습니다.

데스크톱용 React Native는 네이티브 기본 형식에 직접 UI를 렌더링하여 네이티브 성능 및 플랫폼 기능을 제공합니다.

시작하려면 React Native 데스크톱 문서를 참조하세요.

데스크톱용 React Native에서 지원하는 다른 Windows 디바이스는 없습니다

React Native 앱은 PC, 태블릿, 2-in-1, Xbox 및 혼합 현실 디바이스를 포함하여 Windows 10 이상에서 지원하는 모든 디바이스에 배포할 수 있습니다.

Windows 작업하고 Xbox 앱을 빌드하려면 어떤 앱을 사용해야 하나요?

앱에서 Xbox, HoloLens 또는 IoT를 지원해야 하는 경우 UWP를 사용하는 것이 좋습니다. Windows 앱 SDK 이러한 플랫폼을 지원하지 않습니다. 게임 개발의 경우 Microsoft 게임 개발 키트 사용합니다.

Windows 및 Surface Hub에서 작동하는 앱을 빌드하려면 어떤 것을 사용해야 하나요?

Windows 허브와 Surface Hub를 모두 대상으로 하는 경우 UWP를 사용하는 것이 좋습니다.

하이브리드 및 웹 개발

하이브리드 앱이란 무엇이며, 왜 빌드를 고려해야 하나요?

하이브리드 앱은 최상의 웹 및 네이티브 앱 개발을 혼합합니다. 해당 핵심은 HTML, CSS 및 JavaScript와 같은 웹 기술을 사용하여 빌드되고 특정 네이티브 플랫폼 기능 및 하드웨어에 access 제공하는 네이티브 컨테이너에 래핑됩니다. 앱 스토어를 통해 배포할 수도 있습니다.

주요 장점은 하이브리드 앱을 사용하면 여러 네이티브 플랫폼과 웹에서 실행할 수 있는 단일 앱을 빌드하여 개발 시간과 비용을 줄일 수 있다는 것입니다. 하이브리드 앱 개발 플랫폼의 예는 다음과 같습니다.

  • 데스크톱 앱용 Electron
  • 모바일 앱용 Ionic
  • .NET MAUI Blazor 하이브리드 플랫폼 간 앱용
Windows PWA(네이티브 느낌 프로그레시브 웹앱)를 빌드하려면 어떻게 해야 하나요?

Windows에서의 웹 개발 개요진보적 웹 앱 개요를 참조하세요.

.NET MAUI Blazor 하이브리드 앱은 무엇인가요?

.NET MAUI 사용하여 Blazor 앱은 Windows, iOS, Android 및 macOS에서 기본적으로 실행할 수 있습니다. 이를 통해 네이티브 플랫폼 기능에 대한 모든 액세스 권한으로 Blazor 및 .NET MAUI 구성 요소를 단일 네이티브 클라이언트 앱에 결합하는 하이브리드 클라이언트 앱을 만들 수 있습니다.

ASP.NET Core Blazor Hybrid 자세히 알아보세요.

.NET MAUI 하이브리드 앱의 웹 구성 요소는 Blazor로 만들어야 하나요?

아니요. .NET 9부터 .NET MAUI 네이티브 앱 내에서 다른 JavaScript 기반 UI를 호스팅할 수 있는 HybridWebView 컨트롤을 포함합니다.

이렇게 하면 .NET MAUI 앱 내에서 Angular, React, Vue 또는 기타 HTML/JavaScript 앱을 호스트할 수 있습니다. 하이브리드 컨트롤은 C# 및 JavaScript 간에 interop을 제공하므로 C# 코드는 JavaScript 함수를 호출할 수 있고 그 반대의 경우도 마찬가지입니다.

다른 네이티브 앱 형식이 Blazor 하이브리드 구성 요소를 호스트할 수 있나요?

예. WPF 및 WinForms 앱은 Blazor 하이브리드 구성 요소를 호스트하여 기존 앱에 최신 웹 UI를 추가할 수 있습니다. .NET Framework에서 빌드된 WPF 또는 WinForms 앱에는 지원되지 않습니다.

전체 앱이 하이브리드 앱이어야 하나요, 아니면 네이티브 및 하이브리드 구성 요소를 혼합하고 일치시킬 수 있나요?

네이티브 및 하이브리드 구성 요소는 앱 내에서 혼합할 수 있습니다. 예를 들어 하이브리드 구성 요소는 추가 기능을 제공하는 동안 .NET MAUI 구성 요소를 사용하여 앱의 핵심을 빌드할 수 있습니다. 이를 통해 네이티브 구성 요소의 성능과 기능을 하이브리드 구성 요소의 유연성 및 비용 효율성과 결합할 수 있습니다.

Windows 최신 브라우저에서 멋진 .NET 기반 웹앱을 빌드하기 위한 선택은 무엇인가요?

Web apps 모든 클라이언트 앱 플랫폼의 가장 광범위한 범위를 제공합니다. 아름다운 .NET 웹앱을 만드는 옵션은 다음과 같습니다.

  • ASP.NET Core 앱 (Razor Pages 사용)
  • ASP.NET Core MVC 앱
  • ASP.NET Core Blazor 앱은 호스팅 모델 옵션을 제공합니다.
    • 블레이저 웹어셈블리
    • Blazor Server

이제 Blazor 호스팅 모델을 구성 요소 수준에서 구성할 수 있으므로 Blazor Server 앱 내에서 Blazor WebAssembly 구성 요소를 호스팅하는 것과 같은 시나리오를 사용할 수 있습니다.

자세한 내용은 ASP.NET Core 설명서 참조하세요.

접근 방식을 선택하기와 Microsoft의 투자를 이해하기

Windows 대상으로 하는 앱을 빌드하기 위한 프레임워크 옵션이 너무 많습니다. 어떻게 결정합니까?

Windows 많은 기술을 지원하는 개방형 플랫폼입니다. 플랫폼을 선택하는 데 도움이 되는 몇 가지 기준은 다음과 같습니다.

  • Windows 우선 또는 플랫폼 간 빌드 중입니까?
  • .NET, JavaScript 등 이미 가지고 있는 언어나 기술은 무엇인가요?
  • Windows 특정 API에 액세스해야 합니까?
  • 앱의 요구 사항과 가장 일치하는 프레임워크의 기능은 무엇입니까?
  • 추가 비교 요인은 이 표를 참조하세요.

많은 비즈니스 앱의 경우 팀은 종종 기존 기술과 팀이 가장 편안하게 사용하는 것을 기반으로 선택합니다.

내 웹앱에 가장 적합한 개발 방법을 어떻게 선택할 수 있을까요?

웹앱에 대한 개발 방법을 선택할 때 다음을 고려합니다.

  • Blazor는 .NET 사용하여 프런트 엔드 웹앱을 빌드하는 데 권장됩니다. 이를 통해 .NET 사용하여 프런트 엔드와 백 엔드를 모두 빌드하고 시간과 비용을 절약할 수 있으며 엔터프라이즈 앱에 특히 적합합니다.
  • 기존 JavaScript 기술을 활용하거나 설정된 JS 라이브러리 또는 프레임워크와 통합해야 하는 경우에도 JavaScript web apps 여전히 의미가 있습니다.
  • Web Forms, MVC 또는 Razor Pages와 같은 이전 프레임워크를 사용하는 기존 앱은 계속 지원되며 계속 개발 및 유지 관리할 수 있습니다.
현재 WinUI를 사용하여 앱을 빌드하는 사람은 누구인가요?

현재 Adobe 및 Apple을 비롯한 많은 고객이 WinUI를 사용하여 빌드하고 있습니다.

Microsoft Windows 11 파일 탐색기 및 사진 앱과 같은 많은 WinUI 앱도 빌드했습니다.

누가 .NET MAUI 앱을 빌드하고 있습니까?

Microsoft 비롯한 많은 고객이 .NET MAUI 사용하여 플랫폼 간 앱을 빌드하고 있습니다. 예를 들어 Microsoft Azure 모바일 앱은 .NET MAUI 사용하여 빌드됩니다.

.NET 고객 쇼케이스 자세히 알아보세요.

오늘 누가 WPF 앱을 빌드하고 있습니까?

대부분의 Microsoft Visual Studio UI는 WPF 사용하여 빌드됩니다. Visual Studio IDE 자체는 복잡한 고성능 WPF 앱의 주요 예입니다.

현재 Blazor 앱을 빌드하는 사람은 누구인가요?

GE Digital의 FlightPulse 항공사 시스템은 Blazor를 사용하여 조종사가 보는 모든 것을 백 엔드 구성하여 센서 데이터와 분석을 조종사에게 직접 가져와 안전과 효율성을 개선합니다.

.NET 사이트에서 Blazor 고객 사례 더 보기.

언어 선택(.NET 및 C++)

Windows 앱에 C# 또는 C++를 사용해야 하나요?

대부분의 경우 C#(.NET)을 사용합니다. C#은 더 빠른 개발, 메모리 안전성, 풍부한 라이브러리 및 우수한 도구를 제공합니다. WinUI 3, WPF, WinForms 및 .NET MAUI 앱을 비롯한 대부분의 Windows 앱은 C#으로 가장 잘 빌드됩니다.

직접 하드웨어 액세스, 최소 런타임 오버헤드 또는 기존 C++ 코드베이스와의 interop이 필요한 경우 C++를 사용합니다. 일반적인 C++ 시나리오에는 DirectX(게임 엔진), 드라이버, 시스템 수준 유틸리티 및 성능에 중요한 구성 요소가 포함됩니다.

요인 C#(.NET) C++
개발 속도 ✅ 더 빠른 - 관리되는 메모리, 풍부한 에코시스템 ⚠️ 느린 - 수동 리소스 관리
런타임 성능 ✅최신 .NET에 매우 적합 (AOT, Span<T>) ✅ 최적 - GC 일시 중지 없음
메모리 안전성 ✅ 가비지 수집 ⚠️ 수동 - 누출 및 취약성 위험
Windows API 액세스 ✅ C#/WinRT 프로젝션을 통해 ✅ C++/WinRT 프로젝션을 통해
WinUI 3 지원 ✅ 전체 지원 ✅ C++/WinRT를 통한 전체 지원
크로스 플랫폼 ✅Windows, Linux, macOS에서 실행되는 .NET ✅ 플랫폼별 코드 사용
적합한 대상 비즈니스 앱, CRUD, 서비스, UI가 많은 앱 게임, 드라이버, 시스템 도구, 짧은 대기 시간

C#에서 앱을 빌드하고 P/Invoke(CsWin32) 또는 C ++/WinRT 구성 요소를 통해 성능에 중요한 네이티브 코드를 호출하는 두 가지 모두를 혼합할 수도 있습니다.

C#에서 Win32 API를 호출하려면 어떻게 해야 하나요?

빌드 시 형식이 안전한 P/Invoke 서명을 만드는 원본 생성기인 CsWin32를 사용합니다. Microsoft.Windows.CsWin32 NuGet 패키지를 추가하고, NativeMethods.txt 파일에 필요한 API를 나열한 다음, 생성된 PInvoke 클래스를 통해 이를 호출합니다.

CsWin32는 손으로 쓴 [DllImport] 선언을 대체하고 WinUI, WPF, WinForms 또는 콘솔과 같은 C# 프로젝트에서 작동합니다. 단계별 연습은 C# Windows 앱(CsWin32)에서 Win32 API 호출을 참조하세요.

C++/WinRT란 무엇이며 언제 사용해야 하나요?

C++/WinRT는 Windows 런타임 API에 대한 표준 C++17 언어 프로젝션입니다. WinRT API를 사용하거나 작성하는 C++에서 Windows 앱을 빌드할 때 사용합니다. C++/CX 및 Windows 런타임 C++ 템플릿 라이브러리(WRL)를 대체합니다.

다음과 같은 경우 C++/WinRT를 선택합니다.

  • C++ WinUI 3 앱을 빌드하고 있습니다.
  • 다른 언어에서 사용하는 Windows 런타임 구성 요소를 작성해야 합니다.
  • C++/CX에서 포팅하는 중
C#/WinRT란 무엇이며 언제 필요한가요?

C#/WinRT 는 C#에 대한 WinRT 프로젝션 지원을 제공합니다. 대부분의 경우 직접 상호 작용하지 않습니다. Windows 대상으로 하는 .NET 앱은 TFM(대상 프레임워크 모니커)을 통해 WinRT API에 자동으로 액세스합니다. C#에서 Windows 런타임 구성 요소를 작성하거나 타사 WinRT 구성 요소에 대한 interop 어셈블리를 생성할 때 C#/WinRT가 명시적으로 필요합니다.

패키징, 배포 및 업데이트

패키지, 패키지되지 않은 앱 및 외부 위치로 패키지된 앱의 차이점은 무엇인가요?

패키지된 앱에는 MSIX와 같은 패키지의 파일, ID 및 배포 정보가 포함됩니다. 패키지되지 않은 앱은 Windows 패키지 시스템 외부의 설치 관리자 또는 배포 프로세스를 사용하며 기본적으로 패키지 ID가 없습니다. 외부 위치로 패키지된 앱은 외부에 있는 이진 파일과 기존 설치 관리자 및 업데이트 프로세스를 유지하면서 작은 ID 패키지를 사용합니다.

요구 사항 및 장단분에 대한 패키징 개요 를 참조하세요.

패키지 ID가 필요한가요?

앱에서 사용하는 Windows 기능에 따라 달라집니다. 일부 백그라운드 실행, 푸시 알림, 셸 확장, 연결 및 Windows AI 시나리오에는 패키지 ID가 필요합니다. WinUI 및 로컬 앱 알림을 비롯한 다른 Windows 앱 SDK 기능은 이 기능 없이도 작동할 수 있습니다.

패키지 ID가 필요한 기능을 참조하세요. ID가 필요하지만 기존 설치 관리자를 유지해야 하는 경우 외부 위치로 패키징하는 것이 좋습니다.

프레임워크 종속 배포와 자체 포함 배포의 차이점은 무엇인가요?

프레임워크 종속 앱은 디바이스에 별도로 설치된 Windows 앱 SDK 런타임 패키지를 사용합니다. 이렇게 하면 앱의 배포 크기가 줄어듭니다. 자체 포함 앱은 Windows 앱 SDK Framework 패키지 콘텐츠를 앱과 함께 전달하므로 배포 크기는 증가하지만 앱은 이러한 프레임워크 구성 요소를 서비스할 수 있습니다.

Singleton 패키지와 같은 추가 MSIX 패키지에 의존하는 API는 자체 포함된 앱에서도 별도의 배포 또는 런타임 지원 검사를 요구할 수 있습니다. 패키징 및 런타임 배포는 별도의 결정입니다. Windows 앱 SDK 배포 개요를 참조하세요.

최종 사용자에 대해 WinUI 앱이 자동으로 업데이트될까요?

WinUI 앱은 스토어, .appinstaller 파일 또는 기존 MSI 또는 setup.exe 패키지를 통해 배달할 수 있습니다. 스토어 및 AppInstaller는 자동 업데이트를 사용하도록 설정된 최종 사용자를 위한 자동 업데이트를 지원하지만 MSI/setup.exe 앱은 자체 업데이트 메커니즘을 제공해야 합니다.

MSBuild를 사용하지 않고 Windows 앱 SDK 사용할 수 있나요?

WinUI XAML 프로젝트에는 MSBuild가 필요하지만 Visual Studio는 필요하지 않습니다. .NET SDK 및 WinUI 템플릿을 사용하여 명령줄에서 MSBuild를 dotnet build 실행할 수 있습니다. WinUI를 사용하지 않는 Windows 앱 SDK 구성 요소를 지원되는 MSBuild 기반 데스크톱 프로젝트에 통합할 수도 있습니다.

윈도우 인공지능

Windows AI API, Foundry Local 및 Windows ML 중에서 선택하려면 어떻게 해야 하나요?

Windows AI API를 사용하여 즉시 사용할 수 있는 Windows 관리형 AI 기능을 사용할 수 있습니다. Foundry Local을 사용하여 지원되는 언어 및 음성 모델을 로컬로 검색, 다운로드 및 실행합니다. Windows ML을 사용하여 사용 가능한 CPU, GPU 및 NPU 하드웨어에 대한 실행 공급자와 함께 사용자 지정 ONNX 모델을 실행합니다.

하드웨어, Windows 버전, 패키지 ID, 모델 및 배포 요구 사항은 다양합니다. 모든 WINDOWS AI 기능을 모든 PC에서 사용할 수 있다고 가정하는 대신 선택한 API 또는 런타임에 대한 현재 요구 사항을 확인합니다.

AI 지원 기능을 배송하기 전에 고려해야 할 사항은 무엇인가요?

기능의 의도된 사용 및 제한 사항을 정의하고, 대표 데이터로 품질 및 안전을 평가하고, 적절한 경우 AI 동작을 공개하고, 사용자 데이터를 보호하며, 모델 또는 필수 하드웨어를 사용할 수 없는 경우 대체를 제공합니다. Windows에서의 책임 있는 생성형 AI 개발을 참조하세요.

성능 및 최적화

내 Windows 앱을 최종 사용자에게 기분 좋게 만들려면 무엇을 할 수 있나요?

Windows 애플리케이션 개발 - 모범 사례Windows 앱 성능 및 기본 사항 개요 참조하세요.

Compatibility

내 사용자가 내 WinUI 앱을 사용하도록 Windows 업데이트해야 하는 경우?

Windows 앱 SDK 앱은 지원되는 Windows 10 버전 1809 이상 버전에서 실행할 수 있지만 개별 API 및 앱 기능에는 최신 Windows 릴리스 또는 하드웨어가 필요할 수 있습니다. 프로덕션 지원을 위해 디바이스는 아직 지원 중인 Windows 버전과 버전을 실행해야 하며, 앱은 현재 서비스 업데이트와 함께 지원되는 Windows 앱 SDK 릴리스를 사용해야 합니다. Windows 앱 SDK 지원릴리스 채널을 참조하세요.

WinUI 앱으로 Arm64를 대상으로 지정할 수 있나요?

예. 최상의 성능과 효율성을 위해 네이티브 Arm64 앱을 빌드합니다. x64 종속성이 있는 대규모 C++ 코드베이스의 경우 Arm64EC 를 사용하면 모듈을 증분 방식으로 마이그레이션할 수 있습니다. arm의 Windows 11 Prism 에뮬레이션을 통해 많은 기존 x86 및 x64 앱을 실행할 수도 있지만 대표적인 Arm 디바이스에서 성능 및 호환성을 테스트해야 합니다.

사용 중단 및 마이그레이션

UWP용 UWP/WinUI는 더 이상 사용되지 않는가요?

아니요. UWP용 UWP 및 WinUI는 계속 지원되며 버그, 안정성 및 보안 수정 사항을 받습니다. 그러나 WinUI 및 Windows 앱 SDK 새로운 범용 Windows 데스크톱 앱에 권장되는 경로이며 대부분의 새로운 플랫폼 투자를 받습니다.

Native AOT를 사용한 최신 .NET 대한 UWP 지원은 일반적으로 사용할 수 있으며 2026년 Visual Studio 기본 C# UWP 프로젝트 형식입니다. 기존 UWP 앱을 .NET Native에서 최신 .NET 이동하는 것은 UI를 WinUI로 마이그레이션하는 별도의 현대화 단계입니다. .NET 및 Native AOT를 사용하여 UWP 앱 현대화를 참조하세요.

UWP용 UWP/WinUI 앱을 WinUI로 마이그레이션해야 하는 경우는 언제인가요?

UWP 개발자는 UWP 및 해당 기능 집합에 만족하는 경우 마이그레이션해야 한다는 압박감을 느끼지 않아야 합니다. 많은 앱의 경우 UWP를 유지하는 것이 좋습니다.

최신 Windows 플랫폼과 .NET 투자를 활용하려는 앱은 Windows 앱 SDK 전환하는 것을 고려해야 합니다. UWP에서 Windows 앱 SDK로 이전하는 방법을 참조하세요.

UWP + WinUI 앱을 WinUI로 마이그레이션하지 말아야 할 때는 언제인가요?

Xbox, Surface Hub 또는 HoloLens 빌드하는 경우 UWP를 계속 사용합니다.

WPF는 더 이상 사용되지 않습니까?

아니요. WPF 지원되고 권장되며 기능 업데이트를 계속 받습니다. GitHub에서 WPF 로드맵을 참조하세요.

WinForms는 더 이상 사용되지 않는가요?

아니요. WinForms는 지원되며 기능 업데이트를 계속 받습니다. Windows Forms 로드맵을 GitHub에서 참조하세요.

WinRT(Windows 런타임)가 더 이상 사용되지 않는가요?

아니요. WinRT 는 여러 언어에서 interop을 사용하도록 설정하는 ABI(애플리케이션 이진 인터페이스)입니다. WinRT는 COM의 진화이며, Windows 앱 SDK WinRT API를 통해 대부분의 기능을 제공합니다.

출시 정보

Windows 앱 SDK의 릴리스 정보를 어디에서 찾을 수 있습니까?

최신 릴리스 정보는 새로운 기능 페이지에서 찾을 수 있습니다.