Pergunta

Estive lendo o livro Pro ASP NET MVC Framework e eu estou realmente ficando confuso com um monte de coisas.Eu tenho tentado fazer algumas pesquisas, mas eu estou achando que com tantas diferentes abordagens e conceitos que estão sendo jogados em mim, é só piorando as coisas.
Então, eu tenho algumas perguntas:

  1. Eu sei MVC é suposto para dividir a funcionalidade em três coisas principais:Modelo -> Controller -> Modo De Exibição.É o MVC uma abordagem diferente do que a arquitetura de três camadas?Ou sou eu que ainda deveria estar pensando em criar uma Camada de Acesso a Dados e a Camada de Lógica comercial no meu projeto?

  2. O que são Repositórios?Ele é o que age como a minha Camada de Acesso a Dados?Onde/Como Repositórios de ajuste para o MVC?

  3. O livro fala sobre como usar o LINQ to SQL para interagir com o banco de dados, mas ainda afirma que o LINQ to SQL não serão suportados no futuro e que a Microsoft está soltando-a para o Entity Framework.Onde o Entity Framework caber em MVC e como faço para interagir com ele?

Agradecemos antecipadamente por sua ajuda!
Matt

Foi útil?

Solução

  1. MVC é principalmente um padrão para a camada de apresentação, e centra-se sobre a interação entre a visão eo controlador. O modelo pode ser considerado o componentes do aplicativo que são responsáveis ??pela manutenção estado, incluindo a persistência.

    Em uma aplicação simples do modelo pode ser apenas um modelo de LINQ to SQL. Em um aplicativo de grandes empresas o modelo pode conter uma camada de acesso a dados, camada de negócios, e uma camada de domínio. Será que o ASP.NET MVC não restringi-lo a forma como o M deve ser implementada.

  2. O Repository padrão é uma maneira de implementar a parte persistência do M . A ActiveRecord é outra. Qual padrão escolher depende da complexidade da aplicação, e suas preferências.

    Dê uma olhada Passo 3 do tutorial NerdDinner onde criar um simples repositório usando LINQ to SQL.

  3. LINQ to SQL não será morto. Microsoft ainda irá melhorar o núcleo e adicionar solicitações dos clientes onde faz sentido, mas Entity Framework seria o foco principal. Dê uma olhada neste post para LINQ às mudanças SQL em .NET 4.0 .

    A EF pode ser usado é uma maneira semelhante como LINQ to SQL, mas também é mais flexível para que possa ser utilizado de outras maneiras. Por exemplo EF4 vai mais ou menos persistência apoio de seus próprios objetos POCO de uma forma mais Domain Driven projeto.

Outras dicas

Sim, eu acho que MVC é uma abordagem diferente de "a" arquitetura em 3 camadas, que eu acho que você quis dizer aqui (arquitetura, onde você cria, principalmente, de 3 projetos de DAL, BL, e a INTERFACE do usuário).A ideia principal por trás do MVC é a separação de preocupações entre cada um de seus componentes (Modelo, Visão e Controlador).O controlador é o componente responsável pelo processamento de pedidos do usuário, e na maioria dos casos, empresas com o "Modelo" componente para exibir a vista pretendida como uma resposta à solicitação do usuário.A diferença entre esta e a tradicional arquitectura de 3 camadas, é que o DAL, e BL são agrupados agora e chamado de Modelo e sim, você ainda precisará criar esses componentes.
O que são repositórios?
Martin Fowler cita a definição de um repositório como "Medeia entre o domínio e os dados de mapeamento de camadas usando uma interface de coleção-como para acessar objetos de domínio" Repositórios são parte de sua camada de acesso a dados, eles não acesso de dados por si mesmos, eles fazem a intermediação entre o domínio e o mapeamento de dados de entidades, e, claro, eles devem ser colocados em seu Modelo pasta/projeto.

Vai Linq to SQL ser preterido?
NENHUM e o mesmo livro afirma, também Damien Guarda de um desenvolvedor no ADO.NET equipe) mencionado em um dos posts de seu blog que o Linq to SQL será incluída .NET 4.0.

Como interagir com a EF?
Como você faria com o Linq to SQL.Como o Linq to SQL, Entity Framework vai ser o seu mapeamento de entidades, e vai residir no Modelo de projeto.
Espero que isso ajude!

Eu acho que você está um pouco confuso sobre essas coisas, e eles são confuso, então vamos passar por cima deles lentamente.

  1. N-camadas Arquitetura e MVC são diferentes, mas interligados. N-Tier normalmente fala sobre a separação de acesso a dados, lógica de negócios e interface do usuário. No entanto, algumas pessoas podem argumentar que é impossível BLLs totalmente separadas da UI; endereços MVC que, de tal forma que não há um controlador correspondente falar com o seu BLL, e à sua vista, em vez de ter a sua exibição falar diretamente com seu BLL.

  2. Sim, ter repositórios é uma abordagem para ter uma DAL . Há muitas maneiras de fazer isso, e você não deve limitar-se ao que é discutido no livro.

  3. O livro só usa LINQ to SQL para demonstrar ASP.NET MVC a maneira mais rápida possível, mas não é a única maneira parar de pensar em LINQ to SQL para um minuto.; ASP.NET MVC pode ser usado se você usar um ORM como NHibernate ou você usar plain ADO.NET + DAL fábrica ou qualquer outra coisa - o que você não vai vai ser capaz de usar são aqueles ObjectDataSources ASP.NET que você arrastar e soltar com sua interface do usuário.

Como para Entity Framework, Brad Abrams escreveu um guia agradável em como usar o Entity Framework com ASP.NET MVC , que devem cobrir a sua última pergunta.

HTH

  1. Sim, você ainda precisa criar acesso a dados e camadas de lógica de negócios mesmo. Alguns podem argumentar que a camada de Controlador é a lógica de negócios, mas eu, pessoalmente, prefiro a separação entre a lógica de negócio real (por exemplo, cálculo de preços) da lógica de negócios de tela (por exemplo, manipulador de eventos para o botão "OK"). Então você vai chamar estes de sua classe Controller. Os controles de classe controlador da lógica para a sua tela e gerencia a tradução de seus dados / camada de lógica de negócios para o valor do ecrã.

  2. o quadro puts ASP.NET MVC nenhuma restrição sobre o "Modelo" camada, o que significa que você pode usar o que quiser, incluindo NHibernate, LINQ to SQL ou Entity Framework. Eu uso o LINQ to SQL porque é simples.

  3. Não tenho certeza, nunca li esse livro. Eu apenas o download do projeto NerdDinner de Scott Hanselman do CodePlex e usar isso como um guia para escrever sites ASP.NET MVC.

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