Uno 플랫폼을 통한 미래 보장형 .NET 애플리케이션 개발

Windows 개발자에게 귀를 기울이고 이야기하는 데 시간을 보내면 특히 .NET 및 UWP (유니버설 Windows 플랫폼)와 관련하여 플랫폼의 방향에 대해 많은 혼란과 좌절이 있다는 것을 알게 될 것입니다. Microsoft는 Project Reunion의 Build 2020 발표를 통해 모든 사람을 .NET 5 미래로 끌어들이는 동시에 UWP와 이전 Windows SDK의 차이점을 줄이려고 시도하고 있지만 통합 플랫폼을 제공하는 데는 여전히 시간이 걸릴 것입니다.

그 중 많은 부분이 과거에 Windows 플랫폼 업데이트가 제공되는 방식, 즉 운영 체제 릴리스와 결합되어 있습니다. Project Reunion은 WinUI 사용자 인터페이스 구성 요소 작업을 기반으로 구축되어 기본 운영 체제에서 분리하고 개발자 플랫폼이 이전보다 훨씬 빠르게 발전 할 수 있도록합니다.

플랫폼에 대한 오픈 소스 접근 방식을 기반으로 구축하면 .NET 개발 모델 (및 코드)을 가능한 한 많은 플랫폼으로 가져올 수있는 더 많은 기회가 제공됩니다. 이것이 어떻게 작동하는지에 대한 한 가지 예는 최근에 세 번째 주요 릴리스를 출시 한 Uno Platform의 WinUI 구현입니다.

Uno Platform 3.0 소개

이전에 Uno 플랫폼을 살펴 보지 않았다면 iOS, Android, macOS 및 웹에서 실행되는 .NET 코드를 빌드 할 수있는 Xamarin의 대안으로 생각하는 것이 가장 쉽습니다. WebAssembly 및 Microsoft의 Blazor 개발 프레임 워크와 함께 WinUI를 사용하여 웹을 통해 친숙한 사용자 인터페이스를 제공하는 방법으로 이전에 Uno에 대해 작성했습니다.

Uno Platform 3.0은 WinUI 2.0과 함께 WinUI 3.0을 지원하기 위해 개발되고 있습니다. 이렇게하면 WinUI 3.0 및 시스템 수준 Project Reunion API의 단계적 롤아웃과 함께 잘 작동하는 접근 방식 인 새 컨트롤과 현재 컨트롤을 혼합하고 일치시킬 수 있습니다.

Uno에는 좋아할 것이 많으며 특히 학습 곡선이 거의 없거나 전혀 없습니다. 선호하는 IDE에서 코드를 빌드하고 기존 도구 및 프레임 워크를 사용하여 모든 코드 버전에 공통 UI 레이어를 제공 할 수 있습니다. C # 및 XAML을 한 번만 작성하면됩니다. WinUI 코드는 Windows에서 직접 실행되고 다른 플랫폼에서는 Uno를 통해 iOS, macOS 및 Android 용 Xamarin의 기본 도구를 기반으로 빌드하고 Mono-WASM 구현을 사용하여 편물.

Uno를 사용하여 .NET 앱을 macOS로 가져 오기

내부적으로 Uno의 macOS 구현은 macOS의 AppKit과 iOS의 UIKit 간의 유사점을 기반으로합니다. 이를 통해 개발 팀은 기존 iOS 컨트롤 구현을 게시 할 수 있습니다. 작동하지만 일부 컨트롤에는 여전히 문제가 있으므로 사용자에게 코드를 배포하기 전에 실험 해 볼 가치가 있습니다. 그럼에도 불구하고 기존 .NET 앱을 Windows에서 macOS로 가져 오는 효과적인 방법입니다. 핵심 macOS 라이브러리를 기반으로 구축함으로써 Uno는 최근에 발표 된 ARM 기반 Apple 실리콘에서 코드를 실행할 수 있기를 바랍니다.

Uno의 Mac 지원은 2020 년 5 월에 출시되어 macOS에서 Windows 계산기 앱을 다시 구현하고 Apple의 macOS 스토어를 통해 게시되는 비교적 새로운 기능입니다. 기존 코드의 macOS 릴리스를 빌드하려면 새로운 Uno 템플릿 세트와 Windows .NET 명령 줄 도구를 사용해야합니다. Uno 2.3 또는 3.0 용 새 템플릿을 설치 한 후에는 대상으로 지정할 프로젝트와 이름이 같은 macOS 응용 프로그램 용 앱 스캐 폴딩을 만들 수 있습니다.

