Conselhos simples de arquitetura de aplicativos

Estou tentando criar um pequeno aplicativo da web de demonstração que seja pouco acoplado, altamente testável, tenha um bom código limpo etc. Em resumo, estou tentando fazer as coisas da maneira certa. ;)

tualmente, tenho três projetos em minha solução Wolfi

Wolfie.Core - contém entidades comerciais Wolfie.Data - contém código de acesso a dados, referências ao Core. Wolfie.Web - será um site interessant

Tal como está, o Core não sabe nada sobre nenhum dos outros projetos. Os dados devem fazer referência ao Core, pois o Core tem os tipos que Data retornará. Portanto, neste momento, percebo que a Web precisará fazer referência a Core e Data para poder funcionar como o tipo de entidade está no Core e as chamadas de banco de dados estão em Data.

Todas as classes de repositório em Data têm interfaces para que os repositórios possam ser simulados para test

Acho que não quero colocar nenhum código ou referência específica do banco de dados no Core e quero manter as regras de negócios da minha entidade fora dos Dado

É issocorrigi para referenciar os dois projetos da Web? ou outro projeto entre a Web e os outros seria necessário para que a Web faça referência apenas a um local e não seja responsável por chamar métodos de dados etc.

que eu pretendo é uma arquitetura em que meu aplicativo principal seja independente das camadas de dados e da We

Espero ter feitoalgun sense e estou ansioso por algumas respostas útei

questionAnswers(10)

yourAnswerToTheQuestion