Estou criando uma solução RESTful da API da Web .NET 4.5 C # e gostaria que alguém me dissesse se minha solução de projeto está correta e / ou sábia (suficiente) para uma solução projetada usando o Domain Driven Design, por favor.
A solução foi dividida em 6 projetos:
- /Base
(Não mencionado por nada)
O projeto da Web e forma a interface entre a solução e o mundo externo. Contém os controladores da API da Web. Contém quase nenhuma lógica além de coletar valores de objetos de solicitação e solicitar trabalho à camada BizApi.
- /Biz.Api
(Referenciado pela Base])
Fornece os serviços de domínio e permite que o projeto de interface / Base tenha acesso aos objetos de lógica de negócios do domínio no projeto /Biz.Domain.
- /Biz.Domain
(Referenciado por Biz.Api)
Fornece as classes de domínio para a camada Biz.Api. Eles fornecem métodos para manipular os dados dos negócios na memória.
- /Dal.Db
(Referenciado por Biz.Api)
A camada de repositório de banco de dados. Acessa os bancos de dados e mapeia os dados retornados para os DTOs internos definidos na camada / Interfaces.
- /Dal.Services
(Referenciado por Biz.Api)
Fornece uma camada de proxy para dependências externas, como serviços da Web, e mapeia seus dados retornados para DTOs internos definidos no projeto / Interfaces.
- / Interfaces
(Referenciado pela maioria dos projetos acima)
Contém as classes DTO para transmitir dados pela solução e as interfaces C # para definir contratos para coisas como IoC.