Why is the 'Data Layer' spread across 5 projects

Apr 4, 2014 at 5:54 PM
It appears the 'Data Layer' is spread across 5 projects, (Repository.Pattern, Repository.Pattern.Ef6, Service.Pattern, Northwind.Entities, and Northwind.Repositories). Is this really necessary? Is there any value in keeping the 3 projects under the 'Frameworks' folder separated?

Long: Repository.Pattern is nothing but interfaces at this point, zero implementation in this project (v3.2.1), so that we can easily implement other providers e.g. nHibernate, Mongo, etc. in the near future (this is planned, however can't commit to any dates due to bandwidth, but obviously we are already making architectural changes now for this). Repository.Pattern.Ef6 is obviously now the "EF Provider" hence it's existence. Northwind.Entities is all things Entity Framework, Northwind.Repositories is where all your re-usable custom queries/CRUD would live, which teams typically would include in their WP8 app, WebApi, MVC, WF, etc. Northwind.Service is where business logic would live e.g. calling difference services before deleting a user, calling FedEX to validate customer's shipping address before changing status to an order, calculate shipping price before inserting an updating/inserting an invoice, etc. One could arguably collapse some of these projects vice versa, it's really up to you, your design requirements, and ultimately how you want your architecture/solution organized, in short what arrangement works best for you architecturally.
Marked as answer by lelong37 on 4/6/2014 at 5:57 PM