現在作業中のASP.NETMVC3アプリケーションがあります。私は、ビジネスロジックを含み、コントローラーによって使用されるサービスレイヤーを実装しています。サービス自体はデータアクセスにリポジトリを利用し、リポジトリはエンティティフレームワークを使用してデータベースと通信します。
つまり、上から下へは、コントローラー>サービスレイヤー>リポジトリ(各サービスレイヤーは単一の注入可能なリポジトリに依存します)>エンティティフレームワーク>単一データベースです。
UserService、EventService、PaymentServiceなどのアイテムを作成しています。
サービスレイヤーには、次のような機能があります。
ChargePaymentCard(int cardId, decimal amount)
(PaymentServiceの一部)ActivateEvent(int eventId)
(EventServiceの一部)SendValidationEmail(int userId)
(UserServiceの一部)
また、これを使用している2番目の例として、これらのサービスの1つを利用するスケジュールされたタスクとして実行される別の単純なコンソールアプリケーションがあります。これらのサービスの複数を使用する必要がある次の2番目のWebアプリケーションもあります。
さらに、物事を分割し(単一のデータベースなど)、将来的にサービス指向アーキテクチャーに移行し、これらの一部をWebサービスに分割すること(おそらく、 -.NETアプリはいつか)。私は、SOAへの飛躍を今後の苦痛を和らげる可能性のあるステップに目を光らせてきました。
サービスごとに個別のアセンブリ(DLL)を作成する方法を開始しましたが、間違った方法で開始したのではないかと思います。私は柔軟性を持ち、物事をゆるく結びつけようとしていますが、このパスは(SOAに向けて、または一般的に)私を助けてくれますか、それとも単に複雑さを追加するだけですか?代わりに、サービスレイヤー全体を含む単一のアセンブリ/ dllを作成し、サービスを使用する必要がある場所でその単一のアセンブリを使用する必要がありますか?
私が始めているパスの意味がわからないので、これに関する助けをいただければ幸いです!