그런 다음 해당 프로젝트를 나머지 애플리케이션 파일과 동일한 폴더로 이동하고 기존 Visual Studio 솔루션에 새 프로젝트를 추가 할 수 있습니다. Mac 용 Visual Studio를 사용하여 macOS 용 코드를 컴파일하고 개발 용 macOS 장치를 대상으로하는 iPhone 시뮬레이터 설정을 구성합니다.

Mac 용 Visual Studio를 사용하여 Windows WinUI 앱에서 작업 할 수 없으므로 전체 솔루션에 Git 또는 유사한 소스 코드 제어 플랫폼을 사용하여 macOS 및 Windows 용 코드 변경 사항을 관리 할 수 ​​있습니다. 앱의 WebAssembly 버전에서 작업하는 경우 Visual Studio Code를 사용하여 C # 및 JavaScript 디버거 확장으로 빌드합니다. MacOS 지원은 Uno 2.4 및 3.0 모두에서 사용할 수 있으며 최신 버전은 모든 주요 앱 스토어에서 사용할 수있는 WinUI 기반 교차 플랫폼 비디오 플레이어 애플리케이션을 보여줍니다.

Uno에서 WinUI 3.0 사용

WinUI 3.0으로 작업 할 계획이라면 Uno의 최신 3.0 릴리스를 사용해야합니다. 다시 Uno Platform의 .NET 템플릿을 사용하여 코드에 대한 스캐 폴딩을 설정하십시오. 기존 코드를 WinUI 3.0으로 이동하는 경우 Microsoft 컨트롤과 Uno 코드 모두에 대해 사용중인 네임 스페이스를 변경해야합니다. 이는 Visual Studio에 내장 된 리팩토링 도구를 사용하여 쉽게 수행 할 수있는 작업입니다.

Uno 플랫폼의 흥미로운 측면 중 하나는 듀얼 스크린 장치 지원입니다. 기존 코드를 Uno로 가져오고 이중 화면 컨트롤을 추가하면 최소한의 변경으로 Windows에서 곧 출시 될 Android 기반 Surface Duo로 앱을 이식 할 수 있습니다. Microsoft가 듀얼 스크린 모바일 애플리케이션의 우선 순위를 정하고 향후 Android 릴리스에 대한 지원을 개선하기 위해 Google과 협력하면서 Uno와 같은 도구는 Windows에서 기존의 대형 화면 및 태블릿 경험을 접고 이중 화면 Android 하드웨어로 가져 오는 중요한 경로가 될 것입니다. .

Uno 플랫폼과 .NET 애플리케이션 개발의 미래

Microsoft는 WinUI 및 Project Reunion을 사용하여 미래에 대한 명확성을 제공함으로써 .NET 에코 시스템에서 응용 프로그램을 빌드하는 방법에 대한 혼란을 제거하는 것을 목표로하고 있습니다. 그러나 Microsoft가 제공하겠다고 약속하는 한 빨리 많은 개발자에게 너무 느릴 가능성이 높습니다. Uno 플랫폼과 Xamarin의 MAUI는 모두 기존 .NET 코드를 기반으로 이러한 기술에보다 빠르게 액세스 할 수있는 방법입니다.

.NET에 macOS 및 웹 UI 지원을 추가함으로써 Uno 플랫폼은 최소한의 코드 변경으로 가능한 한 많은 사용자를 대상으로하는 더 나은 선택이 될 것으로 보입니다. 많은 개발 시간을 절약하고 지원 부하를 최소화해야하는 .NET 미래로가는 길입니다.

Uno를 사용하면 기존 .NET 코드를 다른 방식으로도 미래에 대비할 수 있습니다. 브라우저 내 WebAssembly 및 독립형 WASI (WebAssembly System Interface) 애플리케이션은 코드를 차세대 에지 하드웨어, 특히 ARM 및 기타 저전력 프로세서를 기반으로하는 소형 폼 팩터 및 소형 화면 장치로 코드를 가져 오는 프로세스를 단순화해야합니다.