DEV Community

Discussion on: Mejorando la Organización de Código con Vertical Slice Architecture (Parte 6)

Collapse
 
jtempra profile image
Josep Temprà

Muy bueno Isaac...
Sabes de algun ejemplo de app con clean architecture que incorpore API, Fluent Validation, CQRS, Repositorio Generico y el patron specification?
O voy mal encaminado con esta solución?
Muchas grácias!!!

Collapse
 
isaacojeda profile image
Isaac Ojeda

Gracias!!

Hablando de Clean Architecture me gusta siempre basarme en la de Jason Taylor pero no usa specification y el repositorio genérico al usarse Entity Framework, ya viene incluido.

También otra solución que me gusta es la de Ardalis que sí usa specification.

El specification pattern no me gusta usarlo por que aun no he necesitado o descubierto su beneficio en los proyectos que trabajo.

Ardalis tiene muchas platicas, también Jason Taylor, por si gustas verlos

Saludos!!

Collapse
 
jtempra profile image
Josep Temprà

Hola Isaac, muchas gracias por la respuesta...
No soy muy experto y entiendo que cuando dices que EF ya lleva repo generico te refieres a que simplemente trabajas con _context.Entity.****, no?
En cuanto a no usar el especification, como harias una query de una entidad por cualquier combinación de sus propiedades?
Es que a lo mejor no veo la solución facil! jejej
Gracias de nuevo por tu dedicación.
Josep

Thread Thread
 
isaacojeda profile image
Isaac Ojeda

Con gusto!

Y, realmente no entiendo tu pregunta, cuando hago Queries simplemente con Linq los hago justo como lo has visto en los artículos.

Para mi el specification pattern sirve para no estar repitiendo las expressiones en los filtros, en dado caso que estas se usen en distintos lados. Si cambias el specification por requerimiento, afectará todos los lugares donde se usa (que en este caso, es la intención).

Podría ser que hay expressiones muy complicadas y que no necesariamente se re-utilizan, tal vez ahí se podría usar también, pero para mi es mucha "ceremonia" y agrega complejidad (ironía).

Thread Thread
 
isaacojeda profile image
Isaac Ojeda

Y sí, _context.Entity.* yo lo considero el Generic Repository, solo que aquí muchos consideran que estar fuertemente acoplado a Entity Framework es malo, yo en lo personal y en nuestros proyectos, asumimos que nunca cambiaremos de Framework y aunque sí cambiaramos de base de datos, EF soporta muchos motores.