Construindo soluções com Entity Framework e arquitetura em múltiplas camadas.

Olá pessoal, tudo certo?

Esse assunto tem sido recorrente desde julho, retornando em algumas discussões com empresas de diversas áreas: Como organizar uma arquitetura de solução usando Entity Framework? Como representar as entidades de negócio, as interfaces de serviços e como passar esses dados entre as várias camadas de uma aplicação?

Para começar, tenho recomendado olhar a parte IV do AppArchGuide 2.0, que anunciamos semana passada, aqui:

patterns & practices : Application Architecture Guide 2.0
Ref.: https://blogs.msdn.com/wcamb/archive/2008/12/19/patterns-practices-application-architecture-guide-2-0.aspx

Uma arquitetura de referência interessante é a organização de uma aplicação desktop (Rich Client Application), como vemos a seguir:

image

Note que na camada de negócios, temos os Business Workflows, Business Components e os Business Entities bem definidos. Nesse cenário, os BE's representam as abstrações de dados que obtemos a partir da camada de dados, via Entity Framework.

Na sequência, um bom exemplo de implementação é dado no artigo do John Papa, que segue abaixo:

Entity Framework em arquiteturas de camadas
John Papa
Ref.: https://msdn.microsoft.com/pt-br/magazine/cc700340.aspx

O artigo apresenta uma solução que oferece um bom começo para quem está pensando em projetos com o Entity Framework. A figura a seguir apresenta a organização básica da solução, onde vemos as interfaces em WCF para comunicação entre a camada de apresentação e a camada de negócio.

image

Finalmente, vale lembrar que o Otávio fez uma apresentação sobre o assunto durante o último Tech-Ed Brasil 2008, usando o mesmo artigo do John Papa para falar sobre múltiplos contextos e boas práticas. Veja alguns comentários dele aqui:

Semana de acontecimentos
Ref.: https://blogs.msdn.com/otavio/archive/2008/10/19/semana-de-acontecimentos.aspx

Por enquanto é só! Até o próximo post :)

Waldemir.