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

Framework .NET Discussion :

Base de données embarquée ou fichiers XML ?


Sujet :

Framework .NET

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Par défaut Base de données embarquée ou fichiers XML ?
    Bonjour à tous,

    Je vais développer une appli qui devra gérer des films.
    Chaque film aura une fiche avec des infos comme synopsis, réalisateur, année, genre, titre, affiche, acteurs ....

    Ma question est la suivante : pour un projet de ce type, vaut-il mieux passer par des fichiers XML avec une structure bien définie ou une BD embarquée ?

    Je me suis renseigné du côté de SQL Server CE et ce produit à l'air très intéressant : intégration dans VS, Entity Framework, Foreign Key, léger ...
    Je pose cette question pour peser le pour et le contre de chaque solution.

    Qu'en pensez-vous ?


    Guillaume

  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
    Par défaut
    Si le nombre de films reste relativement petit, un fichier XML peut faire l'affaire. Sinon une base de données est plus adaptée, notamment parce que ça permet d'exécuter efficacement des requêtes complexes (pour la recherche par exemple)

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Si le nombre de films reste relativement petit, un fichier XML peut faire l'affaire.
    Ca peut faire l'affaire c'est sur, mais cela n'apporte même pas de bénéfice en terme de lignes de codes et temps de développement.

    Donc, à quoi bon ?

  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
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Ca peut faire l'affaire c'est sur, mais cela n'apporte même pas de bénéfice en terme de lignes de codes et temps de développement.
    Ca dépend de l'approche utilisée... Si je devais faire ça avec un fichier XML, j'utiliserais la sérialisation XML, et ce serait vraiment pas lourd en lignes de code...

  5. #5
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Avec des requêtes LinqToXml le temps de développement et ligne de code aussi ne serait pas très lourd puis l'intêret avec xml (comme base de données) c'est qu'il n'y a pas d'installation et des paramètres de configuration à régler comme cela doit se faire avec un SGBDR

    Quel rapport avec l'embarqué ? Tu dois embarquer la base de données dans du matériel avec un window CE ?

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    Attention avec Entity Framework...

    le connecteur pour SQL Server CE 3.5SP1 fourni les providers pour EF... pour dotnet 3.5SP1...
    EFv1 donc...

    Certes c'est déjà bien... mais attention quand même à bien regarder la doc de dotnet 3.5 si tu veux développer avec EF pour un serveur SQL Server CE.

    nul part même sur la msdn il n'est fait mention d'une possible évolution ou future compatibilité avec EF4.
    personnellement j'aurais tendance à en douter, car tout ce qui est CE ne semble plus la priorité de microsoft.

  7. #7
    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
    Par défaut
    Citation Envoyé par cinemania Voir le message
    nul part même sur la msdn il n'est fait mention d'une possible évolution ou future compatibilité avec EF4.
    Si si, c'est bien compatible, je l'utilise dans un projet perso avec EF4 et je n'ai pas remarqué de problèmes particuliers

    En plus SQL CE 4.0 (actuellement en CTP) apporte pas mal d'améliorations, notamment pour l'utilisation avec EF, par exemple le support des colonnes générées par la base (identité etc), ce qui n'était pas le cas en 3.5. Et le provider ADO.NET implémente bien DbConnection.GetSchema (en 3.5 ce n'était pas supporté), ce qui peut être bien pratique dans certains cas.

    http://blogs.msdn.com/b/sqlservercom...microsoft.aspx

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par hegros Voir le message
    Avec des requêtes LinqToXml le temps de développement et ligne de code aussi ne serait pas très lourd puis l'intêret avec xml (comme base de données) c'est qu'il n'y a pas d'installation et des paramètres de configuration à régler comme cela doit se faire avec un SGBDR
    La comparaison était vs une base de données embarquées (style Sql Server CE ou Sqlite) , pas vs un SGBDR; donc, par définition pas de notion de paramètres de configuration.

    Quel rapport avec l'embarqué ? Tu dois embarquer la base de données dans du matériel avec un window CE ?
    Quand on parle de base de donnée embarquée, c'est vrai que c'est un abus de langage car cela inclut aussi une base "embarquée in-process dans l'application" par opposition à une base gérée par un SGBD.

    Une base embarquée peut être une "vrai" base embarquée (Sqlite, Sql Server CE) ou tout simplement un pattern technique matérialisant uen base embarquée (exemple : un DataSet sérializé en Xml).

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par cinemania Voir le message
    Attention avec Entity Framework...

    le connecteur pour SQL Server CE 3.5SP1 fourni les providers pour EF... pour dotnet 3.5SP1...
    EFv1 donc...
    SQL Server CE 3.5SP2 est disponible depuis mai dernier.

  10. #10
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Par défaut
    C'est vrai que je suis tenté par Sql Server car je n'ai jamais touché à EF. Ca serait l'occasion d'apprendre.

    Après, avec des outils comme Xsd2Code, la gestion par le XML est intéressante aussi.

    c'est qu'il n'y a pas d'installation et des paramètres de configuration à régler comme cela doit se faire avec un SGBDR
    Sans dire de bêtises, mais avec CE, aucune installation n'est nécessaire.

    tomlev, tu as de bonnes ressources pour SQL Server CE 4 avec EF 4 ?

    Au final, au vu des différents avis, je pense me tourner vers une BD, qui founit, à mon avis, plus d'outils. De plus, pour les requêtes et les recherches ca sera plus pratique (du moins je pense).

  11. #11
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ca dépend de l'approche utilisée... Si je devais faire ça avec un fichier XML, j'utiliserais la sérialisation XML, et ce serait vraiment pas lourd en lignes de code...
    Tout à fait; mais une approche SQL CE necessite également très peu de lignes de codes.

  12. #12
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    La comparaison était vs une base de données embarquées (style Sql Server CE ou Sqlite) , pas vs un SGBDR; donc, par définition pas de notion de paramètres de configuration.
    Sql Server CE c'est quand même un SGBD il y a une petite installation (ce que j'appelle configuration) à faire ce n'est pas un fichier plat non plus.

    Citation Envoyé par CARNIBAL
    Sans dire de bêtises, mais avec CE, aucune installation n'est nécessaire.
    SI il y a une petite installation quand même la base ne va pas apparaître par magie comme ça.

  13. #13
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Par défaut
    Oui un clic-droit sur le projet Visual Studio puis "Add Local Database".

    Après c'est certains qu'il fut modéliser la base mais il faut aussi coder la serialisation XML et les structures des fichiers.

    Mais comparé à l'installation puis la configuration de SQL Server, ce n'est rien.

Discussions similaires

  1. [DBUnit] De la base de données vers un fichier XML
    Par polymorphisme dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 30/03/2014, 12h41
  2. Alimenter une base de données avec des fichiers xml
    Par anaas dans le forum Administration
    Réponses: 2
    Dernier message: 16/07/2012, 11h02
  3. Paramètres de connexion à une base de données dans un fichier xml
    Par Davesique dans le forum Persistance des données
    Réponses: 1
    Dernier message: 17/11/2010, 22h09
  4. Réponses: 14
    Dernier message: 08/08/2006, 11h31
  5. Réponses: 3
    Dernier message: 13/12/2004, 13h54

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