2010-05-23 4 views
0

J'ai actuellement un projet qui utilise diverses technologies d'accès DB principalement pour la présentation ou pour des démonstrations.Comment structurer un projet Visual Studio pour la couche d'accès aux données

Actuellement nous avons:

Namespace App.Data (App.Data.dll) 
    Folder NHibernate 
    Folder EntityFramework 
    Folder LinqToSql 

La structure ci-dessus est ok que nous utilisons uniquement Sql Server comme DB. Mais à l'avenir, nous inclurons Oracle, MySql, etc.

Alors, quelle serait la meilleure structure dans cette optique?

Je pensais à:

Namespace App.Data.SqlServer (App.Data.SqlServer.dll) 
    Folder NHibernate 
    Folder EntityFramework 
    Folder LinqToSql 

Ou serait-il juste être préférable d'avoir des ensembles distincts pour chaque base de données et la technologie d'accès ?:

Namespace App.Data.SqlServer.NHibernate (App.Data.SqlServer.NHibernate.dll) 
Namespace App.Data.SqlServer.EntityFramework(App.Data.SqlServer.EntityFramework.dll) 
Namespace App.Data.Oracle.NHibernate (App.Data.Oracle.NHibernate.dll) 
Namespace App.Data.MySql.NHibernate (App.Data.MySql.Oracle.dll) 

Répondre

0

Je presque faire le contraire, et le groupe par Technologies d'implémentation DAO.

- Namespace App.Data 
     -NHibernate 
     - SQLServer 
     - Oracle 
     -EntityFramework 
     - SQLServer 
     - Oracle 

Et à partir de là, vous pouvez diviser des DLL si cela est nécessaire. Donc vous pouvez avoir 2 dll, ou 4 comme bon vous semble.

Questions connexes