私はオニオンアーキテクチャを学ぼうとしていますが、私が理解しているように、次のようにソリューションを整理しました:
ドメイン
- Domain.Entities (ビジネス オブジェクト)
- Domain.Interfaces (ドメイン サービスとリポジトリのインターフェイス)
- Domain.Services (ドメイン サービス インターフェイスの実装)
インフラストラクチャー
- Infrastructure.Data (EF を使用したリポジトリと作業単位の実装)
- Infrastructure.DependencyResolution (UnityによるIoCの実装)
UI
- UI.WebMVC
そして、ここに私の質問があります:
1-これらのレイヤーで正しいですか、それとも何か不足していますか?
2- 特定のテクノロジー (ロギングなど) に関連するサービスについては、そのインターフェースはどこにあるべきか (Domain.Interfaces または Infrastructure.Interfaces) ?
3-私が理解しているように、ドメインサービスは私のビジネスユースケースを処理します。アプリケーションサービスから得られる利点は何ですか
4- Domain Service と Application Service の違いは何ですか? また、Application Service インターフェイスはどのプロジェクトに配置する必要がありますか?
5- ユーザー認証プロセスは、アプリケーション サービスまたはドメイン サービスの一部にする必要がありますか?