Unoプラットフォームを使用した将来性のある.NETアプリケーション開発

Windows開発者の話を聞いたり話したりすることに時間を費やすと、プラットフォームの方向性、特に.NETとUWP(Universal Windows Platform)に関して、多くの混乱とフラストレーションがあることがわかります。Microsoftは、ProjectReunionのBuild2020の発表で、すべての人を.NET 5の未来に引き込もうとしながら、UWPと古いWindows SDKの違いに線を引こうとしていますが、統合プラットフォームの提供にはまだ時間がかかります。

その多くは、Windowsプラットフォームの更新が過去にどのように配信されたかにかかっています。つまり、オペレーティングシステムのリリースと組み合わせたものです。Project Reunionは、WinUIユーザーインターフェイスコンポーネントとの連携に基づいて構築されており、基盤となるオペレーティングシステムからコンポーネントを切り離し、開発者プラットフォームを以前よりもはるかに高速に進化させることができます。

プラットフォームへのオープンソースアプローチに基づいて構築することで、.NET開発モデル(およびコード)をできるだけ多くのプラットフォームに導入する機会が増えます。これがどのように機能するかの一例は、最近3番目のメジャーリリースを開始したUnoプラットフォームのWinUI実装です。

Uno Platform3.0のご紹介

Unoプラットフォームをこれまでに見たことがない場合は、iOS、Android、macOS、およびWebで実行される.NETコードを構築できるXamarinの代替として考えるのがおそらく最も簡単です。私は以前、WebAssemblyとMicrosoftのBlazor開発フレームワークでWinUIを使用して、使い慣れたユーザーインターフェイスをWeb経由で提供する方法としてUnoについて書きました。

Uno Platform 3.0は、WinUI2.0とともにWinUI3.0をサポートするために開発されています。このようにして、新しいコントロールと現在のコントロールを組み合わせて組み合わせることができます。これは、WinUI3.0とシステムレベルのProjectReunionAPIの両方の段階的なロールアウトと並行してうまく機能するはずのアプローチです。

宇野には好きなことがたくさんあります。特に、学習曲線がほとんどないか、まったくないということです。コードはお気に入りのIDEに組み込み、既存のツールとフレームワークを使用して、すべてのコードバージョンに共通のUIレイヤーを提供できます。WinUIコードをWindowsで直接実行し、他のプラットフォームではUnoを介して、iOS、macOS、Android用のXamarinのネイティブツール上に構築し、Mono-WASM実装を使用して、C#とXAMLを1回だけ作成する必要があります。ウェブ。

Unoを使用して.NETアプリをmacOSに導入する

内部的には、UnoのmacOS実装は、macOSのAppKitとiOSのUIKitの類似点に基づいています。これにより、開発チームは既存のiOSコントロールの実装を投稿できます。これは機能しますが、一部のコントロールにはまだ問題があるため、ユーザーにコードをデプロイする前に実験する価値があります。それでも、既存の.NETアプリをWindowsからmacOSに移行する効果的な方法です。コアmacOSライブラリ上に構築することにより、Unoは、最近発表されたARMベースのAppleシリコン上でコードを実行できるようになることを願っています。

UnoでのMacのサポートは比較的新しく、2020年5月に開始され、macOSにWindows Calculatorアプリが再実装され、AppleのmacOSストアから公開されます。既存のコードのmacOSリリースをビルドするには、一連の新しいUnoテンプレートとWindows.NETコマンドラインツールを使用する必要があります。Uno 2.3または3.0の新しいテンプレートをインストールしたら、ターゲットにするプロジェクトと同じ名前のmacOSアプリケーション用のアプリスキャフォールディングを作成できます。

次に、そのプロジェクトを残りのアプリケーションファイルと同じフォルダーに移動し、新しいプロジェクトを既存のVisualStudioソリューションに追加できます。Visual Studio for Macを使用してmacOS用のコードをコンパイルし、開発用macOSデバイスを対象とするようにiPhoneシミュレーター設定を構成します。

Visual Studio forMacを使用してWindowsWinUIアプリで作業することはできないため、完全なソリューションにはGitまたは同様のソースコード管理プラットフォームを使用して、macOSおよびWindowsのコード変更を管理できるようにすることをお勧めします。アプリのWebAssemblyバージョンで作業している場合は、Visual Studio Codeを使用して、C#およびJavaScriptデバッガー拡張機能を使用してアプリをビルドします。MacOSのサポートはUno2.4と3.0の両方で利用可能であり、最新バージョンはすべての主要なアプリストアで利用可能なWinUIベースのクロスプラットフォームビデオプレーヤーアプリケーションを示しています。

UnoでWinUI3.0を使用する

WinUI 3.0での作業を計画している場合は、Unoの最新の3.0リリースを使用する必要があります。ここでも、Uno Platformの.NETテンプレートを使用して、コードのスキャフォールディングを設定します。既存のコードをWinUI3.0に移動する場合は、MicrosoftコントロールとUnoコードの両方で、使用している名前空間を変更する必要があります。これは、VisualStudioに組み込まれているリファクタリングツールを使用して簡単に行うことができます。

Unoプラットフォームの興味深い側面の1つは、デュアルスクリーンデバイスのサポートです。既存のコードをUnoに取り込み、そのデュアルスクリーンコントロールを追加することで、最小限の変更でWindowsから次のAndroidベースのSurfaceDuoにアプリを移植できるようになります。Microsoftがデュアルスクリーンモバイルアプリケーションを優先し、Googleと協力して今後のAndroidリリースへのサポートを改善することで、Unoのようなツールは、Windowsから既存の大画面およびタブレットエクスペリエンスを取得し、折りたたみ式およびデュアルスクリーンのAndroidハードウェアに導入するための重要なルートになります。

Unoプラットフォームと.NETアプリケーション開発の未来

Microsoftが.NETエコシステムでアプリケーションを構築する方法についての混乱を取り除き、WinUIとProject Reunionを使用して、将来について切望されている明確さを提供することを目指していることは明らかです。しかし、Microsoftが納品すると約束したのと同じくらい早く、多くの開発者にとっては遅すぎる可能性があります。UnoプラットフォームとXamarinのMAUIはどちらも、既存の.NETコードに加えて、これらのテクノロジーにすばやくアクセスする方法です。

macOSとWebUIのサポートを.NETに追加することで、Unoプラットフォームは、最小限のコード変更でできるだけ多くのユーザーをターゲットにするためのより良い選択になるように見えます。これは.NETの未来への道であり、開発時間を大幅に節約し、サポートの負荷を最小限に抑える必要があります。

Unoを使用すると、他の方法でも既存の.NETコードを将来にわたって使用できるようになります。ブラウザー内のWebAssemblyおよびスタンドアロンのWASI(WebAssemblyシステムインターフェイス)アプリケーションは、コードを新世代のエッジハードウェア、特にARMやその他の低電力プロセッサーに基づくスモールフォームファクターおよびスモールスクリーンデバイスに導入するプロセスを簡素化する必要があります。