Repository e UnitOfWork com EF 4 Code First são necessários?

99 views
Skip to first unread message

JR

unread,
Jan 30, 2012, 7:53:46 AM1/30/12
to .Net Architects
Pessoal,

Encontrei este post:
http://www.matthidinger.com/archive/2012/01/25/a-smarter-infrastructure-automatically-filtering-an-ef-4-1-dbset.aspx.

O autor coloca em discussão a utilização do Repository Pattern e do
UnitOfWork Pattern uma vez que O DBContext / DbSet já é uma abstração
desses patterns.

O que voces acham?

[]s

Carlos Abdalla

unread,
Jan 30, 2012, 8:06:10 AM1/30/12
to dotnetar...@googlegroups.com
Eu uso o Repository Pattern com EF Code First, não vejo como obrigatório, mas que vai te ajudar nas tarefas chatas e repetitivas a isso vai!

Att.


--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br

André Tinchant

unread,
Jan 30, 2012, 8:09:49 AM1/30/12
to dotnetar...@googlegroups.com
Acredito que como toda decisão arquitetural essa decisão possa ser levada em consideração dependendo dos requisitos do projeto.
 
Depender de uma tecnologia. Por motivos obvios em varios casos é inviavel mas também pode facilitar outros requisitos de seu desenvolvimento.
 
off: Alguem já havia visto esse link? o que acharam?
2012/1/30 JR <agcj...@gmail.com>

Fernando Mondo

unread,
Jan 30, 2012, 8:27:24 AM1/30/12
to dotnetar...@googlegroups.com
O DBContext  é um UnitOfWork, e os DbSet são Repositorios, porem eles são engessados ao EF, assim se daqui a um tempo você resolve mudar de ORM terá que refazer todos os seus repositórios.

Marcus Alexandre Silva

unread,
Jan 30, 2012, 8:29:15 AM1/30/12
to dotnetar...@googlegroups.com
Mas é isto que o cara defende....
Ele acha que nunca irá mudar a ORM dele...
Até certo ponto tem razão.

Acaz Souza Pereira

unread,
Jan 30, 2012, 8:30:51 AM1/30/12
to dotnetar...@googlegroups.com
Acho que o maior problema não é ter que mudar de ORM, isso quase nunca acontece, mas criando mais uma camada de abstração você ganha facilidade com testes e organização de código, já que os repositórios irão atender o seu domínio.

Em 30 de janeiro de 2012 11:27, Fernando Mondo <fernand...@gmail.com> escreveu:



--
[Acaz Souza Pereira]

MSN/GTalk: acaz...@gmail.com
Skype: acazsouza
Cel:  (31) 8706-4103

twitter.com/acazsouza

acazsouza.com.br

Winston Pacheco Junior

unread,
Jan 30, 2012, 8:32:10 AM1/30/12
to dotnetar...@googlegroups.com
Eu sempre quis entender isso de "Depender de uma tecnologia" no sentido que as pessoas usam. A gente sempre depende de uma tecnologia, ou não? Nunca troquei um ORM de uma aplicação, não vejo porque não usar a sessão diretamente, já que ela foi feita pra isso.
Eu trabalhei boa parte de minha carreira num dos muitos odiados frameworks corporativos, mas a vida inteira eu sempre falei com o pessoal que trabalhava comigo que eu não entendia a necessidade de "abstrair a abstração", continuo não entendendo até hoje.
Antes todos falavam na necessidade de poder usar mais de um banco de dados para a mesma aplicação (na prática, nunca precisei), o NHibernate lhe dá essa opção "de graça", porque eu iria esconder o NHibernate da minha aplicação?


Em 30 de janeiro de 2012 11:09, André Tinchant <tinc...@gmail.com> escreveu:

Marcus Alexandre Silva

unread,
Jan 30, 2012, 8:34:22 AM1/30/12
to dotnetar...@googlegroups.com
Os repositórios, ao meu ver, são só dependências assinadas dos serviços.
Os Serviços sim, é que são escritos para atender o domínio.
Mas, cada caso é um caso.

André Tinchant

unread,
Jan 30, 2012, 8:42:51 AM1/30/12
to dotnetar...@googlegroups.com
Tenho um caso desses raros aqui. Onde quando a forma de acesso principal fica indisponivel (o que  no meu caso acontece em horarios pre-definidos todos os dias) temos que ter uma opção para manter as informações enquanto offline. Nesse caso e em alguns casos especificos não seria viavel optar pela dependencia direta da tecnologia devido a um requisito do projeto. Mas concordo totalmente contigo que diversos projetos não tenham esse requisito e que isso poderia se traduzir em gasto extra de R$...

2012/1/30 Winston Pacheco Junior <winston...@gmail.com>

Winston Pacheco Junior

unread,
Jan 30, 2012, 8:47:45 AM1/30/12
to dotnetar...@googlegroups.com
Excelente André! É o que eu digo, o cara também disse, se você não precisa, pra que você vai fazer isso?
Se você precisa, ótimo! Esse é um caso interessante. Mas não é o normal. Você precisa de uma arquitetura que dê suporte a isso.
Todo mundo aqui na lista fala de BDUF, KISS e várias outras siglas bonitas mas na hora que alguém fala uma coisa óbvia como essa as pessoas se assustam.

JR

unread,
Jan 30, 2012, 9:22:01 AM1/30/12
to .Net Architects
Pessoal,

Essa discussão é muito interessante. Achei mais esta palestra do Scott
Allen na InfQ falando sobre testabilidade do EF 4:
http://www.infoq.com/presentations/Testability-and-the-Entity-Framework

Vale a pena assistir.

[]s

Acaz Souza Pereira

unread,
Jan 30, 2012, 3:26:14 PM1/30/12
to dotnetar...@googlegroups.com
JR

acho que isso já foi discutido várias vezes aqui, alguns tópicos:

https://groups.google.com/group/dotnetarchitects/browse_thread/thread/78c0118064f214c6/59cdb8285dfdbe04?q=repository+pattern&lnk=ol& 


[]s

--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br



--

Rene Felix Correa

unread,
Mar 17, 2012, 11:22:57 AM3/17/12
to dotnetar...@googlegroups.com

Apenas para complementar
Eu trabalhei em um projeto foi necessario alterar o ORM e de tao travado o sistema foi necessario comecar do zero novamente

Alessandro de Souza

unread,
Mar 17, 2012, 11:53:00 AM3/17/12
to dotnetar...@googlegroups.com
Eu acho que trocar de ORM em um sistema é muito muito muito raro....
Se estamos falando de repositório provavelmente estamos falando de DDD, assim se o desenho do modelo for bem feito com as agregações e os contextos como manda o padrão o UOW torna-se desnecessário.

Att,
Alessandro
Reply all
Reply to author
Forward
0 new messages