프로젝트 리유니언 0.5를 사용하여 데스크톱 Windows 앱 빌드Build desktop Windows apps with Project Reunion 0.5

프로젝트 리유니언은 Windows 앱 개발 플랫폼의 차세대 발전상을 보여주는 새로운 개발자 구성 요소 및 도구 세트입니다.Project Reunion is a set of new developer components and tools that represent the next evolution in the Windows app development platform. 프로젝트 리유니언은 광범위한 대상 Windows 10 OS 버전의 모든 앱에서 일관적인 방식으로 사용할 수 있는 통합 API 및 도구 세트를 제공합니다.Project Reunion provides a unified set of APIs and tools that can be used in a consistent way by any desktop app on a broad set of target Windows 10 OS versions.

프로젝트 리유니언은 .NET(Windows Forms 및 WPF 포함)이나 C++ 데스크톱(Win32) 같은 기존 데스크톱 Windows 앱 플랫폼과 프레임워크를 대체하지 않습니다.Project Reunion does not replace the existing desktop Windows app platforms and frameworks such as .NET (including Windows Forms and WPF) and C++ desktop (Win32). 대신 개발자가 이러한 기존 플랫폼에서 신뢰할 수 있는 공통 API 및 도구 집합으로 이러한 플랫폼을 보완합니다.Instead, it complements these existing platforms with a common set of APIs and tools that developers can rely on across these platforms. 자세한 내용은 프로젝트 리유니언의 이점을 참조하세요.For more details, see Benefits of Project Reunion.

참고

