none
C# : Bases de données légères RRS feed

  • Question

  • Bonjour,

    Je développe une application en C# et je souhaite y intégrer un système de persistance de données. Cependant, ce client lourd devra limiter son poids !

     

    En effet, j'ai quelques contraintes à respecter :

    • Légèreté
    • Protabilité
    • Gratuité

    J'ai recherché sur le net plusieurs principes, comme la sérialisation XML pour obtenir des fichiers XML comprenant mes informations, les systèmes de fichiers (ce qui revient à la sérialisation XML mais dans d'autres formats), et les bases de données légères.

     

    Pour ces dernières, je n'ai malheureusement pas réussi à trouver mon bonheur sur le net. Si quelqu'un connaissait une base de données légères (qui n'est pas uniquement vouée aux applications web) et qui reste simple d'utilisation (car les utilisateurs à venir, ne seront pas forcément des informaticiens ...)

     

    Merci d'avance, et bonne journée !

    mercredi 21 mai 2008 14:21

Réponses

  • Merci de ta réponse.


    Cependant, le souhait premier est de ne pas avoir l'architecture "classique" : cleint-serveur.

     

    Après mûre réflexion, je vais me tourner vers un système de persistance de données via des fichiers XML et la sérialisation XML (forcément !  ).

     

    Merci encore, et bonne journée...

     

    • Marqué comme réponse Aurel Bera mardi 25 septembre 2012 14:28
    jeudi 22 mai 2008 06:34

Toutes les réponses

  • un bon coup de http://www.mysql.com/
    avec une MySQLDriverCS dispo sur www.sourceforge.net

    c'est ce que j'utilise :]
    mercredi 21 mai 2008 19:46
  • Salut,

     

    Dans le programmez n°106 (http://www.programmez.com/magazine_articles.php?id_article=1012&&titre=Les%20bases%20de%20données%20légères ) il y a un article complet sur les bases de données légères. Je l'ai oublié à la maison mais j'essaierai d'y penser ce soir. Je n'avais que survolé l'article mais je pense que c'est exactement ce que tu souhaites.

    En attendant jette un oeil là dessus:

    http://blog.jesperhoy.com/post/Evaluating-lightweight-database-systems.aspx

    et aussi là: http://www.01net.com/editorial/372465/sqlite-devient-la-base-de-donnees-standard-du-web-deconnecte/?rss

     

    A plus tard.

    jeudi 22 mai 2008 06:34
  • Merci de ta réponse.


    Cependant, le souhait premier est de ne pas avoir l'architecture "classique" : cleint-serveur.

     

    Après mûre réflexion, je vais me tourner vers un système de persistance de données via des fichiers XML et la sérialisation XML (forcément !  ).

     

    Merci encore, et bonne journée...

     

    • Marqué comme réponse Aurel Bera mardi 25 septembre 2012 14:28
    jeudi 22 mai 2008 06:34
  • Salut,

     

    Pour rester dans un environnement Microsoft, je te propose l'utilisation de SQL Server Compact Edition... c'est léger rapide et fiable...

    En plus, si demain tu veux faire évoluer ton application et passer à SQL Server Standard... tu n'auras que la ConnectionString à changer.

     

     

     

    jeudi 22 mai 2008 07:05
  • Bonjour,

     

    Je te conseille SQLite et son portage .NET

    http://sqlite.phxsoftware.com/

    http://www.sqlite.org/

     

    SQlite c'est une seule DLL à déployer. C'est open source et gratuit.

    C'est un moteur hyper testé et super rapide.

    Fonctionne aussi sur PDA.

     

    Je l'utilise régulièrement dans des applications en production et c'est top (surtout pour le déploiement et aussi pour l'accès au code source).

     

    Pour ceux qui veulent un moteur 100% managed, mais moins rapide il existe VistaDB : idéal pour du site web dans un hébergement mutualisé.

     

    Rémi

    jeudi 22 mai 2008 09:23
  • boarf, sql server :/ ça pu ^^. (L'ancien linuxien qui parle :/) :}

     

    Le SQLite semble pas mal, pour ma part, je reste très fidel à MySQL :]

     

    vendredi 23 mai 2008 08:12
  • Bonjour,

     

    j'ai vu :

    "boarf, sql server :/ ça pu ^^. (L'ancien linuxien qui parle :/) :}"

     

    pu ==> pue

    fidel ==> fidèle

     

    Sql Server Express 2005 : très bien et facile à programmer mais ne surtout pas utiliser les user instances ( ou RANU ).Il semblerait que les user instances disparaîtraient avec la version suivant Katmai ( 2008 )

    Sql Server 2008 Express : je me refuse à tester les versions Beta ou CTP. J'ai eu trop de problèmes avec VB 2005 et Sql Server 2005 en CTP ( chat échaudé craint l'eau froide ).

    Sql Server 2008 Express comprendra le Wizard Import/Export ( cela manquait vraiment )

    Par contre, pas de backup compressé, dommage...

    L'intégration de Sql Server est évidemment très bonne avec VC#/VB 2005/2008

    Mon PC est un peu lent car j'ai 6 instances Sql Server 2005 Express + Reporting Services ( malgré 2 GB de RAM )

     

    MySQL : je n'ai jamais utilisé mais j'ai entendu dire beaucoup de bien à son sujet , sauf que si c'est gratuit pour le client utilisateur, il semblerait que ce ne soit pas ou bientôt plus gratuit de déploiement chez un client

    Je ne sais pas si le provider est prêt pour les versions 2008 de VB/VC#

     

    Oracle ( OracleLite je crois pour Windows ) : j'ai travaillé pendant 1 an avec Oracle sur gros système UNIX. J'ai apprécié mais je n'ai pas utilisé la version pour Windows )

     

    SQLLite : je connais son existence, mais je ne connais rien à son sujet, donc je prèfere ne rien dire

     

    Bonne journée

    samedi 31 mai 2008 18:07
  • Sinon j'ai une autre solution "assez" simple

    Access sans access

    Je m'explique: Il y a un autre fil de discussion en ce moment ici: http://forums.microsoft.com/MSDN-FR/ShowPost.aspx?PostID=3207604&SiteID=12

    On y parle de s'interfacer avec access. J'étais en train de préparer un tutoriel dessus depuis ma machine virtuelle avec Visual 2008 et je me suis rendu compte qu'il n'y avait pas Access installé (juste Visual express 2008) et pourtant j'ai bien le composant ADOX disponible et après vérification la base créé est tout à fait fonctionnelle. Je suis en train de bosser dessus pour faire un tutoriel donc si vous êtes patient vous pourrez en profiter bientôt je pense.

     

    J'avoue préférer un SQLServeur mais en l'occurence, il n'y a rien à installer pour qu'il soit disponible et une base access permet quand même pas mal de choses.

     

    Oui mogway je sais Access ne sent pas la rose

     

     

    lundi 2 juin 2008 07:20
  • Le seul intêret d'Access est de pouvoir ouvrir les bases avec Access.

    Sinon SQLite est le plus rapide de tous, et en plus le plus simple à déployer (une seule assembly).

     

    http://www.sqlite.org/speed.html

     

    Rémi

    lundi 2 juin 2008 07:32
  • Même si je ne suis pas un fan d'access je trouve que c'est un avantage non négligeable de savoir qu'on peut l'ouvrir avec un access (notamment dans des phases de "support"). Et puis pour l'installation comme je le disais plus haut il n'y a rien à faire puisque tout est déjà sur la machine.

     

    Sinon pour le test sur SQLLite en voici un autre un peu plus intéressant:

    http://sqlite.phxsoftware.com/forums/t/174.aspx

    Ce test compare VistaDB, SQLLite, SQlServer, Jet (pour access) ce qui a mon avis est plus intéressant dans notre cas de base de données intégrées.

    SQLLite reste devant dans de nombreux cas, confirmant ton idée que si ce sont les performances qui sont recherchées SQLLite devrait être le choix préférable.

     

     

     

    lundi 2 juin 2008 08:34
  • Bonjour,

     

    Un lien très interessant sur la différence entre ACCESS et Sql Server Express :

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3394868&SiteID=1

     

    Bonne journée

    • Proposé comme réponse Lyamine vendredi 21 septembre 2012 14:44
    • Non proposé comme réponse Lyamine vendredi 21 septembre 2012 14:44
    lundi 2 juin 2008 08:44
  • Bonjour,

    Je vous conseils aussi de rester en XML. De ce fait l'accès au donnes (sérialisation) vous pouvez utiliser les DataSet .net. Vous avez une méthode permettant de charger a partir d'un XML mais aussi de enregistrer sous le même format :

    DataSet.ReadXml() --> Lit les données au format XML de vos données.

    DataSet.WriteXml() --> enregistre les données au format XML.

    Vous avez la possibilité de modéliser votre Base de donnée en ajoutant un fichier XSD :

    Puis ajouter les tables, etc... Comme suit :

    Code de traitement :

    DataSet1.UsersDataTable users = new DataSet1.UsersDataTable();
    users.AddUsersRow("NIII", "TOOO");
    users.WriteXml(@"c:\test\test.xml");

    Résultat :

    <?xml version="1.0" standalone="yes"?>
    <DocumentElement>
      <Users>
        <Nom>NIII</Nom>
        <Prenom>TOOO</Prenom>
      </Users>
    </DocumentElement>
    Vous pouvez tout traiter par code grâce à DataTable...


    Merci de valider par "Proposer comme réponse" si celle-ci répond a votre demande !



    • Modifié Lyamine vendredi 21 septembre 2012 15:07
    vendredi 21 septembre 2012 14:47