最近、かなりの数の Windows フォーム アプリケーション (データ入力アプリ、オフィス統合など) を設計してきました。常に論理層を念頭に置いて設計してきましたが、「中間層」のビジネス ロジック層は常に、デスクトップ PC (つまり、物理的なクライアント サーバー)。
より複雑なアプリケーションにアプローチするにつれて、代わりに物理的な中間層が欲しくなります。デスクトップ クライアントは要求をアプリケーション サーバーに戻して、ビジネス ロジック (定期的に変更される可能性があります) とインターフェイスを処理します。スケーラビリティや保守性など、Web アプリに本来備わっている要素を見逃しているように感じます。
他の WinForms 開発者が中間層の分離をどこまで行っているか知りたいです。
- 中間層サーバーで実行する処理 (ある場合) はどれくらいですか?
- WCF、リモーティング、Web サービスなど、どのような通信方法を使用していますか?
- パフォーマンスはどの程度の要因であり、サーバーへのラウンドトリップはどのくらいの頻度で行われますか?
ビジネス ロジックを別の層に移動する利点はありますか? それとも、コンポーネントを PC 上でローカルにホストする方がより実用的ですか?
あるいは、これらの要因が関係している場合、顧客を完全に WinForms から遠ざける必要がありますか? Silverlight や AJAX を使用した ASP.NET などの代替手段があるため、WinForms クライアントを選択する理由は縮小しているようです。