Pergunta

Eu tenho trabalhado com ASP.NET MVC por um par de meses e agora eu ainda não estou feliz com o layout da solução do meu projeto. Eu estou tentando construir um médio porte CMS site que é tão portátil e reutilizável quanto possível e existem alguns problemas óbvios na concepção dele. Estou à procura de alguns conselhos sobre como devo estruturar minha solução em consideração de separação de interesses. Eu encontrei uma pergunta semelhante aqui , mas ele realmente não atingir alguns dos os problemas que estou enfrentando.

Agora é assim que a minha solução é colocado para fora:

+Project.Controllers - All Controller classes
P+roject.Controllers.Tests

+Project.Core - Utility classes including repetitive tasks and some configuration handlers (this project needs to be better fleshed out)
+Project.Core.Tests

+Project.Models - Model classes, Entity Framework context, and Repository classes
+Project.Models.Tests

+Project.Web - All Views and Content

Uma grande coisa que eu atualmente estou faltando é um lugar para ficar a minha lógica de negócios e eu sinto que eu tenho sido erroneamente colocando a lógica de negócios em minhas aulas de repositório, bem como misturando-o em ações do controlador. Obviamente, estou muito ciente deste problema, eu não sou apenas certo onde eu deveria colocar minha lógica de negócios em que o layout solução. Será que minha estrutura necessidade solução para mudar ou posso manter com segurança que a lógica de negócios em meus modelos de projetos? Além disso, eu realmente não gosto que meu EF Contexto está na classe Models, mas eu não sei de uma maneira de isolar o código da camada de dados das classes de entidade necessárias no meu modelo.

Como está todo mundo colocar para fora sua produção de soluções ASP.NET MVC?

Foi útil?

Solução

Você pode querer verificar o layout do S # arp arquitetura do projeto utilizações ou o cebola arquitectura como utilizados na Code Camp Servidor aplicativo de referência MVC. Ambos os projetos tiveram colocar de esforço colocado em-los por pessoas diferentes para obter um bom sepperation de preocupações no contexto da asp.net MVC e design orientado domínio.

Outras dicas

Pessoalmente, eu só estou aprendendo MVC. Minha experiência vem de ASP.NET WebForms mas gostaria de ir com o layout proposto no link que você deu. A segunda resposta, que é a seguinte:

  • Modelos
  • Visualizações
  • Controlador
  • Serviços
  • testes -. Um para cada projeto

Gostaria de ter EF Contexto e repositórios de modelos e em uma camada de acesso a dados, Project.Data e colocar seus objetos de negócios em Project.BusinessLogic (?).

Isto dá a vantagem de colocar os dois conjuntos (Project.Data e Project.BusinessLogic) em outros aplicativos que você pode construir no mesmo domínio. Isso significa que seu próximo projeto tem um ponto de partida muito útil.

Espero que ajude,

Dan

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top