Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract EfSpecificationEvaluator in own repository #10

Closed
mrukas opened this issue Dec 15, 2019 · 4 comments
Closed

Extract EfSpecificationEvaluator in own repository #10

mrukas opened this issue Dec 15, 2019 · 4 comments
Labels
enhancement New feature or request
Milestone

Comments

@mrukas
Copy link
Contributor

mrukas commented Dec 15, 2019

Wouldn't it make sense to extract the specification evaluators in an own repository? It may lead to a cleaner separation. Now this repository has a direct dependency to EF Core which may not be necessary. A specification may be evaluated to EF queries, ODATA queries, file system access or whatever.

I think an own Nuget package per evaluator would be a great idea.

@ardalis
Copy link
Owner

ardalis commented Dec 16, 2019

That was the original plan but I opted to keep it simpler for now since the only evaluator I have to start is for EF Core and I didn’t want the complexity of maintaining many small interdependent packages slowing down initial progress.

But yes I’m open to that split now.

@mrukas
Copy link
Contributor Author

mrukas commented Dec 16, 2019

I totally understand that. Keeping it simple at first makes sense.

@ardalis ardalis added the enhancement New feature or request label Jan 2, 2020
@fiseni
Copy link
Collaborator

fiseni commented Jan 7, 2020

@mrukas I think this structure is partly my fault, and added to the confusion. The logic of the evaluator was within the repository implementation itself. I took it out into utility class simply based on esthetical reasons, but with time it became a separate "thing" I guess.
The evaluator on its own doesnt make much sense without the repository, and vice versa.
I would suggest the following.

  • Abstract package "Specification", containing the base specification and the interfaces.
  • Implementation packages "Specification.Efcore", containing the repository implementation along the spec evaluators.

@ardalis ardalis added this to the 4.0 milestone Jun 8, 2020
This was referenced Jun 30, 2020
@fiseni
Copy link
Collaborator

fiseni commented Aug 9, 2020

This is implemented in version 4. I'm closing the issue. If anyone has additional comments or suggestions, please feel free to reply or re-open the issue.

@fiseni fiseni closed this as completed Aug 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants