Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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).

share|improve this question

closed as primarily opinion-based by durron597, MichaelT, GlenH7, Snowman, 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.

up vote 1 down vote accepted

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.

share|improve this answer
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.

share|improve this answer
thanks for the edit and the answer – user278618 May 7 '13 at 9:43
@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.

share|improve this answer
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.