私は WinForms 製品の書き直しの非常に初期の段階にあり、新しいソリューション構造を実装するための「最善の」戦略を決定しようとしています。現在のソリューションには 50 以上のプロジェクトが含まれており、(ほとんどの場合) アプリケーションを実行するために必要なすべてのロジックが含まれています。いくつかのプロジェクトには、別の「フレームワーク」ソリューションに存在するプロジェクトへの依存関係がありますが、それも置き換え/変更されています。
前述したように、現在のソリューションは WinForms 製品を生成します。さらに、すべてが前から後ろまでしっかりと結合されています。さらに、WinForms 製品に加えて、またはそれに加えて、Web / モバイル ソリューションの提供を開始したいと考えています。望ましい変更のため、これをいくつかの個別のソリューションに分割することを検討しています。詳細は次のとおりです。
- Product.Framework ソリューションは Product.Core になります - 共通のインターフェイス、列挙型、構造体、「ヘルパー」などを含むアセンブリの共有セット。
- Product.Windows - MVC パターン。WinForms 製品を実行するために必要なすべてのビューとビジネス ロジックが含まれています。
- Product.Web - MVC パターン。Web 製品を実行するために必要なすべてのビューとビジネス ロジックが含まれています。
- Product.Services - ホスト可能な WCF サービス。基になる DAL を使用して Web/Win/Mobile が呼び出すパブリック サービス レイヤーが含まれます。
これは、健全性チェックを探している場所です。WinForms プロジェクトと Web プロジェクトの両方に DI/IoC を実装することを計画しています (WCF サービスへの挿入についてはあまり心配していません)。私の考えでは、すべての具体的なエンティティ (データベース テーブルの表現) とサービスのインターフェイスを Product.Core ソリューションに含めることは理にかなっています。Web および Winforms ソリューションで Product.Services を参照する必要があると思われる唯一の参照は、具象型をコンテナーに登録することです。
これは理にかなっていますか?私が見落としているギラギラしたものはありますか?フィードバックをお寄せいただきありがとうございます。