Arquitetura de Soluções

por Waldemir Cambiucci

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.: http://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.: http://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.: http://blogs.msdn.com/otavio/archive/2008/10/19/semana-de-acontecimentos.aspx


Por enquanto é só! Até o próximo post 🙂


Waldemir.