C++/Powerbuilder で記述されたレガシー アプリケーションを C# に移植する機会があります。このスプリントには、独立したダイアログを起動する機能があり、C++ から呼び出されるこの機能のマネージ実装用の CCW dll を作成する演習を行いました。マネージ DLL のビューに WPF を使用することにしました。これまでのところ、サンプル MFC アプリから WPF ウィンドウを起動するなど、マネージ DLl と相互運用できるので、とても良いです。
この戦略を推進する理由はいくつかあります。
- 10 年前のレガシ アプリの最近の再設計から生まれた、再利用可能な管理 DLL がたくさんあります。
- 私は C++ と比較して C# でかなりの経験を積んでおり、C++ では常に言語の構文とインテリセンスと戦っています。FWIW、私たちの会社はいくつかのツールに投資することでもっとうまくいくかもしれませんが、C++構文、ヘッダーファイル、およびアプローチの不一致に対する私の嫌悪感を実際に変えることはありません.
- 少なくとも私たちが開発する種類のアプリケーション用のデスクトップ アプリについては、C# が適していると思います。4.アプリを書き直す将来の計画があり、繰り返したくありません。したがって、この段階で、できる限り正しい設計を開始したいという誘惑にかられます。
- C++ のヘルプはあまりありません。
ただし、いくつかの懸念と質問があります。
この断片的なアプローチは進むべき道ですか?
パフォーマンスの観点からは、WPF ではなく Winforms と相互運用する必要がありますか? アプリケーションは GIS をホストするため、パフォーマンスが重要ですが、ThinkGeo の MapSuite をホストする別の WPF アプリケーションを開発したばかりで、非常にうまく機能します。主な違いは、レガシ アプリが WPF の従兄弟よりも GIS を多用することです。
WPF/Silverlight の運命についての最近の噂では、WPF を検討する必要がありますか? WPF/Silverlight が死んだ場合、デスクトップ アプリの代替手段は何ですか?
3.私を待っている落とし穴は何ですか?
これに関する考えやアドバイスは素晴らしいものです。これについてマネージャーと相談しますが、最初にあなたの考えや経験を聞きたいと思いました. ティア。
クラウス
編集:
申し訳ありませんが、アプリケーションは 10 歳であり、最初に述べた 25 歳ではありません。そこに少し混乱します。