이 FAQ는 프로젝트에 적합한 프레임워크를 선택하는 지침을 포함하여 Windows 애플리케이션 개발에 대한 일반적인 질문에 대한 답변을 제공합니다. 다음 내용을 다룹니다.
- 시작 및 Windows 앱 개발 환경
- WinUI, WPF(Windows Presentation Foundation) 및 WinForms(Windows Forms)를 사용한 네이티브 Windows 전용 앱 개발.
- Windows SDK(소프트웨어 개발 키트) 및 Windows 앱 SDK.
- 플랫폼 간 개발 전략의 일환으로 Windows를 대상으로 지정합니다.
- .NET MAUI, Blazor 및 ASP.NET Core를 사용한 하이브리드 및 웹앱 개발
- Microsoft의 투자를 이해하면서 접근 방식을 선택하는 방법
Windows 앱 개발 환경
Windows 개발 기술에 대한 간단한 개요는 어디에서 찾을 수 있나요?
Windows 개발자를 위한 최신 옵션에 대한 훌륭한 검토를 위해 최신 Windows 개발자 채팅 에피소드를 시청하세요. WinUI, .NET MAUI, React Native, Blazor 및 PWA(프로그레시브 웹앱)에 대해 논의하는 이상적인 개발 플랫폼선택합니다.
Windows 개발자를 위한 앱 개발 옵션
개요를 참조할 수도 있습니다.
클라우드 서비스 시대에 최신 디지털 변환에 클라이언트 앱 개발이 여전히 중요한 이유는 무엇인가요?
클라우드 서비스 시대에 클라이언트 앱 개발은 최신 디지털 변환의 중요한 구성 요소로 남아 있습니다. 개발자에게 클라이언트 애플리케이션 빌드는 도달 범위뿐만 아니라 사용자 디바이스에서 반응형 의미 있는 상호 작용을 제공하는 데 필수적입니다.
클라이언트 앱이 중요한 이유는 다음과 같습니다.
- 디바이스 도달률: 전 세계적으로 15억 개 이상의 Windows 디바이스와 50억 개 이상의 Android 및 iOS 디바이스를 사용하여 클라이언트 앱을 통해 사용자가 선택한 디바이스에서 사용자에게 애플리케이션을 직접 가져올 수 있습니다.
- Gateway to Intelligent Services: 클라이언트 앱은 종종 사용자가 서비스와의 첫 번째 상호 작용입니다. 지능형 기능을 소개하고 제품을 다른 사용자와 차별화할 수 있는 풍부한 대화형 인터페이스를 제공합니다.
- 클라우드 통합을 사용한 확장성 : 잘 통합된 클라이언트 앱은 백 엔드 클라우드 서비스와 손쉽게 동기화할 수 있으므로 사용자 기반이 증가함에 따라 실시간 데이터 액세스 및 원활한 확장성을 사용할 수 있습니다.
- 향상된 생산성 및 사용자 충성도: 신중하게 디자인된 앱은 생산성을 향상시키고 사용자가 시간이 지남에 따라 제품 또는 서비스에 계속 참여할 수 있습니다.
네이티브 Windows 전용 앱 개발
Windows 앱 SDK란?
Windows 앱 SDK는 이전 버전(Windows 10 1809까지)과 호환되는 아름다운 최신 데스크톱 앱을 만들 수 있는 Windows 애플리케이션 개발 플랫폼입니다. WinUI는 Windows 앱 SDK와 함께 제공되는 UI 프레임워크입니다.
Windows 앱 SDK와 Windows SDK의 차이점은 무엇인가요?
둘 다 Windows 앱을 빌드할 수 있는 SDK(소프트웨어 개발 키트)입니다.
Windows 앱 SDK는 Windows 버전(Windows 10 1809까지)에 설치할 수 있는 최신 데스크톱 앱을 빌드할 수 있는 새로운 개발 플랫폼입니다. Windows 앱 SDK를 사용하여 빌드할 때 최신 Windows 개발 플랫폼 기능을 사용할 수 있습니다. Windows 앱 SDK에는 WinUI가 포함됩니다.
Windows SDK는 UWP 앱 및 Win32/데스크톱 앱을 빌드할 수 있는 개발 플랫폼입니다. 특정 버전의 OS에 결합된 Windows API를 중심으로 설계되었습니다.
Windows 앱 SDK는 Windows SDK를 대체하지 않습니다. 대신 Windows 앱 SDK는 Windows SDK를 보완합니다. Windows SDK를 사용하여 이미 액세스할 수 있는 다양한 Windows OS API 카탈로그를 중심으로 편리하고 OS 분리된 추상화를 제공합니다. Windows 앱 SDK를 사용하여 빌드된 앱은 기능 요구 사항에 따라 Windows SDK API를 계속 사용할 수 있습니다. 시간이 지남에 따라 더 많은 Windows SDK 기능이 Windows 앱 SDK로 이동합니다.
Windows 전용 앱을 개발하기 위해 새 팀을 구성하고 있습니다. WinUI, WPF 또는 WinForms와 같은 네이티브 Windows 프레임워크를 사용하여 개발하도록 선택해야 하는 이유는 무엇인가요?
Windows 전용 앱에 대한 네이티브 Windows 프레임워크를 선택하는 몇 가지 이유는 다음과 같습니다.
- 성능: 네이티브 Windows 프레임워크는 최신 Windows 하드웨어를 활용하도록 최적화되어 빠르고 응답성이 뛰어난 사용자 경험을 제공합니다.
- 통합: Windows는 Windows에서만 사용할 수 있는 정교한 환경을 가능하게 하는 다양한 API와 함께 제공됩니다. 네이티브 프레임워크는 이러한 기능 및 API와 긴밀한 통합을 제공합니다.
- 네이티브 사용자 환경: 네이티브 프레임워크는 Windows 디바이스에서 일관된 환경을 제공하여 앱이 어디서나 멋지게 보이고 작동하도록 합니다.
- 오프라인 지원: 네이티브 프레임워크는 오프라인 시나리오를 지원하므로 인터넷 연결 없이도 앱이 작동할 수 있습니다.
- 수익 창출: 네이티브 프레임워크는 Microsoft에서 적극적으로 유지 관리 및 지원하므로 최신 업데이트 및 기능에 액세스할 수 있습니다.
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를 사용할 수 없습니다. XAML islands라는 기능은 다른 UI 프레임워크(WPF, Win32)에서 WinUI 콘텐츠를 호스트하기 위해 개발 중입니다.
Windows 앱 SDK의 요소는 기존 앱이 빌드된 방식에 따라 데스크톱 앱에서 자주 사용할 수 있습니다. UWP 앱은 Windows 앱 SDK에서 지원되지 않습니다.
즉 , WPF/MFC/WinForms 앱은 WinUI와 관련이 없는 Windows 앱 SDK API를 사용할 수 있습니다. 예로는 앱 수명 주기, 창 및 알림 메시지 등이 있습니다.
자세한 내용은 기존 프로젝트에서 Windows 앱 SDK 사용을 참조하세요.
Visual Studio를 사용하여 WinUI 앱을 빌드해야 하나요?
WinUI 개발에는 Visual Studio 2022 버전 17.10 이상을 사용하는 것이 좋습니다. 최신 Visual Studio 버전은 핫 다시 로드와 같은 풍부한 개발 기능을 제공하며 설치를 간소화하는 WinUI 애플리케이션 개발 워크로드를 포함합니다.
다른 IDE 및 워크플로가 작동할 수 있지만 Visual Studio 는 현재 WinUI에 대해 공식적으로 지원되는 유일한 IDE입니다. XAML 또는 WinUI 프로젝트를 컴파일하려면 MSBuild 가 필요합니다.
WinUI, WinUI 2 및 WinUI 3의 차이점은 무엇인가요?
WinUI 는 Windows 앱 개발을 위한 최신 네이티브 UI 프레임워크입니다. 시각적으로 매력적이고 대화형 Windows 앱을 만들기 위한 최신의 유연한 UI 프레임워크를 제공합니다. WinUI는 Windows 앱 SDK의 일부이며 최신 버전의 Windows에서 가장 잘 작동합니다.
WinUI 2 는 UWP를 기반으로 빌드된 UI 컨트롤 및 스타일 집합입니다. UWP 앱에 대한 현대적인 모양과 느낌을 제공하며 Windows 10용으로 설계되었습니다.
WinUI 3 은 Windows 앱 SDK의 일부로 처음 제공되었을 때 WinUI의 이전 이름이었습니다.
요약하자면, WinUI는 WinUI 프레임워크의 최신 고급 버전이고, WinUI 2는 UWP용 컨트롤 라이브러리이며, WinUI 3은 WinUI의 이전 레이블이었습니다. WinUI 2를 구체적으로 참조하지 않는 한 앞으로 "WinUI"를 사용합니다.
Windows 앱 SDK 및 WinUI를 사용하여 앱을 빌드할 때 "WinUI 앱"을 빌드하고 있나요?
예 - "WinUI 앱"이 권장되는 용어입니다. WinUI 2는 앱 유형이 아니라 UWP 앱에서 사용되는 구성 요소 집합이므로 WinUI 앱을 "WinUI 앱"이라고 합니다.
WinUI 2 구성 요소를 WinUI 구성 요소로 점진적으로 대체하여 WinUI 2 컨트롤을 사용하여 UWP 앱을 WinUI로 증분 업데이트할 수 있나요?
아니요. Windows 앱 SDK는 UWP 앱에서 사용할 수 없으며 WinUI 2는 WinUI와 혼합할 수 없습니다. UWP에서 Windows 앱 SDK로 마이그레이션을 참조하세요.
UWP 앱을 WinUI로 마이그레이션하는 것이 얼마나 어려운가요?
UI 구성 요소 마이그레이션은 일반적으로 간단합니다(C# 및 C++/WinRT의 경우). 그렇지 않으면 마이그레이션 비용은 주로 다음 사항에 따라 달라집니다.
- 프로젝트 파일 및 MSBuild 사용자 지정: 마이그레이션 작업은 고급 MSBuild 사용량에 따라 달라집니다.
- .NET API 마이그레이션: .NET을 사용하는 UWP 앱은 .NET 6 이상으로 이동해야 합니다. 대부분의 경우 .NET 6을 채택하는 것은 간단합니다.
- UI 구성 요소 라이브러리: 라이브러리에는 WinUI를 대상으로 하는 버전이 있어야 합니다.
- 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 디자이너가 있나요?
아직 아니에요. 이는 WinUI 개발자 환경의 알려진 격차입니다. XAML 핫 다시 로드와 같은 도구는 여러 시나리오에서 도움이 될 수 있습니다. Windows 앱 SDK 1.7에서 WinUI용 Visual Studio UI 디자이너에서 작업이 시작되었지만 아직 릴리스 일정은 없습니다.
Windows 앱 SDK에 WinUI가 포함되어 있나요?
예. WinUI는 Windows 앱 SDK의 일부로 제공됩니다.
Windows 앱 SDK에 WinUI 2가 포함되어 있나요?
아니요. WinUI 2는 UWP 플랫폼의 일부입니다.
WinUI 2와 WinUI는 동일한 기술을 기반으로 합니까?
그렇지 않습니다. WinUI는 원래 WinUI 2 코드베이스에서 시작되었지만 고유한 기술입니다. 둘 다 .NET 및 C++에서 작동하는 XAML 기반 UI 프레임워크이지만 WinUI 2와 WinUI는 서로 호환되지 않습니다.
Windows 앱 SDK를 사용하지 않고 WinUI를 사용할 수 있나요?
아니요. WinUI는 Windows 앱 SDK의 일부로 제공됩니다.
패키지되지 않은 앱에서 WinUI를 사용할 수 있나요?
예. WinUI를 포함한 Windows 앱 SDK의 모든 기술은 패키지되지 않은 앱에서 작동합니다.
XAML Islands와 WinUI의 차이점은 무엇인가요?
XAML Islands를 사용하면 WinForms 및 WPF와 같은 다른 프레임워크에서 기존 Win32 UI와 함께 최신 XAML 기반 컨트롤을 호스트할 수 있습니다.
현재 XAML Islands는 대부분의 시스템 XAML 및 WinUI 2 컨트롤을 지원합니다. 자세한 내용은 데스크톱 앱(XAML Islands)의 호스트 WinRT XAML 컨트롤 을 참조하세요. WinUI 컨트롤 호스팅 지원은 Windows 앱 SDK 1.4부터 사용할 수 있습니다.
WinUI 앱을 만드는 경우 Windows 11 및 Windows 10 모두에서 최신으로 표시될까요?
예. 앱의 UI는 패키지된 시나리오와 패키지되지 않은 시나리오 모두에서 지원되는 모든 Windows 11 및 Windows 10 버전에서 최신 Fluent UI 디자인 원칙을 버전 1809까지 상속합니다.
Windows 앱 SDK로 빌드된 앱에서 Mica 또는 Acrylic 배경을 사용할 수 있나요?
예. Windows 11용 데스크톱 앱에서 Mica 또는 Acrylic 자료 적용을 참조하십시오.
WinUI 샘플은 어디에서 찾을 수 있나요?
샘플 및 리소스를 참조하십시오. 주목할 만한 리포지토리:
- WindowsAppSDK 샘플: 특정 Windows 앱 SDK API 세트를 사용하는 방법을 보여줍니다.
- Windows 항목별 샘플: WinUI 앱 만들기 자습서에 사용된 WinUI 노트 샘플을 포함합니다.
- WinUI 갤러리: WinUI 및 Windows 앱 SDK를 소개합니다. Microsoft Store에서도 사용할 수 있습니다.
WPF에 이미 많은 투자를 한 경우 WPF를 계속 사용하거나 WinUI로 마이그레이션하는 것을 고려해야 하나요?
WPF에 이미 많은 투자를 한 경우 기존 앱에 계속 사용할 수 있습니다. WPF는 Windows 데스크톱 앱을 빌드하는 데 널리 사용되는 성숙하고 안정적인 프레임워크입니다.
.NET 업그레이드 도우미를 사용하여 .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 환경을 제공합니다. 60개가 넘는 플랫폼별 API를 단일 플랫폼 간 API 집합으로 추상화하여 스토리지, 네트워킹 및 디바이스 센서와 같은 영역을 다룹니다. 종속성 주입을 사용하여 플랫폼별 특수 구현을 제공하는 추가 플랫폼별 API에 액세스할 수도 있습니다.
WinUI로 시작하고, 결국 플랫폼 간 시나리오를 대상으로 지정하려는 경우 나중에 .NET MAUI를 통합할 수 있나요?
이때는 그렇지 않습니다. .NET MAUI는 Windows에서 실행할 때 WinUI를 사용하지만 여러 플랫폼을 대상으로 하는 팀은 .NET MAUI 또는 데스크톱용 React Native로 시작해야 합니다.
우리 팀은 강력한 웹 프런트 엔드 개발 기술을 보유하고 있습니다. 데스크톱용 React Native 사용을 고려해야 하나요?
강력한 웹 개발 환경을 갖춘 팀은 데스크톱용 React Native를 고려할 수 있습니다. 여기에는 Windows 및 macOS용 React Native가 포함됩니다. "한 번 학습, 어디서나 쓰기" 접근 방식을 사용하면 기존 JavaScript, TypeScript 및 React 기술을 사용하여 네이티브 Windows 및 macOS 앱을 빌드할 수 있습니다.
데스크톱용 React Native는 네이티브 기본 형식에 직접 UI를 렌더링하여 네이티브 성능 및 플랫폼 기능을 제공합니다.
시작하려면 데스크톱용 React Native 설명서를 참조하세요.
다른 Windows 디바이스가 데스크톱용 React Native에서 지원되는가요?
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와 같은 웹 기술을 사용하여 빌드되고 특정 네이티브 플랫폼 기능 및 하드웨어에 대한 액세스를 제공하는 네이티브 컨테이너에 래핑됩니다. 앱 스토어를 통해 배포할 수도 있습니다.
주요 장점은 하이브리드 앱을 사용하면 여러 네이티브 플랫폼과 웹에서 실행할 수 있는 단일 앱을 빌드하여 개발 시간과 비용을 줄일 수 있다는 것입니다. 하이브리드 앱 개발 플랫폼의 예는 다음과 같습니다.
- 데스크톱 앱용 Electron
- 모바일 앱용 Ionic
- 플랫폼 간 앱용 .NET MAUI Blazor 하이브리드
Windows에서 네이티브 느낌의 PWA(프로그레시브 웹앱)를 빌드하려면 어떻게 해야 하나요?
Windows에서 웹 개발 및 프로그레시브 Web Apps 개요를 참조하세요.
.NET MAUI Blazor 하이브리드 앱이란?
.NET MAUI를 사용하면 Blazor 앱은 Windows, iOS, Android 및 macOS에서 기본적으로 실행할 수 있습니다. 이를 통해 네이티브 플랫폼 기능에 대한 모든 액세스 권한으로 Blazor 및 .NET MAUI 구성 요소를 단일 네이티브 클라이언트 앱에 결합하는 하이브리드 클라이언트 앱을 만들 수 있습니다.
ASP.NET Core Blazor 하이브리드에 대해 자세히 알아보세요.
Blazor를 사용하여 .NET MAUI 하이브리드 앱의 웹 구성 요소를 만들어야 합니까?
아니요. .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 기반 웹앱
웹앱은 모든 클라이언트 앱 플랫폼의 가장 광범위한 범위를 제공합니다. 아름다운 .NET 웹앱을 만드는 옵션은 다음과 같습니다.
- Razor Pages를 사용하여 핵심 앱 ASP.NET
- Core MVC 앱 ASP.NET
- 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 Forms, MVC 또는 Razor Pages와 같은 이전 프레임워크를 사용하는 기존 앱은 계속 지원되며 계속 개발 및 유지 관리할 수 있습니다.
현재 WinUI를 사용하여 앱을 빌드하는 사람은 누구인가요?
현재 Adobe 및 Apple을 비롯한 많은 고객이 WinUI를 사용하여 빌드하고 있습니다.
- Adobe Fresco, 무료 그리기 및 페인팅 앱.
- Apple의 Apple Music, Apple TV 및 Apple Devices 앱은 WinUI 및 Windows 앱 SDK를 사용하여 빌드되었습니다.
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 고객 스토리를 자세히 알아보세요.
UWP 및 WinUI 2
UWP 앱을 Microsoft Store 외부에 배포할 수 있나요?
예. MSIX 패키지가 서명된 경우, 서명 인증서는 대상 디바이스에서 유효하고 신뢰할 수 있어야 합니다.
UWP XAML UI 컨트롤을 Win32, WPF 또는 WinForms UI 컨트롤과 혼합할 수 있나요?
예 - XAML Islands를 사용하면 이 기능을 사용할 수 있습니다. XAML Islands에 대한 자세한 내용을 참조하세요.
패키징, 배포 및 업데이트
패키지, 패키지되지 않은 앱 및 외부 위치로 패키지된 앱의 차이점은 무엇인가요?
패키징된, 비패키징된, 외부 위치와 함께 패키징된 앱의 정의는 배포 개요를 참조하십시오. 이 항목에서는 각 옵션의 장점과 단점도 설명합니다.
최종 사용자에 대해 WinUI 앱이 자동으로 업데이트될까요?
WinUI 앱은 스토어, .appinstaller 파일 또는 기존 MSI 또는 setup.exe 패키지를 통해 배달할 수 있습니다. 스토어 및 AppInstaller는 자동 업데이트를 사용하도록 설정된 최종 사용자를 위한 자동 업데이트를 지원하지만 MSI/setup.exe 앱은 자체 업데이트 메커니즘을 제공해야 합니다.
MSBuild를 사용하지 않고 Windows 앱 SDK를 사용할 수 있나요?
일반적으로, 아니요. WinUI 및 Windows 앱 SDK에는 MSBuild가 필요하므로 Visual Studio 는 이를 사용하여 개발하기 위한 필수 구성 요소입니다. 기술적으로 다른 도구 체인에서 WinUI를 사용하지 않는 Windows 앱 SDK 앱을 빌드할 수 있지만 지원되지 않습니다.
성능 및 최적화
최종 사용자에게 Windows 앱을 기분 좋게 만들려면 어떻게 해야 하나요?
Windows에 적합한 앱 만들기를 참조하세요.
Compatibility
내 사용자가 내 WinUI 앱을 사용하도록 Windows를 업데이트해야 합니까?
Windows 10 버전 1809 이상을 사용하는 사용자는 OS를 업데이트하지 않고 WinUI 앱을 설치할 수 있습니다.
WinUI 앱으로 Arm64를 대상으로 지정할 수 있나요?
예.
사용 중단 및 마이그레이션
UWP/WinUI 2는 더 이상 사용되지 않는가요?
아니요. UWP 및 WinUI 2는 여전히 지원되며 버그, 안정성 및 보안 수정 사항을 계속 받습니다. 그러나 대부분의 새로운 기능과 기능은 WinUI에 추가됩니다.
.NET 9에 대한 UWP 지원을 사용할 수 있습니다. 이 옵션은 최신 .NET 버전을 사용하는 UWP 앱에 대한 현대화 경로를 제공합니다.
.NET 9 UWP 지원의 목표는 다음과 같습니다.
- WinUI로 이동하려는 개발자에게 더 나은 마이그레이션 경로를 제공합니다.
- 개발자가 최신 .NET 및 C# 기능을 활용할 수 있도록 .NET 네이티브에 대한 종속성을 제거합니다.
자세한 내용은 블로그 게시물: .NET 9 및 Native AOT에 대한 미리 보기 UWP 지원을 사용하여 UWP 앱 현대화를 참조하세요.
UWP/WinUI 2 앱을 WinUI로 마이그레이션해야 하는 경우는 언제인가요?
UWP 개발자는 UWP 및 해당 기능 집합에 만족하는 경우 마이그레이션해야 한다는 압박감을 느끼지 않아야 합니다. 많은 앱의 경우 UWP를 유지하는 것이 좋습니다.
최신 Windows 플랫폼 및 .NET 투자를 활용하려는 앱은 Windows 앱 SDK로 이동하는 것을 고려해야 합니다. UWP에서 Windows 앱 SDK로 마이그레이션을 참조하세요.
UWP + WinUI 2 앱을 WinUI로 마이그레이션하지 않아야 하는 경우는 언제인가요?
Xbox, Surface Hub 또는 HoloLens용으로 빌드하는 경우 UWP를 계속 사용합니다.
WPF는 더 이상 사용되지 않는가요?
아니요. WPF는 지원되고 권장되며 기능 업데이트를 계속 받습니다. GitHub
WPF 로드맵을 참조하세요.
WinForms는 더 이상 사용되지 않는가요?
아니요. WinForms는 지원되며 기능 업데이트를 계속 받습니다. GitHub
Windows Forms 로드맵을 참조하세요.
WinRT(Windows 런타임)가 더 이상 사용되지 않는가요?
아니요. WinRT 는 여러 언어에서 interop을 사용하도록 설정하는 ABI(애플리케이션 이진 인터페이스)입니다. WinRT는 COM의 진화이며 Windows 앱 SDK는 WinRT API를 통해 대부분의 기능을 제공합니다.
출시 정보
Windows 앱 SDK에 대한 릴리스 정보는 어디에서 찾을 수 있나요?
최신 릴리스 정보는 새로운 기능 페이지에서 찾을 수 있습니다.
관련 콘텐츠
Windows developer