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

ADO.NET Discussion :

Base de données embarquée dans l'exécutable


Sujet :

ADO.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 24
    Points : 20
    Points
    20
    Par défaut Base de données embarquée dans l'exécutable
    Bonjour à tous,

    voilà la situation actuelle : j'ai une application C# alimentée par une source de données en lecture seule. En l'occurence, il s'agit d'un fichier XML que je génère à partir d'une base de données MySql; et ce fichier est mis en temps que ressource dans l'exécutable que je fournis. Ca marche très bien sauf que c'est du travail artisanal : script php pour générer le xml, puis parser xml fait maison pour recréer mes entités (écrites à la mano) à l'exécution. => (headbang)

    Je sais, j'ai honte de moi

    L'idée c'est que je souhaite remplacer et remettre à neuf toute la partie base de données et accès à ces données via les services que propose ADO.NET; tout en gardant le principe d'embarquer la source de données dans l'exécutable.

    Je me suis penché du côté de Sql Server CE. J'ai donc ajouté un nouveau ADO.NET Entity Model à mon projet que j'ai relié à une base locale ".sdf". Mon idée ça serait de pouvoir incorporer ce fichier base de données à mon exécutable et de pouvoir le requêter directement via ADO.NET.

    Est-il possible d'incorporer la base dans l'exécutable, et surtout de pouvoir la lire ?
    Si oui, quelle est alors la chaine de connexion à utiliser pour se connecter (notamment la Data Source ?), à supposer que j'ai fichier "Database.sdf" à la racine de mon projet ?
    Si non, il y a t'il un moyen de transformer facilement la base en fichier XML et garder la logique définie par mon Entity Model ?

    Autre question : dans l'hypothèse où je peux utiliser directement ma base .sdf, est ce que l'application pourra tourner sur un ordinateur du commun des mortels dépourvu d'une installation "explicite" de SQL Server ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par sephirostoy Voir le message
    Est-il possible d'incorporer la base dans l'exécutable, et surtout de pouvoir la lire ?
    Tu peux l'incorporer dans l'exe en la mettant en ressource, mais pour pouvoir l'utiliser il faudra l'extraire dans un fichier...

    Citation Envoyé par sephirostoy Voir le message
    Si non, il y a t'il un moyen de transformer facilement la base en fichier XML et garder la logique définie par mon Entity Model ?
    Non, puisque Entity Framework génère des requêtes SQL... il lui faut une BDD, pas un fichier XML

    Citation Envoyé par sephirostoy Voir le message
    Autre question : dans l'hypothèse où je peux utiliser directement ma base .sdf, est ce que l'application pourra tourner sur un ordinateur du commun des mortels dépourvu d'une installation "explicite" de SQL Server ?
    SQL CE ne nécessite aucune installation, il faut juste avoir l'assembly dans le répertoire de l'exécutable

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 24
    Points : 20
    Points
    20
    Par défaut
    Merci pour ces précisions.
    Effectivement, je commençais à me demander si j'allais pas simplement copier le fichier de la BDD au lancement de l'appli et le supprimer après.
    En revanche, ça me gène un peu pour l'assembly de SQL Server SE. Je vois que l'assembly que j'ai en référence dans mon projet pointe dans le dossier d'install de "Microsoft SQL Server Compact Edition". Du coup, je reformule ma question : cet assembly n'est pas présent dans le framework .NET de base installé sur un Windows ? Il faut nécessairement que je fournisse cet assembly à celui qui veut utiliser mon programme pour ne pas avoir de problème de référence ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par sephirostoy Voir le message
    cet assembly n'est pas présent dans le framework .NET de base installé sur un Windows ?
    Non

    Citation Envoyé par sephirostoy Voir le message
    Il faut nécessairement que je fournisse cet assembly à celui qui veut utiliser mon programme pour ne pas avoir de problème de référence ?
    Oui
    Mais comme je disais, c'est juste un fichier à fournir, aucune installation proprement dite n'est requise

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 24
    Points : 20
    Points
    20
    Par défaut
    Ok. Ca change un peu ma politique de fournir qu'un seul exécutable à l'utilisateur, mais bon, je ferais avec =)

    Merci.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par sephirostoy Voir le message
    Ok. Ca change un peu ma politique de fournir qu'un seul exécutable à l'utilisateur, mais bon, je ferais avec =)
    En général ce genre de politique ne tient pas debout très longtemps, vu que ça te prive de tous les composants tiers...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/10/2012, 17h44
  2. [C#]Base de données "embarquée"
    Par archeon dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/05/2006, 12h17
  3. stockage de photos dans base de données ou dans un répertoir
    Par papy_tergnier dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 08/12/2005, 16h22
  4. Base de données embarquée
    Par RICAUD dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 14/07/2005, 08h37
  5. Base de données embarquée sous Windows
    Par bouiboui dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 12/08/2004, 10h38

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