locked
Aide à la conception : BDD embarqué / XML / autres ? RRS feed

  • Question

  • Bonjour,

    Je suis en train de réaliser une application sur windows phone (7.1), et jusque là pas de problème de prise en main pour tout ce qui est graphique ou langage.

    J'ai toutefois un soucis de conception vis à vis de cette plateforme que je connais beaucoup moins que les concurrentes (iOS / Android). Dans mon application, je dois avoir accès à une (grande?) collection de données (6000 objets assez simple : une dizaine de chaines de caractères, quelques booléens, quelques entiers par objets).

    Sur les autres plateformes, je ne me suis pas trop posé la question, je suis parti assez rapidement sur SQLite.

    Par contre, je comptais partir sur SQLCe (avec les fichiers .sdf) sur WinPhone, mais après avoir lu quelques commentaires ici et là, j'ai cru comprendre qu'il y avait peut être quelques soucis de performances, est-ce vrai ? 

    Du coup, voici mes contraintes : 

    - la base de données est embarquée avec l'application, pas de téléchargement supplémentaire au premier lancement.

    - la base de données doit être accessible en lecture/écriture.

    - la base doit pouvoir être mise à jour lors d'une update de l'application.

    Que me conseillerez vous pour l'implémentation d'une telle solution ? 

    On peut embarquer un fichier sdf dans une application puis la déployer dans l'isolatedstorage ? 

    Merci d'avance de vos réponses

    lundi 20 février 2012 09:41

Réponses

  • Benjamin la question est plutot comment embarquer une base de données SQL-Ce directement avec son XAP.

    Voila donc comment faire : 

    http://msdn.microsoft.com/en-us/library/hh286411(v=vs.92).aspx

    En gros si je résume, tu crées une "fausse application" qui va créer la base de données avec les données dedans, elle sera ainsi compatible wp7 sans probleme.

    Tu récupères ensuite le fichier sdf via ISETools ou via mon add-in visual :

    http://istool.codeplex.com/

    Tu l'insères dans ta vrai app en tant que content, et tu copies le fichier sdf dans l'isolated storage.

    Tu peux aussi partir d'un fichier sdf existant et sauter les premières étapes, à toi de t'assurer que le fichier est bien compatible.


    - la base de données doit être accessible en lecture/écriture.

    ==> pas de soucis

    - la base doit pouvoir être mise à jour lors d'une update de l'application.

    ==> pas de soucis

    Attention toutefois si tu as des updates sur un grand nombre de champ, les perfomances seront alors mauvaise (en LINQ-to-SQL on ne modifie qu'une ligne à la fois, donc si tu modifies 1000 champs,c'est 1000 requetes)


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    • Proposé comme réponse Ciprian Duduiala mardi 21 février 2012 14:18
    • Marqué comme réponse AndBzh mercredi 22 février 2012 16:14
    lundi 20 février 2012 13:10

Toutes les réponses

  • Bonjour,

    Oui tu peux embarquer une bdd sqlce dans ton appli.

    Voici un tuto qui te permettra de voir les bases et de répondre à pas mal de tes questions.

    http://msdn.microsoft.com/en-us/library/hh202860%28v=vs.92%29.aspx

    lundi 20 février 2012 10:55
  • Benjamin la question est plutot comment embarquer une base de données SQL-Ce directement avec son XAP.

    Voila donc comment faire : 

    http://msdn.microsoft.com/en-us/library/hh286411(v=vs.92).aspx

    En gros si je résume, tu crées une "fausse application" qui va créer la base de données avec les données dedans, elle sera ainsi compatible wp7 sans probleme.

    Tu récupères ensuite le fichier sdf via ISETools ou via mon add-in visual :

    http://istool.codeplex.com/

    Tu l'insères dans ta vrai app en tant que content, et tu copies le fichier sdf dans l'isolated storage.

    Tu peux aussi partir d'un fichier sdf existant et sauter les premières étapes, à toi de t'assurer que le fichier est bien compatible.


    - la base de données doit être accessible en lecture/écriture.

    ==> pas de soucis

    - la base doit pouvoir être mise à jour lors d'une update de l'application.

    ==> pas de soucis

    Attention toutefois si tu as des updates sur un grand nombre de champ, les perfomances seront alors mauvaise (en LINQ-to-SQL on ne modifie qu'une ligne à la fois, donc si tu modifies 1000 champs,c'est 1000 requetes)


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    • Proposé comme réponse Ciprian Duduiala mardi 21 février 2012 14:18
    • Marqué comme réponse AndBzh mercredi 22 février 2012 16:14
    lundi 20 février 2012 13:10
  • Bonjour et merci pour ces liens.

    Possédant que la version Express de Visual Studio 2010 pour WinPhone, je n'ai pu installer votre plugin (de ce que j'ai compris, c'est pas possible...).

    Du coup, j'ai utilisé ce logiciel plutôt :http://sqlite2ce.codeplex.com

    Il m'a permis de convertir ma base existante  vers le bon format sdf pour winphone. Accessoirement j'aurai bien voulu trouver un outil (gratuit) pour l'éditer, mais jai trouver que des petits logiciels, rien de produit par microsoft ?

    Bref, j'ai repiqué le fonctionnement du tutoriel indiqué pour dupliquer la base dans l'isolatedstorage, et je viens de faire quelques tests, et ça fonctionne :)

    Reste plus qu'a mettre en place toute la couche pour simplifier l'interrogation de ma base.

    Merci en tout cas de votre aide

    mercredi 22 février 2012 16:12