コンテンツへスキップ
WinFormsをWPFに変換する:検討する必要がありますか?

WinFormsをWPFに変換する:検討する必要がありますか?

WinForms は、フォームや GUI ベースのアプリケーション、一般的には Windows ベースのデバイスを開発するための一般的な方法です。.NET Framework の一部であり、もともとは Microsoft Foundation Class Library (MFC) の代替と見なされていた WinForms アプリケーションは "イベント ドリブン" です。つまり、ユーザーが自分と対話するのを座って待ってから、行動を起こしてこの入力に反応します。

4min read

WinForms は、フォームや GUI ベースのアプリケーション、一般的には Windows ベースのデバイスを開発するための一般的な方法です。.NET Framework の一部であり、もともとは Microsoft Foundation Class Library (MFC) の代替と見なされていた WinForms アプリケーションは "イベント ドリブン" です。つまり、ユーザーが自分と対話するのを座って待ってから、行動を起こしてこの入力に反応します。

WinFormsは、多くの人にとって依然として有用な技術ですが(私たちは便利で人気のあるコントロールを幅広く提供しています)、正式には「メンテナンスモード」の技術です。Microsoftによると、この製品はもはや活発な開発の対象ではなく、将来的には新機能は見られませんが、バグ修正の恩恵を受けます。

それを念頭に置いて、WinForms アプリを Windows Presentation Foundation (WPF) などの最新のテクノロジに変換するための議論は何ですか?この投稿では、このトピックを見て、さまざまなオプションと長所と短所を比較検討します。

WinForms アプリを Windows Presentation Foundation (WPF) などの最新のテクノロジに変換する

Windows Presentation Foundation

Windows Presentation Foundation は、GUI を構築するための別の API です。WinForms とは別のものですが、.NET Framework にも含まれており、DirectX に基づいており、XAML と呼ばれる言語を使用してコンポーネントと要素を記述します。多くの開発者は、「WinForms アプリを簡単に変換できますか?」という質問をよく受けます。いくつかの有用な答えとポインタを見てみましょう。

1. コードを改善するチャンス

WinForms アプリを WPF に "変換" することを決定したら、一歩下がって、コードを最初から書き直すのが最善の方法ではないかどうかを判断します。間違いなく、プロセス中に多くのことを学び、最終的にはおそらく全体的に優れたコードになります。WinForms から WPF への切り替えには考え方の変更が伴いますが、この記事では、アプローチの違いについて説明します。WPF は WinForms とは基本的に大きく異なるため、コードの移行を開始する前に WPF の基本を理解することは重要なステップです。

2. Converting C#.NET WinForms designer code

より「自動化された」アプローチを探している場合は、C#.NETデザイナーコードをXAMLに変換するユーティリティがあります。これは良い例ですが、コードを手動でチェックすることもお勧めします。 この CodePlex プロジェクトは、基本的な変換、基本的な WinForms フォーム コントロールの取得、さらにはイベント処理コードの引き継ぎも処理できます。プロジェクトが何年も更新されていないことに注意してください。より最新のオプションはここにあり、このツールにはさまざまなコントロールのサポートが付属しています。

3. Hosting WinForms inside a WPF application

アプリケーション全体を変換するのではなく、WPF アプリケーション内でコントロールをホストすることで WinForms コードを再利用できます。Microsoft は、WPFアプリケーション内で WinForms 複合コントロールをホストするための非常に詳細なチュートリアルを提供しています。

4. 結果の検証

WPFを初めて使用する場合、またはWinFormsからコードを変換/移植する場合は、最終結果を再確認することをお勧めします。これを行うための便利なツールには、次のようなものがあります。

 

  • 最後に更新されたのは数年前ですが、SnoopはWPFアプリを視覚的にデバッグするための便利な方法です。
  • Shazzamは WPF ピクセル シェーダーのテストに役立ちます
  • 優れた .NET 開発者なら誰でもReflectorについて知っているでしょう
  • Microsoft Blend は、スタンドアロンのユーザー インターフェイス ツールとして始まりましたが、現在は Visual Studio の一部となっています。いずれにせよ、これはWPFアプリケーションを設計する興味深い方法であり、WinFormsから移行する人にとっては便利な支援になります。
  • WPF Performance Suiteは、WPF アプリケーションの動作を分析するのに役立ち、改善を実装する手段を提供します。WPF を初めて使用するユーザーや、WinForms アプリからコードをリファクタリングする場合に便利です。

Multiple options

経験豊富な開発者が知っているように、.NET Framework には、特定の問題を解決するための多くの方法とソリューションが用意されています。GUIアプリケーションに関しては、WinFormsとWPFはどちらも非常に有効な選択肢であり、この投稿で見たように、2つのアプローチ間で変換する手段があります。どのようなルートをたどったにせよ、Infragistics は、最終結果をさらに印象的なものにするために、さまざまな事前構築済みの UI コンポーネントを提供しています。

WPF
デモを予約