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

Silverlight Discussion :

Silverlight 4 Mode déconnecté


Sujet :

Silverlight

  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut Silverlight 4 Mode déconnecté
    Bonjour à tous,

    Alors voici mon histoire :

    Je dois créer une application qui fonctionne en mode connecté comme déconnecté.

    J'ai fait une maquette, qui enregistre des noms de parcelles dans ma base SQL SERVER (je passe par les services WCF). Je test ma connexion avec un NetworkInterface.GetIsNetworkAvailable() (cette méthode ne couvre pas toutes les possibilités de déconnexion mais c'est juste pour la maquette)

    J'ai ensuite vu que l'on pouvait stoker des données avec L’Isolated Storage, qui sérialise des objets en fichiers et sont stockés sur le DD.

    Voila comment je procède :

    Si connexion OK : je passe par les services WCF pour enregistrer dans SQL SERVER

    Si connexion pas OK : je sérialise mon objet et créer le fichier sur le DD.


    Mon problème : J'ai regardé beaucoup de tutoriels qui ne vont pas jusqu'à mon niveau en ce qui concerne le mode déconnecté.
    Pour utiliser le mode déconnecté, je charge mon site sur mon navigateur, je fais clique droit, installer l'application...

    Après l'installation, je déconnecte ma carte réseau et quand je lance mon site en local, j'ai des erreurs, ma liste de parcelles ne s'affiche pas, lorsque je veux en ajouter une nouvelle, j'ai une autre erreur...

    Donc j'aimerais savoir :

    ou est-ce que je me trompe ?
    comment Silverlight gère l'installation de l'application ?
    comment fait on pour accéder à des méthodes en mode "application" quand on est hors ligne bien sur?

    Je n'ai pas mis de code, mais je peux vous le transmettre si vous me le demandez.

    Merci Beaucoup

    Cordialement

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Tu as un article ici qui traite de la détection et gestion du mode hors ligne en Silverlight.

    http://badger.developpez.com/tutorie...silverlight-3/
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Bonjour The_badger_man,

    Oui ton article est intéressant, je l'avais déjà lu.

    Mais il n'explique pas l'ajout de données en mode déco. Il traite uniquement la partie "test de la connexion internet et de l'accès au serveur".

    Il y a sur le net énormément d'informations qui traitent ce sujet mais elles ne vont jamais plus loin... :s

  4. #4
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Quels sont les types d'interactions avec le serveur ? est-ce simplement de la modification basics de données ?

    Car tu as aussi le Sync Framework 4.0 qui te permet de synchroniser des données entre une appli Silverlight (entre autre) et une base de données SQL server par exemple. Le tout pratiquement automatiquement.

    http://blogs.msdn.com/b/sync/archive...-2010-ctp.aspx
    http://blogs.msdn.com/b/sync/archive...-on-11-16.aspx
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  5. #5
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Pour le moment avec ma maquette, je veux faire de l'ajout d'une nouvelle donnée dans ma base SQL SERVER.

    Ce que j'ai fait :

    Je lance mon application avec une connexion internet, j'installe l'application silverlight sur mon ordi (clique droit, installer...)L et je récupère mes données qu'il y a dans un tableau et les sérialises en fichiers *.parcelle sur mon DD et lorsque j'ajoute une donnée, je serialise encore cet ajout en fichier. ensuite je me déconnecte d'internet.

    Je lance l'application :

    Si connexion OK : je passe par les services WCF/LINQ pour enregistrer dans SQL SERVER comme d'habitude et récupère la liste des données.

    Si connexion pas OK : Je récupère la liste des fichiers sérialisés et l'ajoute à mon tableau.
    Mais cette partie pose problème, il m'indique des erreurs :

    Caused by: There is an error in XML document (2, 2).
    à System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, Object events)
    à System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream)
    à Silverlight.MainPage.Page_Loaded(Object sender, RoutedEventArgs e)
    à MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
    à MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
    Caused by: There is an error in XML document (2, 2).

    à System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, Object events)
    à System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream)
    à Silverlight.MainPage.Page_Loaded(Object sender, RoutedEventArgs e)
    à MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
    à MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
    Ca me semblait bien car si on était connecté, on faisait appelle au service WCF, sinon on chargait les données en local..

    Je vais essayé de voir si Sync Framework 4.0 peut m'aider. Mais mon problème se situe plus au niveau du mode connecté/déconnecté.

    Est-ce que tu sais si,lorsqu'on fait "installer l'application..." il récupère toutes les DLLs (qui contiennent donc les méthodes)?

    Merci

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Et il a quel tête le fichier xml?

  7. #7
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Les fichiers XML générés sont par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="utf-8"?>
    <T_Parcelle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <ID>1</ID>
      <NOM>Parcelle1</NOM>
    </T_Parcelle>

    La lecteur des mêmes fichiers XML fonctionne en mode "connecté",

    Par exemple, si je vide ma table SQL SERVEUR est que je dis au programme de me remplir le tableau avec les fichiers stockés sur le DD, ça va fonctionner..

    D'un côté je me dis que lorsque j'installe l'application en local, il y a surement des fichiers (.DLL) auxquels il n'a pas accès, donc il ne les recopies pas et donc il me manque des méthodes.
    Mais si c'est le cas, à quoi ça sert de faire un mode Out-Of-Browser si on peut pas utiliser notre programme sans internet?

  8. #8
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Le message d'erreur dit qu'il y a une erreur dans me document XML et qu'il ne peut donc pas le désérialiser. Il faudrait plutot chercher de ce coté.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 159
    Par défaut
    Hello,

    La meilleure ressource française que je connaisse sur le sujet est celle-ci : http://www.microsoft.com/france/visi...b-78a080c87432 . Ce webcast est tout simplement excellent.

    Tu peux coupler cela avec des projets de base de données Silverlight en cours comme :

    - http://sterling.codeplex.com/ --> Très facile d'usage
    - http://silverdb.codeplex.com/
    - http://www.mcobject.com/silverlight-demo --> Pas mal fichu aussi!

    Vu que la question des applications Silverlight déconnectées et synchronisées revient en boucle (mes rendez-vous clients, forums et emails que l'on m'envoie), je pense qu'il faudra écrire une série d'articles sur le sujet.

    Bye,

    David

  10. #10
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Citation Envoyé par The_badger_man Voir le message
    Le message d'erreur dit qu'il y a une erreur dans me document XML et qu'il ne peut donc pas le désérialiser. Il faudrait plutot chercher de ce coté.
    arf, étonnant qu'il n'arrive pas à le désérialiser en mode "déconnecté" alors qu'il y arrive très bien en mode "connecté"...


    Sinon merci davrous pour les infos je vais jeter un coup d'œil...

    et oui,je te confirme que ce serait génial d'écrire un article complet sur ce sujet.

    Merci

  11. #11
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Re,

    J'ai regardé la vidéo http://www.microsoft.com/france/visi...b-78a080c87432 et c'est vrai quelle est très bien.

    Mais le problème c'est qu'il parte d'un projet déjà avancé, et qu'il me manque des infos pour réaliser la même chose...

    C'est dommage car c'est exactement ça que je veux faire :s

    Si quelqu'un à d'autres infos,tuto (ce serait trop beau)...

    Merci pour votre aide

    Edit : en cherchant sur le net j'ai retrouvé les sources du projet !!!!

  12. #12
    Membre confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Décembre 2010
    Messages : 126
    Par défaut
    J'ai télécharger le sources y a quelque jours mais le projet ne compile pas. J'ai du effacer une réference qui n'existe pas et ajouter une autre d'un projet existant pour implementer le "busyindicator". Mais une fois que le prjet compile les enregistrement issu du dictionnaire ne s'affiche pas dans le dataGrid !!!

  13. #13
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Effectivement NTIC13 j'ai du faire pareil, et lorsque je lance l'application, elle charge et fini par me renvoyer une erreur :

    Une erreur s'est produite en tentant d'effectuer une demande à l'URI 'http://192.168.0.1:3000/Service.svc'. Ce problème peut être dû à une tentative d'accès à un service entre domaines sans qu'une stratégie entre domaines appropriée soit en place, ou une stratégie inadaptée aux services SOAP. Il est possible que vous soyez contraint de contacter le propriétaire du service pour publier un fichier de stratégie entre domaines et veiller à ce qu'il autorise l'envoi d'en-têtes HTTP SOAP. Cette erreur peut également être liée à l'utilisation de types internes dans le proxy de service Web sans utiliser l'attribut InternalsVisibleToAttribute. Consultez l'exception interne pour plus de détails.
    Si tu trouves une solution, je veux bien que tu m'en fasses profiter

  14. #14
    Membre confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Décembre 2010
    Messages : 126
    Par défaut
    J'ai pas trouver de solution mais j'ai une piste.
    Tu trouvera le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <endpoint address="http://192.168.0.1:3000/Service.svc"
                    binding="customBinding"
                    bindingConfiguration="CustomBinding_IService"
                    contract="Service.IService"
                    name="DemoEndpoint" />
    Dans le fichier "ServiceReferences.ClientConfig"
    Donc au faite ils ont hébérgé le service sur un site distant qui n'est plus d'actualité aujourd'hui.
    Ce que j'ai essayer de faire c'est de publier le service en local chez moi mais ça marche pas, j'ai un echec de publication sans aucune erreur qui puisse m'éclairer

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 159
    Par défaut
    Hello,

    J'ai un peu galéré aussi pour le faire fonctionner. Voilà les étapes pour que ça fonctionne:

    1 - VS 2010 et les outils Silverlight 4
    2 - Sync Framework 2.1 : http://www.microsoft.com/downloads/e...displaylang=en
    3 - J'ai dégagé les références aux DLLs suivantes:

    - Microsoft.Synchronization
    - Microsoft.Synchronization.MetadataStorage
    - Microsoft.Synchronization.SimpleProviders

    Pour y mettre à la place des références vers les mêmes Assemblys installées dans \Program Files\etc. et c’est tombé en marche.

    Bye,

    David

  16. #16
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Citation Envoyé par davrous Voir le message
    et c’est tombé en marche.
    Arf, pas de chance...
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  17. #17
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Moi je fait ça avec Visual Web Developer 2010, j'ai installé sync framework...et rajouté les références pour que ça génère aucun bug mais rien à faire ça fonctionne pas ...

  18. #18
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Re Bonjour,

    Je me suis re-penché sur mon problème et enfaite c'était bien un soucis sur le fichier XML.
    Je n'ai pas utilisé de framework pour faire la synchro, mais je vais regardé car ma façon n'est pas très optimisée.

    Donc pour résumer :

    1. Je vais sur mon application en ligne, je télécharge l'application silverlight (out-of-browser) et je créé automatiquement les fichiers XMl sur mon DD pour avoir une sauvegarde de la base de données

    2. Je démarre mon application silverlight (out-of-browser), je test la connexion internet :
    - Si connexion : je fais mes mises à jours en ligne et retélécharge les nouveaux fichiers XML sur mon DD
    - Sinon, je récupère et gère mes données à partir des fichiers XML.
    Lors d'un ajout d'une données, je mets une propriété NOUVEAU à true

    3. Je synchronise avec le base en ligne, et insert les nouvelles données ou le champs NOUVEAU = true

    Mais cette méthode est moyen, notamment si la base de données et lourde...ça implique beaucoup de création de fichiers XML...


    Voilà, peut-être que ça servira à d'autres personnes.

    A+

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 17/07/2009, 11h03
  2. Réponses: 0
    Dernier message: 13/07/2009, 16h28
  3. Gestion des requetes de type select en mode déconnecté
    Par ninsekh dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/10/2007, 20h56
  4. Réponses: 4
    Dernier message: 11/05/2006, 16h57
  5. [Vb.net][Ado.net] mode déconnecté avec sql
    Par hoummass dans le forum Accès aux données
    Réponses: 6
    Dernier message: 27/11/2005, 15h10

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