奇妙な相互運用シナリオで自分たちのサポートの悪夢を作成することなく、WinFormsアプリケーションをWPFにゆっくりと進化させるための実用的な方法はありますか?
背景情報:
約60〜75人のユーザーの内部グループによって頻繁に使用される大規模な戦艦の灰色のWinFormsアプリケーションがあります。WPFでアプリを使用することでメリットが得られる場所に出くわし始めていますが、大規模なプロジェクトを完全に書き直すことを正当化するだけでは不十分です。アプリのすべての画面は自己完結型のWinFormsユーザーコントロールであり、WinFormsアプリは、メニュー設定、フォームの開閉、いくつかの共有ヘルパーメソッドなどを処理する単なるシェルです...
これまでのところ、シェルアプリケーションをWPFに変換してから、その中でWinFormsユーザーコントロールをホストするのが最善の方法です。その後、ユーザーコントロールを時間の経過とともに変換し、それらの変更を、追加の作業をサポートするのに十分なビジネス価値を持つイニシアチブに結び付けることができると考えました。相互運用機能がどの程度うまく機能し、パフォーマンスにどのように影響するかが心配です。また、アプリの新しいデザインに移行する方法についても心配しています。シェルアプリをおしゃれに見せてから、古い戦艦の灰色のユーザーコントロールを内部でホストするのは奇妙に思えます。また、WPFでシェルアプリを作成し、WinFormsで行ったように見せることも奇妙に思えます。
Caliburn、Prism、または他の同様のフレームワークのいずれかが移行を容易にする場合は、これらのオプションも検討することができます。