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

C# Discussion :

La sérialisation : une alternative ?


Sujet :

C#

  1. #1
    Membre confirmé Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 160
    Par défaut La sérialisation : une alternative ?
    Bonjour,
    Je suis actuellement en train de développer un petit logiciel de gestion (personnel) et je m'intèroge quant à la possibiltié de substituer ma base de donnée SQL par un mécanisme de sérialisation / désérialisation.

    J'aimerais tout simplement savoir si l'utilisation de la sérialisation et de la désérialisation est chose courante et surtout avantageuse.

    En vous remerciant d'avance,

    Nadd.

  2. #2
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut siii
    salut,
    Bien sur c très util, surtout au niveau des WebServices puisque ça facilite le transfer d'objets(BD) en la convertissant en fichiers XML.

  3. #3
    Membre confirmé Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 160
    Par défaut
    D'accord

    Mais dans le cas d'une simple application qui n'a pas vraiment grand chose à partager (même si l'idée des WebServices me parait interessante), la sérialisation comporte-t-elle plus d'avantage que l'utilisation d'une base de donnée ?

    Cordialement,

    Nadd.

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    mm...
    dans une simple application de gestion je ne vois pas vraimnt en quoi ça va t'aider !!!
    mais en tt cas c très interessant
    bonne chance.

  5. #5
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Les performances d'accès, le caching de données, la magie des bindings et la simplicité du SQL te manqueront.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    En même temps si sa base de données n'est pas trés complexe ni trés volumineuse, que son application est mono utilisateur (au moins en écriture) alors stocker ses données dans un fichier lui permettrait de se passer de base de données. Je te conseille dans ce cas de sérialiser / désérialiser un DataSet , qui t'offre qques fonctionnalités de requêtage.

  7. #7
    Membre confirmé Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 160
    Par défaut
    Bien, merci beaucoup pour vos réponses. Après avoir bien réfléchit (aux avantages de MSSQL et aux besoins de mon application) j'en ai conclu que MSSQL était indispensable et que la sérialisation / désérialisation ne convenait pas. Toutefois, je ne pense pas que je vais mettre ce procédé, très intèressant, de côté Il aura sûrement une utilité ailleurs dans mon application (ou je m'arrangerai pour qu'il en ai).

    Cordialement,

    Nadd.

  8. #8
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Citation Envoyé par Sphax
    En même temps si sa base de données n'est pas trés complexe ni trés volumineuse, que son application est mono utilisateur (au moins en écriture) alors stocker ses données dans un fichier lui permettrait de se passer de base de données. Je te conseille dans ce cas de sérialiser / désérialiser un DataSet , qui t'offre qques fonctionnalités de requêtage.
    A mon sens, ca restera quand meme plus lourd. De plus, si ton application se plante, tu perd ton dataset qui était en mémoire. Sauf si à chaque modification tu le reserialize, ce qui est une sacré perte de temps.

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Citation Envoyé par neptune
    A mon sens, ca restera quand meme plus lourd. De plus, si ton application se plante, tu perd ton dataset qui était en mémoire. Sauf si à chaque modification tu le reserialize, ce qui est une sacré perte de temps.
    Je rappelle les propos de Nadd:

    Je suis actuellement en train de développer un petit logiciel de gestion (personnel)
    Dans ces conditions on peut légitimement se demander l'intérêt d'un gros serveur de base de données, même s'il existe des solutions gratuites. C'est prendre un marteau pour écraser une mouche.

    Ensuite effectivement si l'appli se plante tu peux perdre des données, mais le but c'est d'écrire une aplli qui ne plante pas (et d'ailleur ça peut arriver aussi avec une base de données, surtout si c'est mal codé), et l'argument de la perte de temps en cas de multiplication des sérialisation/désérialisation peut ne pas compter, vu que c'est un petit projet encore une fois. Bref l'important est d'utiliser des outils adaptés aux problèmes, et un simple DataSet sérialisé comme base de données peut trés bien faire l'affaire dans certains cas.

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Comme outil de mor, EUSS (je sais pas pour nHibernate) permet d'enregistrer ses données sous fichier xml (il gere ca tout seul comme un grand)...
    Evidemment pour un gros projet tu laisses tomber, mais pour un petit truc perso cela reste suffisant...
    Avec leur systeme de requetes, rechercher et mettre à jour la base n'est pas compliqué (transparent pour toi : c'est des requetes opath)

    Effectivement, ensuite, intégrer un un gros truc (et se former) pour une petite appli...

  11. #11
    Membre confirmé Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 160
    Par défaut
    Enfin bon, quand j'ai dit petite application, je parlais plus du nombre d'enregistrements qui seront inscrits dans la base de donnée.

    L'application que je développe est une application de gestion (qui ne respecte pas vraiment les normes de comptabilité, mais peu importe) qui devra comporter au "finish" tout une serie de trucs : Fiches clients/fournisseurs, devises, opérations d'encodages (financiers, d'achats, de ventes), multi-utilisateur (même si je serai le seul à utiliser l'application) avec mise en place d'un système de niveaux d'accès, ect...

    J'ai facilement mis en place le système multi-utilisateur (formulaire login en début d'execution, ...) et j'ai crée mes propres classes "conteneurs" afin de répondre à mes besoins. J'ai décidé de charger en début d'application toutes les données présentes dans la base de donnée et de les stocker dans des collections afin de pouvoir travailler en mode déconnecté (ou presque).

    Enfin soit ,
    Cette application est plus destiné à me faire faire un tour d'horizon du langage et de ses possibilités tout en poussant à fouiner partout lorsque je suis bloqué. C'est plus un apprentissage par la pratique que le développement d'une application utile.

    Cordialement,

    Nadd.

  12. #12
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    Le critere de choix est assez simple en fait, ceux qui choisissent la serialisation ou l'xml le decouvrent sur le tard:

    Si tu dois, trier, chercher ou regrouper logiquement (JOIN en SQL) ya pas photo c'est la base de donnees

  13. #13
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Je rajoute un peu d'informations sur ce thread, j'ai utilisé récement Sqlite sous Linux. J'ai vu qu'une Dll était disponible pour windows. C'est une piste intéressante à suivre.

    Tu écrit un couche d'accès au donnée et une couche d'accès à Sqlite. Ton application reste de petite taille pour le moment, tu accèdes facilement à une DB dans un fichier. Demain, ton application grossit, tu devra juste écrire la couche d'accès msSQL, ou autre et ca continuera de fonctioner :-)

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Salut,

    pour completer les dires de Neptunes, SQLite est vraiment une BDD assez robuste tant qu'on reste dans des optiques personnelles. Pour l'avoir pas mal utilisé, c'est vraiment sympa (Mono fichier pour la base, 1 seule Dll). J'ajouterai qu'il existe un provider pour travailler avec ADO.Net avec SQLite, ici, maintenu (dernier update au 21/07) et bien foutu (une seule DLL à fournir la aussi, englobant le natif Sqlite et le provider).

    Enfin pour elargir un peu le champ, je teste depuis quelque temps, une "BDD objet", DB4O, l'avantage est que ta couche d'accès est vraiment reduite (par exemple, une des formes de requetes se fait grace à des predicates<T> et comparer<T>, et tu recuperes en sortie un type implementant IList<T> (que tu peux reinjecter dans un datasource de controles sans plus de fioritures)). Bref, je ne suis qu'au debut des tests, mais pour le moment c'est vraiment sympa, et le fait de ne pas avoir avoir de transition Table <=> objet à faire simplifie grandement les choses (tu stockes un objet, tu recuperes un objet, le tout par serialisation). Pour un usage intensif, je ne sais ce que ca peut valoir, mais pour une appli mono poste avec des besoins reduits, ca peut etre pas mal.

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

Discussions similaires

  1. Exite-t-il une alternative à SELECT ... INTO?
    Par Ditch dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 19/04/2005, 10h52
  2. Une alternative à XCloseDisplay(Display *dpy) ?
    Par Michaël dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 10/02/2005, 10h32
  3. Une alternative a ... ?
    Par Crapouille dans le forum OpenGL
    Réponses: 3
    Dernier message: 13/08/2004, 14h51
  4. Une alternative à glut
    Par davcha dans le forum GLUT
    Réponses: 3
    Dernier message: 11/07/2004, 10h19
  5. [Serializable][image] Sérialiser une image
    Par Galima dans le forum Graphisme
    Réponses: 7
    Dernier message: 01/07/2004, 19h12

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