I've extracted interfaces from my repository classes, like ICustomerRepository, IProductRepository and so on. The project which contains the repositories is named X.DataAccessLayer. Should I call the project with the interfaces X.DataAccessLayerInterfaces, or what is better?

And I definitely have to keep the interfaces in a separate project (I have 2 projects with implementations of these interfaces).

closed as primarily opinion-based by durron597, user40980, GlenH7, user22815, gnat Aug 6 '15 at 12:34

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.


Use whatever name you can think of that correctly describes the contents and does not feel too long.

Personally, X.DataAccessLayerInterfaces feels too long for me, so I would probably opt for X.DataAccessInterfaces, but otherwise there is nothing wrong with it.

  • 3
    I'd say we're at a point in time to use DAL. – JeffO May 7 '13 at 12:31

The naming pattern also depends on your other projects. Depending on the contents of your implementation projects it could be something like this:

  • X.DataAccessLayer
  • X.DataAccessLayer.Sql
  • X.DataAccessLayer.Oracle

PS: I would drop 'Layer' as well, unless you have a mix of independent libraries and actual layers.

  • @user278618 no problem! – Den May 7 '13 at 9:44

I would go with x.DataAccess.Interface and have your implementations as x.DataAccess.Oracle, x.DataAccess.EF or whatever.

  • Your answer would be stronger if you provided supporting evidence or reasoning to justify the claim you've made. – GlenH7 May 8 '13 at 10:33

Not the answer you're looking for? Browse other questions tagged or ask your own question.