Like two weeks ago I was reading about the
SOLID principles which include the Open/Closed principle. The Specification pattern comes from this principle (I guess).
I was thinking, is it really worth it to use the specification principle? Or is it yet another layer of over-head and un-needed architectural complexity? I was also thinking that rather than implementing a service class which does the querying via a generic repository which in turns abstracts the Entity Framework context class (too much abstraction, no?), maybe I should just create a service class which exposes the EF context object (maybe provided via a Factory class) which allows for easier querying? So you might ask why do I need a service in that case? Its whole purpose would be validation upon add/update/delete operations.
So basically, I'm lost between two completely opposite architectures and would like to hear from you guys to make up my mind...