質問: Windowsプラットフォームでソフトウェアを新規開発するのですが、チーム内でWindowsForms、WPF、UWPのどれを採用するか割れています。 個人的には、今からはUWPなのかなとは思っていましたが、UWPを調査するとガチガチのセキュリティや配布方法に難があるなど、ちょっと過剰制約な気がします。 ならばWPFかと思いますが、WPFは実質ほとんど普及していないというのも懸念の一つです。 WPF(MVVM)の仕組みが公表されてしばらく経つそうですが、結局WindowsFormsが普及しています。 WPFやUWPなどのMVVMで作成することが良いことは確実なのですが、色々調べたりチーム内事情を鑑みると、WindowsFormsを選択すべきなのかとも思えてきました。 そこで、実際に新規開発する際に、どれを選ぶべきか、またはその選択基準はどうなのかをアドバイス等いただけませんでしょうか。 特に、同じように新規でソフトウェア開発された方の経験等あれば是非聞かせていただきたいです。 よろしくお願いいたします。 ちなみに、新規開発するソフトウェアとその環境等の条件は、以下の通りです。 * Windows上での動作を前提としている * 対象OSはWindows7またはWindows10を前提としているが、UWPで開発することになるならば、Windows7は外すことを検討できる(ただしUWPの他との優位性を説得できるならば) * 業務用アプリである * 既存ソフトウェア(Win32)の入替開発としての新規開発ソフトウェアであるので、今まで動いていたのに動かないというのは厳禁(信頼性が重要) * チームメンバーのソフトウェア開発経験はWin32アプリが主。(WindowsFormsさえ経験ない者が多い) * サーバ・クライアント構成である。(調査したところ、UWPはSQLServerとの接続は不可能?らしい。別途Webサービスを立てる必要がるとのこと)
回答: こんにちは。 考え方としては、WinForms/WPF or UWP ですね。 WinFormsとWPFを比較すると、 旧資産やライブラリに引っ張られない限りはWindFormsは私は外します。 個人的な経験から言うと、高DPIや、透過などグラフィック周りの制約が面倒になることが多いです。 ただ、チームビルディングが既に終わっているようですのでチームメンバーのスキルとも合わせたほうが良いと思います。 Win32に一番近いのはWinFormsかなと思います。 WPFかUWPかは悩ましいので要件次第だと思います。 リプレースであれば、既存ソフトウェアの機能と新しい要求などを棚卸し、そのうえで選定されたほうが宜しいかと思いますが、WPFであればUWPよりも要求事項に耐えやすいとは思います。 仰っているように機能上の制限が少ないので。