私のチームは、最初の Silverlight 4 アプリケーションの作成に取り組んでいます。まず、実際のプロジェクトについて少し詳しく説明します。Out-of-Browser を実行するように設計されたのは Silverlight 4 であり、Dataobjects の独自の実装でデータ サービスに WFC を使用します。(エンティティ フレームワーク、LINQ-to-SQL などはありません)。11 を超える個別のプロジェクトを含むソリューション構造を推奨しているコンサルタントが数人います。私たちにはその理由がないように思われますが、次のようなものが必要な理由について正当化できる人はいますか?
- Project.Client - アセット、スタイル、ビュー
- Project.Common - コンバーター、ヘルパー
- Project.Data - 不明な目的 (クライアント プロジェクト)
- Project.Infrastructure - コマンド、定数、インターフェイス、ロギング
- Project.MajorFunctionA - 「アプリケーションの主要機能 A のビジネス ロジック」
- Project.MajorFunctionB - 「アプリケーションの主要機能 A のビジネス ロジック」
- Project.MajorFunctionC - 「アプリケーションの主要機能 A のビジネス ロジック」
- Project.Models - WCF サービスへの抽象化されたアクセス
- Project.UIControls - UI のカスタム コントロール
- Project.UnitTests - "潜在的にすべての単体テスト"
- Project.ViewModels - UI のビュー モデル
- Project.Web - Silverlight アプリのホスト プロジェクト - コードなし
- Project.Web.Infrastructure - データ オブジェクトと WCF サービス
さて、私たちの主な混乱は、アプリケーションの小さなコンポーネントである「Project.MajorFunctionA」のようなものと同様に、それらを分離するために名前空間だけを除外しない理由と、なぜ独自のプロジェクトを持たなければならないのかということです。(その特定の関数のビューとビューモデルは、そのプロジェクトではなく、他のクライアント/ビューモデル プロジェクトに存在することに注意してください。
これには理由が見当たらないので、何らかの検証を求めているだけです。