프로젝트 리유니언 0.5는 프로덕션 환경에서 MSIX로 패키징된 데스크톱 앱(C# .NET 5 또는 C++ 데스크톱)에 사용할 수 있습니다.Project Reunion 0.5 is supported for use in MSIX-packaged desktop apps (C# .NET 5 or C++ desktop) in production environments. 프로젝트 리유니언 0.5를 사용하는 패키징된 데스크톱 앱을 Microsoft Store에 게시할 수 있습니다.Packaged desktop apps that use Project Reunion 0.5 can be published to the Microsoft Store. UWP 앱의 경우 프로젝트 리유니언 0.5가 미리 보기로만 제공됩니다.For UWP apps, Project Reunion 0.5 is available only as a preview. 이 릴리스는 프로덕션 환경에서 사용되는 UWP 앱에 지원되지 않습니다.This release is not supported for UWP apps that are used in production environments.

프로젝트 리유니언 은 이후 릴리스에서 변경될 수 있는 코드 이름입니다.Project Reunion is a code name that may change in a future release.

개요Overview

프로젝트 리유니언은 새 프로젝트에서 프로젝트 리유니언 구성 요소를 사용하도록 구성된 프로젝트 템플릿을 포함하는 Visual Studio 2019에 대한 확장을 제공합니다.Project Reunion provides an extension for Visual Studio 2019 that includes project templates configured to use Project Reunion components in new projects. 프로젝트 리유니언 라이브러리는 기존 프로젝트에 설치할 수 있는 NuGet 패키지를 통해서도 사용할 수 있습니다.The Project Reunion libraries are also available via a NuGet package that you can install in existing projects. 자세한 내용은 프로젝트 리유니언 시작을 참조하세요.For more information, see Get started with Project Reunion.

프로젝트 리유니언을 사용하는 앱을 빌드한 후 다른 컴퓨터에 배포할 수 있습니다.After you build an app that uses Project Reunion, you can deploy it to other computers. 자세한 내용은 프로젝트 리유니언을 사용하는 앱 배포를 참조하세요.For more information, see Deploy apps that use Project Reunion.

프로젝트 리유니언 0.5에는 앱에서 사용할 수 있는 다음과 같은 API 및 구성 요소 세트가 포함되어 있습니다.Project Reunion 0.5 includes the following sets of APIs and components you can use in your apps. 다른 구성 요소를 프로젝트 리유니언에 도입하기 위한 향후 계획에 대해서는 여기에서 자세히 알아볼 수 있습니다.You can learn more about the future plans to bring other components into Project Reunion here.

구성 요소Component 설명Description
Windows UI 라이브러리 3Windows UI Library 3 WinUI(Windows UI 라이브러리) 3은 Windows 앱을 위한 차세대 Windows 사용자 환경(UX) 플랫폼입니다.Windows UI Library (WinUI) 3 is the next generation of the Windows user experience (UX) platform for Windows apps. 이 릴리스에는 WinUI 기반 사용자 인터페이스를 사용하여 앱 빌드를 시작하는 데 도움이 되는 Visual Studio 프로젝트 템플릿, 그리고 WinUI 라이브러리가 포함된 NuGet 패키지가 들어 있습니다.This release includes Visual Studio project templates to help get started building apps with a WinUI-based user interface, and a NuGet package that contains the WinUI libraries.
MRT Core를 사용하여 리소스 관리Manage resources with MRT Core MRT Core는 앱에서 사용하는 리소스를 로드하고 관리하기 위한 API를 제공합니다.MRT Core provides APIs to load and manage resources used by your app. MRT Core는 최신 Windows 리소스 관리 시스템의 간소화된 버전입니다.MRT Core is a streamlined version of the modern Windows Resource Management System.
DWriteCore를 사용하여 텍스트 렌더링Render text with DWriteCore DWriteCore는 디바이스 독립적인 텍스트 레이아웃 시스템, 하드웨어 가속 텍스트, 다중 형식 텍스트 및 광범위한 언어 지원을 포함하여 텍스트 렌더링을 위한 모든 현재 DirectWrite 기능을 제공합니다.DWriteCore provides access to all current DirectWrite features for text rendering, including a device-independent text layout system, hardware-accelerated text, multi-format text, and wide language support.

Windows 개발자를 위한 프로젝트 리유니언의 이점Benefits of Project Reunion for Windows developers

프로젝트 리유니언은 OS에서 분리되어 NuGet 패키지를 통해 개발자에게 릴리스되는 구현이 포함된 광범위한 Windows API 집합을 제공합니다.Project Reunion provides a broad set of Windows APIs with implementations that are decoupled from the OS and released to developers via NuGet packages. 프로젝트 리유니언은 Windows SDK를 대체하기 위한 것이 아닙니다.Project Reunion is not meant to replace the Windows SDK. Windows SDK는 계속 그대로 작동하며 OS 및 Windows SDK 릴리스를 통해 제공되는 API를 통해 계속해서 발전하는 Windows의 핵심 구성 요소가 많이 있습니다.The Windows SDK will continue to work as is, and there are many core components of Windows that will continue to evolve via APIs that are delivered via OS and Windows SDK releases. 개발자는 각자의 속도대로 프로젝트를 도입하는 것이 좋습니다.Developers are encouraged to adopt Project Reunion at their own pace.

데스크톱 앱 플랫폼 간 통합 API 표면Unified API surface across desktop app platforms

데스크톱 Windows 앱을 만들려는 개발자는 여러 앱 플랫폼과 프레임워크 중에서 선택해야 합니다.Developers who want to create desktop Windows apps must choose between several app platforms and frameworks. 각 플랫폼은 다른 플랫폼을 사용하여 빌드된 앱에서 사용할 수 있는 많은 기능과 API를 제공하지만 일부 기능과 API는 특정 플랫폼에서만 사용할 수 있습니다.Although each platform provides many features and APIs that can be used by apps that are built using other platforms, some features and APIs can only be used by specific platforms. 프로젝트 리유니언은 모든 데스크톱 Windows 10 앱에 사용되는 Windows API 액세스를 통합합니다.Project Reunion will unify access to Windows APIs for all desktop Windows 10 apps. 선택한 앱 모델에 관계 없이 프로젝트 리유니언에서 사용할 수 있는 동일한 Windows API 집합에 액세스할 수 있습니다.No matter which app model you choose, you will have access to the same set of Windows APIs that are available in Project Reunion.

앞으로 다른 앱 모델 간의 차이를 없애기 위해 프로젝트 리유니온에 더 많은 투자를 할 계획입니다.Over time, we plan to make further investments in Project Reunion that remove more distinctions between the different app models. 프로젝트 리유니언에는 WinRT API와 네이티브 C API가 포함됩니다.Project Reunion will include both WinRT APIs and native C APIs.

Windows 10 버전에서 일관된 지원Consistent support across Windows 10 versions

Windows API가 새로운 OS 버전으로 계속 발전함에 따라 개발자는 애플리케이션 대상자를 위해 버전 간의 모든 차이를 고려하여 버전 적응 코드와 같은 기술을 사용해야 합니다.As the Windows APIs continue to evolve with new OS versions, developers must use techniques such as version adaptive code to account for all the differences in versions to reach their application audience. 이로 인해 코드와 개발 환경이 복잡해질 수 있습니다.This can add complexity to the code and the development experience.

프로젝트 리유니언 API는 Windows 10 버전 1809 이상의 모든 Windows 10 버전에서 작동합니다.Project Reunion APIs will work on Windows 10, version 1809, and all later versions of Windows 10. 즉, 고객이 Windows 10 버전 1809 이상을 사용하는 한, 새 프로젝트 리유니언 API 및 기능이 출시되는 즉시 버전 적응 코드를 작성하지 않고 바로 사용할 수 있습니다.This means that as long as your customers are on Windows 10, version 1809, or any later version, you can use new Project Reunion APIs and features as soon as they are released, and without having to write version adaptive code.

더 빠른 릴리스 주기Faster release cadence

새로운 Windows API 및 기능은 일반적으로 1년에 1~2회의 릴리스 주기로 발생하는 OS 릴리스와 연계되어 있습니다.New Windows APIs and features have typically been tied to OS releases that happen on a once or twice a year release cadence. Windows 개발 플랫폼의 혁신적인 기능이 출시되는 즉시 개발자들이 신속하게 사용할 수 있도록 프로젝트 리유니언은 더 빠르게 업데이트를 제공합니다.Project Reunion will ship updates on a faster cadence, enabling you to get earlier and more rapid access to innovations in the Windows development platform as soon as they are created.

제한 사항 및 알려진 문제Limitations and known issues

다음 제한 사항 및 알려진 문제는 일반적으로 프로젝트 리유니언 0.5에 적용됩니다.The following limitations and known issues apply generally to Project Reunion 0.5.

  • 데스크톱 앱(C# .NET 5 또는 C++ 데스크톱) : 패키징되지 않은 데스크톱 앱(C# .NET 5 또는 C++ 데스크톱)에서 프로젝트 리유니언 0.5를 사용할 수 없습니다.Desktop apps (C# .NET 5 or C++ desktop): Project Reunion 0.5 cannot be used in unpackaged desktop apps (C# .NET 5 or C++ desktop). 이 릴리스는 MSIX로 패키징된 데스크톱 앱에서만 사용할 수 있습니다.This release is supported for use only in MSIX-packaged desktop apps.
  • UWP 앱: 프로덕션 환경에서 사용되는 UWP 앱에는 프로젝트 리유니언 0.5가 지원되지 않습니다.UWP apps: Project Reunion 0.5 is not supported for UWP apps that are used in production environments. UWP 앱에서 프로젝트 리유니언을 사용하려면 프로덕션 환경에서 지원되지 않는 프로젝트 리유니언 0.5 확장의 미리 보기 버전을 사용해야 합니다.To use Project Reunion in UWP apps, you must use a preview version of the Project Reunion 0.5 extension that is not supported for production environments. 미리 보기 확장을 설치하는 방법에 대한 자세한 내용은 개발 환경 설정을 참조하세요.For more information about installing the preview extension, see Set up your development environment.
  • 프로젝트 리유니언 0.5를 사용하는 모든 프로젝트에도 WinUI 3 개발자 도구 제한 사항이 적용됩니다.The WinUI 3 developer tool limitations also apply to any project that uses Project Reunion 0.5.

특정 개발자 시나리오에는 다음과 같은 제한 사항 및 알려진 문제가 적용됩니다.The following limitations and known issues apply to specific developer scenarios.

.NET SDK 참조.NET SDK references

C# .NET 5 프로젝트에서 Project Reunion 0.5의 안정된 최신 릴리스의 모든 수정 사항을 받으려면 .NET SDK를 최신 버전으로 명시적으로 설정해야 합니다.In order to receive all of the fixes from the latest stable release of Project Reunion 0.5 in C# .NET 5 projects, you'll need to explicitly set your .NET SDK to the latest version. 이렇게 하려면 다음 항목 그룹을 .csproj 파일에 추가한 다음, 프로젝트를 저장합니다.To do this, add the following item group to your .csproj file, then save your project. 2021년 5월에 .NET 5.0.6을 사용할 수 있게 되면 프로젝트 파일에서 이러한 줄을 제거할 수 있습니다.These lines can be removed from your project file after .NET 5.0.6 is available in May 2021.

<ItemGroup>            
    <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.18362.16" />
    <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.18362.16" />
</ItemGroup>

기존 프로젝트에서 Project Reunion NuGet 패키지 사용Using the Project Reunion NuGet package in existing projects

기존 프로젝트에서 0.5 NuGet 패키지 프로젝트를 사용하려면 다음과 같은 제한 사항을 고려해야 합니다.If you want to use the Project Reunion 0.5 NuGet package in existing projects, be aware of the following limitations:

  • 프로젝트 리유니언 0.5 NuGet 패키지는 프로덕션 환경에서 데스크톱(C# .NET 5 및 C++ 데스크톱) 프로젝트와 함께 사용할 수 있도록 지원됩니다.The Project Reunion 0.5 NuGet package is supported for use with desktop (C# .NET 5 and C++ desktop) projects in production environments. UWP 프로젝트에 대한 개발자 미리 보기로 사용할 수 있으며 프로덕션 환경에서 UWP 프로젝트와 함께 사용할 수 없습니다.It is available as a developer preview for UWP projects, and is not supported for use with UWP projects in production environments.
  • 프로젝트 리유니언 0.5 NuGet 패키지(Microsoft.ProjectReunion)에는 WinUI, MRT Core, DWriteCore 등의 구성 요소에 대한 구현을 포함한 다른 하위 패키지(Microsoft.ProjectReunion.FoundationMicrosoft.ProjectReunion.WinUI 포함)가 포함되어 있습니다.The Project Reunion 0.5 NuGet package (named Microsoft.ProjectReunion) contains other sub-packages (including Microsoft.ProjectReunion.Foundation and Microsoft.ProjectReunion.WinUI) that contain the implementations for components including WinUI, MRT Core, and DWriteCore. 이러한 하위 패키지는 프로젝트의 특정 구성 요소만 참조하도록 개별적으로 설치할 수 없습니다.You cannot install these sub-packages individually to reference only certain components in your project. 모든 구성 요소가 포함된 Microsoft.ProjectReunion 패키지를 설치해야 합니다.You must install the Microsoft.ProjectReunion package, which includes all of the components.
  • 프로젝트 리유니언 0.5 NuGet 패키지를 기존 프로젝트에 설치하는 경우 프로젝트에서 프로젝트 리유니언의 일부인 비 WinUI 3 구성 요소만 사용할 수 있습니다.If you install the Project Reunion 0.5 NuGet package to an existing project, you can only use non-WinUI 3 components that are part of Project Reunion in your project. WinUI 3을 사용하려면 이전 섹션의 설명에 따라 WinUI 3 프로젝트 템플릿 중 하나를 사용하여 새 프로젝트를 만들어야 합니다.To use WinUI 3, you must create a new project using one of the WinUI 3 project templates as described in the previous section.

ASTA-STA 스레딩 모델ASTA to STA threading model

기존 UWP 앱의 코드를 프로젝트 리유니언을 사용하는 새 C# .NET 5 또는 C++ 데스크톱 WinUI 3 프로젝트로 마이그레이션하는 경우, 새 프로젝트가 UWP 앱에서 사용하는 ASTA(애플리케이션 STA) 스레딩 모델이 아닌 STA(단일 스레드 아파트) 스레딩 모델을 사용한다는 점에 유의하세요.If you're migrating code from an existing UWP app to a new C# .NET 5 or C++ desktop WinUI 3 project that uses Project Reunion, be aware that the new project uses the single-threaded apartment (STA) threading model instead of the Application STA (ASTA) threading model used by UWP apps. 코드에서 ASTA 스레딩 모델의 비재진입성 동작을 가정하는 경우 코드가 예상대로 작동하지 않을 수 있습니다.If your code assumes the non re-entrant behavior of the ASTA threading model, your code may not behave as expected.

개발자 로드맵Developer roadmap

최신 프로젝트 리유니언 계획은 로드맵을 참조하세요.For the latest Project Reunion plans, see our roadmap.

피드백 제공 및 기여Give feedback and contribute

프로젝트 리유니언을 오픈 소스 프로젝트로 빌드하고 있습니다.We are building Project Reunion as an open source project. GitHub 페이지에 프로젝트 리유니언을 빌드하는 방법과 개발 프로세스에 참여하는 방법에 대한 자세한 정보가 있습니다.We have a lot more information on our Github page about how we're building Project Reunion, and how you can be a part of the development process. 질문을 하거나 토론을 시작하거나 기능을 제안하려면 기여자 가이드를 확인하세요.Check out our contributor guide to ask questions, start discussions, or make feature proposals. 프로젝트 리유니언이 귀하와 같은 개발자에게 가장 큰 혜택을 제공하기를 바랍니다.We want to make sure that Project Reunion brings the biggest benefits to developers like you.