Está é a Biblioteca Virtual. Um projeto utilizando Asp.NET Core, com EntityFramework e utilizando arquitetura DDD (Domain-Driven Design).
Ela foi construída por Leonardo Sena, e pode ser encontrado no Github para download.
O projeto foi divido em três camadas, Presentation (views, arquivos estáticos e controllers), Application (serviços, view models e mensagens para o usuário) e por fim, Data (entidades, o mapeamento destas, repositórios, contexto e migrations). Estas camadas seguem os princípios do DDD, com a informação navegando da view, para os serviços, para os repositórios, e finalmente chegando ao banco de dados.
A aplicação é bem simples, e constitui de quatro cadastros com a finalidade do usuário ter uma lista de livros para pesquisar por titulo e autor. O usuario primeiramente cadastra as editoras, autores e categorias, e em seguida, utiliza estas informações para cadastrar os livros.
A aplicação de apresentação utiliza bootstrap 4.0, vue.js para realizar o two-way databind no componente da grade de livros e nos componentes que populam os elementos de select no cadastro de livros. Por fim, todos os arquivos estáticos estão utilizando cache para melhor desempenho. O Vue foi escolhido pela sua simplicidade e tamanho reduzido, atendendo a necessidade básica de realizar o binding com os elementos com pouco código javascript. E por fim, também foi criado um componente para enviar a imagem com a capa do livro para o servidor.
A aplicação de serviços constitui no meio-termo entre as controllers e os repositórios, utilizando de uma DTO (data transfer object) para transportar essas informações dos repositórios para as controllers na primeira camada.
Por fim, a aplicação de dados utiliza de classes para realizar o mapeamento das tabelas com o EntityFramework. E disponibiliza repositórios para serem utilizados pelas camadas superiores, por meio de interfaces. Foi criado um repositório base para centralizar os métodos mais utilizados pelos repositórios, para atender os princípios do DRY (don't repeat yourself).