新しい基幹業務アプリケーションに最適な UI フレームワークを選ぶ

完了

コンサルティング会社の最大の顧客の 1 社が、医療業界向けの基幹業務アプリケーションを構築したいと考えています。 このアプリケーションは、病院環境でミッション クリティカルなタスクに使われます。

このシナリオでは、アプリケーションの要件について説明し、どの Windows フレームワークが開発チームにとって最適な選択肢であるかを決定します。

医療アプリケーションの構築

医療アプリケーションは、病院の医師、看護師、管理者などの医療プロフェッショナルに展開することを目的としたエンタープライズ アプリケーションです。 このアプリケーションで注目すべき主な要件は次のとおりです。

  • アプリケーションの外観とスタイル。 アプリケーションには、カラー テーマやロゴなどの各病院のブランド化コンポーネントを組み込む必要があります。
  • デバイスの互換性。 病院は常に最新のハードウェアとソフトウェアを備えているとは限らないため、下位互換性が重要です。
  • アプリケーションのパフォーマンスが重要です。 病院はストレスの大きい環境であるため、アプリケーションは応答性が高く、高速である必要があります。

このプロジェクトのすべての決定条件を確認し、これらの要件を満たすために各フレームワークをどのように使用できるかを見てみましょう。

決定条件の分析

このセクションでは、医療アプリケーションの要件を分析し、それらの要件を満たすためにどのフレームワークを使用できるかを確認します。 また、各フレームワークの利点と制限事項、これらをこの基幹業務アプリケーションに使う決定にどのように影響するかについても説明します。

アプリケーションの外観とスタイル

顧客は、アプリケーションが最新の Fluent デザイン システム ガイダンスをサポートすることは重要ではないと話しています。 ただし、アプリケーションのテーマは各病院のブランドに合わせたいと考えています。 このスタイルは、アプリケーションのカスタム バージョンを再配布することなく構成可能にする必要があります。 WPF と WinUI のどちらでもテーマのニーズを満たすことができます。 テーマは Windows フォームでも実現できますが、実装は難しく、サードパーティ製ライブラリが必要になる可能性があります。 Fluent デザインは要件ではないので、チームは WinUI の選択に限定されません。

デバイスの互換性

このアプリケーションを使っている医療の顧客は、さまざまな種類のデバイスを持っています。 既存の病院ワークステーションのほとんどには Windows 10 デスクトップ PC が搭載されています。 ただし、一部の医療プロフェッショナルは、最新バージョンの Windows を実行しているタブレット PC 上でアプリケーションにアクセスします。 アプリケーションはキーボードとマウスで使う必要がありますが、タッチ入力でも適切に機能する必要があります。 また、アプリケーションは、これらすべてのデバイス上で応答性が高く、高速である必要があります。

この要件には、WPF が最適なようです。 WPF を使うと、ユーザーが画面に触れたときにイベントを発生させることでタッチを検出し、応答するアプリケーションにすることができます。 また、スタイラスのネイティブ サポートもあります。 WPF アプリケーションは、マウス API を使ってスタイラスをマウスとして扱うことができますが、WPF はキーボードやマウスと同様のモデルを使うスタイラス デバイスの抽象化も公開しています。

Windows フォーム アプリケーションをタッチ デバイスで使うのはさらに困難です。 スタイラスで使用できますが、WPF ほど使いやすくありません。 WinUI はタッチ デバイスに適していますが、Windows 10 のすべてのバージョンで使用できるわけではありません。 WinUI は、Windows 11 と Windows 10 Version 1809 以降でのみ使用できます。 医療の顧客は Windows 10 と Windows 11 のデバイスを使っており、その割合は不明なので、WinUI はこの要件に最適ではありません。

チームのエンタープライズ開発者のスキルセット

開発チームは、このプロジェクトで検討されている 3 つのフレームワークすべてに精通しています。 チームは、WPF、Windows フォーム、WinUI を使ってアプリケーションを構築した経験があり、.NET と C# の最新バージョンに精通しています。 開発者は XAML にも精通しているため、Visual Studio の XAML デザイナーまたはエディターを使ってアプリケーションの UI を構築できます。

アプリケーションのパフォーマンスと応答性

このアプリケーションは病院というストレスが大きい環境で使われるため、応答性と速度が重要です。

WPF はこの要件に適しています。 .NET Framework を使って構築された WPF アプリケーションは、最新バージョンの .NET を使って構築されたアプリケーションほどパフォーマンスが高くありません。 一方、.NET 8 を使って構築された WPF アプリケーションはパフォーマンスと応答性に優れています。 WPF は、複数の画面と複雑なデータ バインディング要件があるエンタープライズ アプリケーションに最適です。 WPF には、アプリケーションの構築に使用できる豊富なコントロール セットもあります。

展開のシナリオとオプション

このアプリケーションはカスタム インストーラーを介して展開する必要があります。 これは、Windows 10 と Windows 11 を実行するデスクトップ PC 上の企業顧客に展開されます。 アプリケーションは、新機能やバグ修正によって簡単に更新できる必要があります。

WPF および Windows フォーム アプリケーションは、Microsoft Store (MSIX を使用)、ClickOnce、Windows インストーラー、またはサードパーティのインストーラー ソリューションを使って展開できます。 現在サポートされているすべてのバージョンの Windows に展開できます。 WinUI アプリケーションは、Windows 10 のすべてのバージョンに展開できるわけではありません。 WinUI は、Windows 11 と Windows 10 Version 1809 以降でのみ使用できます。 WinUI アプリケーションは、Microsoft Store (MSIX を使用)、ClickOnce、またはサードパーティ製インストーラー ソリューションを使って展開できます。

フレームワークの選択

このプロジェクトでは、WPF が最適な選択肢です。 WPF は、複数の画面と複雑なデータ バインディング要件がある複雑なエンタープライズ アプリケーションに最適です。 WPF には、アプリケーションの構築に使用できる豊富なコントロール セットもあります。 パフォーマンスと展開の要件もサポートされています。