Je conçois ma première application Layered qui consiste en une couche Data, Business et Presentation.S'agit-il d'un double travail de création d'un composant d'accès aux données et d'un composant métier?
Mes composants métier (par exemple, Business.Components.UserComponent) a actuellement la méthode suivante:
public void Create(User entity)
{
using (DataContext ctx = new DataContext())
{
ctx.Users.AddObject(entity);
ctx.SaveChanges();
}
}
J'aime cette conception. Cependant, j'ai rencontré quelques exemples en ligne qui recommande la mise en œuvre suivante:
public void Create(User entity)
{
// Instanciate the User Data Access Component
UserDAC dac = new UserDAC();
dac.InsertUser(entity);
}
Cela aboutirait à la création d'un accès aux données de composants pour toutes les entités, chacune contenant les méthodes de base (Créer, modifier, supprimer ... etc).
Cela ressemble à un double travail car je devrais créer les composants d'accès aux données avec les méthodes de base ainsi que les composants métier qui appellent simplement les méthodes dans le composant d'accès aux données.
Quelle serait la meilleure pratique pour implémenter correctement les fonctionnalités de base CRUD dans une application en couches? Doivent-ils être «codés» dans la composante commerciale ou dans une composante d'accès aux données?
Merci Ladislav, votre message a été utile. Si vous pouviez inclure quelques exemples sur Repository et Unit of Work Pattern, ce serait sympa. – gottalovedotnet