Pergunta

Minha opinião é que faz e não.

  1. Ele separa a lógica e os dados da interface do usuário, mas ainda se juntam a um aplicativo de ponto único.
  2. É por isso que acho que não, porque os controladores são lógica de negócios, as visualizações são interface do usuário, os modelos são dal. Agora são apenas camadas dentro do mesmo aplicativo.

Mas as camadas deveriam ser a primeira ou a segunda variedade a ser chamada camadas?

Alguém quer adicionar seus próprios 2 centavos?

Foi útil?

Solução

O projeto de modelo MVC é apenas para começar - você pode facilmente Mova os controladores e/ou modelos para separar projetos, se desejar, e se isso faz sentido em seu aplicativo. Lembre -se de que, para um pequeno aplicativo com talvez três controladores, algumas classes extras na camada de modelos, além de um modelo de dados EF ou LINQ, você realmente não tem arquivos suficientes para justificar a separação em projetos diferentes.

Outras dicas

Não penso nos controladores como lógica de negócios. Eles são a lógica do aplicativo, a cola que une a lógica de negócios (modelo) e a lógica de apresentação (visualização).

Bem, meu bolo de aniversário tinha camadas, mas ainda era um bolo grande ... então sim?

Fora claro, sim!

Eu acho que as visualizações e os controladores contêm a lógica da interface do usuário ... a lógica de negócios deve estar no modelo (que não é apenas o DAL).

Como modelo que você poderia usar por exemplo Objetos CSLA e adicione mais algumas camadas físicas, conforme necessário (por meio da configuração).

Você precisa saber que há uma diferença entre camadas lógicas e físicas (ou camadas vs camadas) ...

Existem muitos artigos interessantes no site de Lhotka sobre este tópico!
Por exemplo Este e Este.

Camadas e camadas são intercambiáveis. No contexto de uma camada n, você chamaria de camada de apresentação, mas no contexto de um aplicativo em camadas, você chamaria de camada de apresentação. Mas realmente eles são a mesma coisa.

Um teste decisivo de aplicação de n-camada e acoplamento solto seria se você pudesse pegar cada uma das camadas e construí-los como projetos separados e implantá-los em diferentes máquinas.

O principal diferencial para aplicações de n-camada é a separação de preocupações (SOC) e o baixo acoplamento. Um aplicativo verdadeiramente dissociado pode ser aquele em que você tem um nível que não contém nada além de HTML puro. Em seguida, outro que contém JavaScript puro e usa o Ajax para atualizar o DOM e se comunicar com o Serviço da Web. O serviço da web compreende seu próprio conjunto de níveis.

O serviço da Web possui um mecanismo de roteamento que direciona as solicitações para os diferentes controladores. Os controladores higienizam e interpretam a solicitação, verifiquem a autenticação e o que não e chamam os modelos apropriados. Os modelos, por sua vez, devem retornar objetos POCO ou DTOs e devolvê -los ao JavaScript que os injeta no DOM. O JavaScript pode modificar os objetos e enviá -los de volta para serem persistidos no banco de dados. Entidade Framework 4.0 tem um bom suporte para tal cenários de n-camada Embora fique um pouco curto no departamento SOC (digita fortemente as visualizações, por exemplo), mas é prático para mais propósitos.

O MVC Futures, acredito ter suporte para alguns contêineres de controle de controle (COI) e atualmente, se você quiser um acoplamento solto e cenários verdadeiramente N-Tier, provavelmente precisará usar um contêiner do COI da sua escolha.

"Tier" geralmente se refere a diferentes servidores físicos, enquanto "camadas" refere -se à separação da funcionalidade em áreas frouxas.

Isto é, um aplicativo da web de três camadas: Nível 1) Nível de servidor DB 2) Nível 3 do servidor da web 3) navegador do cliente

Aplicativo da Web de 3 camadas: Camada 1) Camada da interface do usuário 2) Camada lógica de negócios 3) Acesso de dados

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