O que NÃO é MVC? (em um aplicativo da web)

5

É fácil encontrar muitas descrições do que é MVC - por exemplo, aqui , aqui ou neste vídeo .

Estou curioso, o que NÃO é MVC?

ou mais precisamente - Em um aplicativo que usa o MVC, o que é todo o resto do MVC?

.

Eu vejo a tendência de começar a explicar o MVC em uma forma de

Separe o aplicativo em três partes [...]

O que parece sugerir que você deve tentar encaixar o máximo possível (ou todos) do seu design em Modelo, Visualização ou Controlador.

.

No entanto, é fácil ver que, na maioria das explicações, o MVC é descrito principalmente como um design da interface de usuário . Como nesta situação eu trato elementos que não são da interface do usuário?

  • Eu dobrei definições de elementos que não são da interface do usuário e tentei descobrir se elas poderiam se adequar ao Modelo ou ao Controlador?
  • Existe uma descrição separada no design do MVC que lida com elementos que não são da interface do usuário?
  • Existe uma descrição de como o MVC interage com esses elementos? Tudo é através do modelo? Tudo através do Controller?

.

Por exemplo:

Eu estou querendo saber como eu trato a parte do meu aplicativo que é usado apenas para monitorar minha rede local e armazenar as informações em um banco de dados. Ele não tem nenhuma funcionalidade relacionada à interface do usuário e sua única finalidade é preencher o banco de dados com informações relacionadas a arquivos, que, por sua vez, são apresentadas ao usuário por meio da interface da Web.

    
por Voy 05.11.2015 / 12:16
fonte

2 respostas

7

I'm wondering how do I treat the part of my application which is used only for monitoring my local network and storing the information in a database.

Várias arquiteturas implementam esse código de maneira diferente, mas em uma arquitetura em camadas, você precisaria criar camadas, por exemplo, Camada DataAccess, camada lógica de negócios. etc ..

O seu modelo ( existem diferentes tipos de modelos ) irá interagir com estas camadas conforme necessário, tudo depende do seu aplicação ou arquitetura de software realmente.

Do I bend definitions of non-UI elements and try to figure out whether they could fit to either Model or Controller ?

Eu diria que seus "elementos não relacionados à interface do usuário" são, na verdade, sua lógica de negócios que precisa entrar no Modelo, que pode interagir com diferentes camadas, por exemplo, Camada de banco de dados, etc.

Devo adicionar lógica ao meu Controlador

Recomendaçõesadicionais

AquiestãoalgunsexemplosdeprojetosdesenvolvidoscombasenoDDDusandooMVCeoutrastecnologiasquepodemajudarvocêaentendermelhoresseassunto,

EFMVC - ASP.NET MVC 4, Código de Entidade Framework 5 Primeiro e Windows Azure

Exemplo de aplicativo da Web para ASP.NET MVC 5, código EF 6 primeiro, AutoMapper, Autofac e TDD

    
por 05.11.2015 / 12:28
fonte
1

Um aplicativo MVC é aquele em que há uma decisão arquitetônica consciente de separar os componentes da apresentação (geralmente através da interface do usuário) que lidam com três preocupações específicas:

  • O Modelo, que representa a informação a ser exibida, mas que é completamente agnóstico de como a informação é apresentada.
  • A visualização, que exibe as informações no modelo, mas não tem ideia de como o modelo foi criado.
  • O Controlador, que identifica o Modelo e a Visualização corretos para a ocasião e reúne os dois

Em teoria, e muitas vezes na prática, o mesmo modelo pode ser conectado a várias exibições - a visualização apropriada depende do cenário (por exemplo, navegadores do Mobile vs Desktop ou html vs json). E a mesma visão pode ser usada para exibir muitos modelos diferentes, desde que os modelos tenham bastante em comum entre si para que isso seja útil.

Em aplicativos NOT MVC, esses três sistemas não são mantidos separados uns dos outros (comuns em aplicativos antigos) ou são divididos de maneiras diferentes.

O aplicativo MVC também pode ter muitos outros componentes. Esses componentes podem ser usados na construção dos modelos, na atualização da camada de dados, na aplicação da segurança, no registro em log e em qualquer outra coisa que seu aplicativo precise.

    
por 05.11.2015 / 12:35
fonte