Olá pessoal, postei no gist.
https://gist.github.com/anonymous/b46d7265681b8ec38b1afdd756ab4ac5
Olá Anderson,
como a organização das pastas varia de pessoa para pessoa e também de projeto para projeto, geralmente o ideal é que seja uma organização que faça sentido para o time que está trabalhando com aquele projeto. Se esta estrutura atual faz sentido para você, no sentido de que em geral não se perde muito tempo procurando algum arquivo e nem existe uma confusão quando vai criar um novo arquivo em qual pasta ele será salvo, então está tudo bem.
Como sugestão de gosto totalmente pessoal, uma mudança talvez que eu faria seria nas Views. Notei que todos os arquivos cshtml e js (e chuto que css e imagens também) estão todos na mesma pasta Views/Objetivo
. Eu geralmente gosto de separar isso em duas pastas, uma que seria esta Views
mesmo, só que deixando apenas os arquivos cshtml, dado que estes arquivos não vão direto para o navegador, primeiro eles são processados pelo Razor no lado do Servidor. E numa outra pasta, por exemplo chamada Content
, eu coloco arquivos estáticos que são enviados direto para o navegador. Então eu teria Content/js
em que estão os arquivos js, uma Content/css
para os arquivos css e assim por diante.
Outra mudança que eu faria seria não deixar as classes de modelo junto com as repository, por se tratarem de responsabilidades diferentes. Classes como a Objetivo são as Entidades que modelam o nosso negócio, por isso faz sentido estar na pasta Model
mesmo. Já uma Repository, como geralmente ela tem como responsabilidade recuperar alguma informação de um recurso externo como um banco de dados, xml ou algo do gênero, geralmente prefiro que ela fique numa pasta DAL por exemplo.
Muito bacana sua resposta Lucas, agradecido. Outra dúvida:
Tenho casos em que tenho um Controller, por exemplo PimController, que tem várias views relacionadas a ele.
Neste caso você recomenda que cada uma delas tenha uma pasta.
Hoje está assim:
views/Pim/...
Aprovar.cshtml
Aprovar.js
Implantar.cshtml
Implantar.js
Finalizar.cshtml
Finalizar.js
Você acredita ser interessante criar pastas para cada uma das views?
Veja uma imagem de como está hoje o projeto:
Obrigado!
Para ficar organizado geralmente para cada controller você teria uma pasta que dentro dela coloca todas as views deste controller. Uma pasta para cada view eu já sinto que começa a complicar dms.
Entendi, é que nessa situação eu tenho alguns .js que são muito grandes e estava pensando em dividir as responsabilidades criando outros arquivos .js.
Aí surgiu essa dúvida.