IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

Application connectable à plusieurs SGBD, comment bien architecturer son code ?


Sujet :

Accès aux données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Points : 33
    Points
    33
    Par défaut Application connectable à plusieurs SGBD, comment bien architecturer son code ?
    Bonjour,

    Nous allons commencer le développement d'une application (ASP.NET et C#) qui pouvoir faire de l'enregistrement sur SGBD.

    Avez-vous des pistes pour bien architecturer notre code et le rendre évolutif (ajout d'autre SGBD par exemple) ?

    En gros, nous souhaitons permettre à l'utilisateur de choisir la BDD sur laquelle il veut installer son système (un peu comme les outils web qui peuvent être utilisés sur du mysql, postgres ...) simplement en choisissant le SGBD dans un fichier de configuration.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Il faut avoir une DAL générique, c'est-à-dire qui soit capable de fonctionner quel que soit le provider utilisé (et donc le SGBD).

    Pour ce faire, tu peux utiliser ceci :
    - Architecture de couche d'accès aux données (DAL) de hautes performances — Partie 1
    - Architecture de couche d'accès aux données (DAL) de hautes performances — Partie 2
    - Architecture de couche d'accès aux données (DAL) de hautes performances — Partie 3

    Cette DAL est faite pour être utilisée avec SQL Server uniquement. Pour la rendre générique, il suffit de regarder la classe DALBase. Au lieu d'utiliser les objets commencant par SqlServerxxx (ex. SqlServerConnection), il faut utiliser les objets commencant par Dbxxx (ex. DbConnection).

    Ensuite tu mets en place une fabrique (factory) qui te renverra les bons objets en fonction du provider utilisé.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Points : 33
    Points
    33
    Par défaut
    Ok merci je vais regarder ça !

  4. #4
    Membre actif
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 141
    Points : 210
    Points
    210
    Par défaut
    Bonjour,

    Pour rendre votre code utilisable avec plusieurs base de donnée, vous devrez utilisé les factory. toute les base actuelle propose une dll compatible avec la factory de Microsoft.
    Pour m'a pars j'ai développé ce type de couche, et avec le même code je me connecte à SqlServer,Oracle,Access,Sqlite,Mysql, ....

    Regardé du coté de Common.DbProviderFactory.
    pour oracle : Oracle.ManagedDataAccess.Client.OracleClientFactory
    Pour sql server : Factory = Common.DbProviderFactories.GetFactory(_ProviderName)
    Pour Sqlite : System.Data.SQLite.SQLiteFactory

    enfin vous avez compris je pense :-)

    Bonne chance, pour l'avoir fait vous allez vous retrouver à gérer pas mal de subtiliter (pour les dates par exemple en mysql qui on un type particulié), ainsi que le 32/64bit pour certaine base qui change la dll utilisé.

    Cordialement,
    DSI et développeur du logiciel Lulidb
    http://www.lulidb.com - outils de gestion de base de données orienté développer.

Discussions similaires

  1. Comment bien déboguer son code ?
    Par D[r]eadLock dans le forum Débuter
    Réponses: 47
    Dernier message: 02/04/2024, 16h06
  2. [2.x] Comment bien découper son code ?
    Par jacquesndl dans le forum Symfony
    Réponses: 2
    Dernier message: 29/04/2015, 21h17
  3. comment bien sécurisé son application ASP
    Par lokardz dans le forum ASP.NET
    Réponses: 2
    Dernier message: 01/03/2013, 21h16
  4. [VBA][Excel] Comment bien structurer son code?
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/03/2007, 19h39
  5. Réponses: 1
    Dernier message: 05/09/2006, 17h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo