Comment concevoir une Couche d'Accès aux Données de manière appropriée?

J'ai la suite de Couche d'Accès aux Données (DAL). Je me demandais si il est configuré correctement, ou si j'ai besoin de l'améliorer?

public class User 
{

}

//Persistence methods
static class UserDataAccess
{
   UsersDAL udal = //Choose SQL or FileSystem DAL impl.


   InsertUser(User u)
   {
      //Custom logic , is 'u' valid etc. 

      udal.Insert(u);
   }
}

abstract class UsersDAL
{    
   GetUserByID();
   InsertUser(u);
   ...
}

//implementaitons of DAL

static class UsersSQLStore : UsersDAL
{

}

static class UsersFileSystemStore : UsersDAL
{

}

Je me suis séparé de la couche de stockage à partir de la classe d'Utilisateur pour accéder à des méthodes de collecte, qui a en outre appel personnalisé DAL.

Est l'utilisation de static dans DAL mise en œuvre correcte?

Veuillez suggérer des corrections ou des façons que je peux faire mieux. Je n'ai pas beaucoup d'expérience avec l'écriture de code en couches.

Si vous ne pouvez pas prendre le temps de préciser votre question (à l'aide de Pl. au lieu de s'il vous Plaît), alors comment voulez-vous attendre de quelqu'un pour prendre le temps de répondre à votre question ou vous aider?
Je ne sais pas si ça fait mal à quelqu'un, mais juste pour sauver les gens de la lecture de trop, je l'utilise régulièrement. Au lieu de cela, je me suis concentré sur l'écriture en bas de mon exemple. Cela ne signifie pas que je ne goûtent le temps des personnes et de leurs réponses.
Pourquoi voudriez-vous faire cela au lieu d'utiliser un ORM comme LLBLGen ou Dapper? Pas besoin de réinventer la roue.

OriginalL'auteur Munish Goyal | 2011-01-06