N-LAYER ARCHITECTURE
Autor: Guilherme Gabriel | Publicado: 2010-11-22T12:46:00-08:00

N-Layer, ou multi-camada, as aplicações são concebidas utilizando camadas que lidar com uma responsabilidade única. Muitos aplicativos usam três camadas: apresentação, lógica de negócios e de dados do Access.Isso é semelhante à arquitetura de n-tier , mas a diferença principal é representar níveis de hardware físico, enquanto camadas representam software. 
Na abordagem em três camadas, a camada de apresentação consistirá na interface com o usuário, a lógica de negócios que consistem em objetos que o processo de regras de negócios e de Acesso à camada de dados seria falar diretamente com a fonte de dados.&nbsp; Este projeto trabalha geralmente bem. 
Colocá-los juntos Uma das coisas que achei um pouco confuso sobre o MVC no início era exatamente o que é o modelo? Depois de muita pesquisa e testes, finalmente encontrei algo que faz sentido para mim. 



O diagrama acima é o layout geral que eu uso no desenvolvimento de uma aplicação MVC. Aqui está uma breve descrição dos vários componentes do diagrama: 
·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Modelo - Neste diagrama, o modelo seria composto dos Serviços, Repositórios e camadas DatabaseConnection junto com objetos de domínio. ·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visão - A visão é o projeto ou elementos de apresentação do pedido, como HTML ou CSS. ·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Controlador - O controlador é a camada que leva o pedido. Ele processa os pedidos do usuário e envia-las ao modelo e, em seguida, devolve as informações processadas para o ponto de vista. ·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Serviços - Esta camada lida com as solicitações a partir do controlador. Esta é a camada que contém as regras de negócio de como o aplicativo deve funcionar. ·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Repositórios - Esta camada realiza CRUD (Create, Read, Update e Delete) operações no banco de dados. ·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DatabaseConnection - Esta é a camada de abstração maior aproximação entre a fonte de dados e repositório. Não é necessário, mas eu costumo usar quando eu precisar trabalhar com várias bases de dados.&nbsp; A camada DatabaseConnection foi construída a generalizar entre três pilotos diferentes banco de dados e utilização de métodos comuns para trabalhar com cada um. ·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Camada de Acesso de Dados - Esta camada consistirá na Repositories, DatabaseConnection, fonte de dados SQL e dados de outras fontes. ·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dados Outras Fontes - Isso pode incluir um arquivo XML, banco de dados de outro, ou mesmo um serviço web. ·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Domain Objects - Isso não é necessariamente uma camada, apenas uma coleção de objetos utilizados para tornar mais fácil para trabalhar com os dados da fonte de dados. Observe que todas as outras camadas precisam ser capazes de trabalhar com esses objetos. Um exemplo de um objeto de domínio pode ser uma classe Employee que armazena informações sobre um empregado e é preenchida a partir de uma fonte de dados no repositório. O objeto de empregado pode ser passado de cada camada de volta para o ponto de vista, onde é exibida para o usuário. &nbsp;Esta é apenas uma breve visão geral da MVC com a abordagem da camada n-﻿