Pergunta

Saudações,

desculpas antecipadamente que eu não ter pesquisado este bastante com dureza para responder à pergunta-me, mas eu imagino que iria me levar algum tempo e eu preferia saber agora antes de eu investir mais tempo em aprender isso. Eu não poderia encontrar qualquer coisa em minha pesquisa inicial ..

Por que usar ASP.Net MVC se o seu já usando uma arquitetura multi-tier (camada de dados, lógica de camada, camada de apresentação)? Além do fato do controlador tem mais poder do que a camada de lógica.

Am I certo em pensar que posso usar nHibernate e todas as minhas classes de acesso de dados, entidades e mapeamentos na parte Modelo do MVC?

Ao usar controladores, é melhor separar um monte de lógica em uma classe separada para que eu possa chamá-lo de vários controladores? Ou posso chamá-los a partir dos controladores de si mesmos, considerando o fato de que eu não gostaria que todos eles sejam Ações, apenas métodos normais.

Graças

Foi útil?

Solução

MVC não é para substituir N-Tier, é uma forma de organizar a camada de apresentação.

Eu não diria que o controlador é mais poderoso do que a camada de lógica. Em vez disso, o controlador (como uma parte da camada de apresentação) ainda deve chamar a camada de lógica.

Controllers só deve preparar os dados para pontos de vista e ações alça de pontos de vista. Você ainda deve usar o seu BLL.

Outras dicas

Sim, entidades NHibernate pode (e devem ser) ser passados ??para as vistas.

Isso você vai chegar em algum problema. Você deve usar achatada, DTOs nulos-safe modelos de exibição também chamadas.

Damien, você pode querer ler estes 2 publicações:

O Fat Controlador

uma visão de arquitetura do MVC Framework ASP.NET

N-tier é um padrão archtitectual , para permitir a reutilização, seperaation de preocupações e escalabilidade das áreas-chave de sua aplicação. As camadas não UI (de negócios, dados Fachada etc.) deve ser unidade testada e UI agnóstico.

A camada de interface é apenas uma dessas camadas de tempo que seja Silverlight, o ASP.NET MVC, formas Web, etc.

MVC, como MVP é um padrão projeto que permite uma melhor capacidade de teste da camada de interface do usuário. ASP.Net MVC é um fora do quadro caixa que apoia e reforça esse padrão. O padrão foi arround um em uso muito antes deste quadro.

Mas isso é simplesmente uma escolha camada de interface do usuário, não deve haver nenhuma interação com bancos de dados, serviços etc nos controladores, eles controlam o estado da vista usando o modelo, não deve controlar a lógica de negócios, peresistence, transações etc.

Para responder à sua pergunta sobre o porquê de usar se você já está indo multi-tier é que ela torna mais organizado e-motor de busca amigável URL do. Além disso, é mais de um padrão normal do que os outros padrões tendem a estar em ASP.Net. Que o torna mais amigável desenvolvedor para aqueles que já estão usando MVC em outras plataformas.

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