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 :

Gestion de couleurs en fonctions de données en base de données


Sujet :

Silverlight

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 44
    Par défaut Gestion de couleurs en fonctions de données en base de données
    Bonjour,

    Sur une application SilverLight 3 avec un serveur SQL server 2008 Express,
    je souhaite gérer des couleurs dans un tableau, qui est rafraichi toutes les secondes, en fonction de données dans une base de données SQL Server.
    Les couleurs doivent changer en fonction de la date et de l’heure de l’insertion ou de la modification des données.

    Exemple :
    • 1 couleur qui apparait pendant un certain temps lorsque c’est une nouvelle donnée. (5 secondes a chaque insertion / modification)

    • 1 couleur qui apparait lorsque la date et l’heure de la nouvelle donnée est < à un certain temps. (1 heure après insertion / modification)


    Je pensais utiliser des déclencheurs SQL à l’insertion et à la modification de ma table pour insérer la date et l’heure du serveur (GetUtcDate()) dans un champ.
    J’ajoute une fonction SQL qui attend en paramètre le champ DateHeure, et le compare à l’heure courante.
    Celle-ci ressort la valeur 1 selon s’il s’agit d’une ligne de moins de 5 secondes, la valeur 2 de moins d’une heure, la valeur 3 pour les autres cas.
    Ensuite dans mon interface selon la valeur du champ « Etat » (1, 2 ou 3) , j’ajoute la couleur correspondante.

    Est-ce que cette méthode vous parait optimisée ? ou existe t-il des méthodes plus simple pour comparer ces dates ?

    Je suis passé par des méthodes SQL car j'ai rencontré des décallages entre les heures des machines clients et celle du serveur.
    J'ai donc donc tout centraliser au niveau du serveur SQL.


    Merci d’avance pour votre réponse

  2. #2
    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
    Personellement je suis pour sortir toute la logique de la base de données.
    Je mettrais le "timestampage" plutot côté dans la couche DAO sur le serveur des webservices.

  3. #3
    Membre éclairé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2009
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2009
    Messages : 966
    Par défaut
    Pourquoi ne pas gérer cela coté silverligth plutôt ?
    Il suffit de remonter une information de temps et de gerer la couleur en fonction.

  4. #4
    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
    Il a dit qu'il pouvait y'avoir un décalage de temps entre les horloges clientes et serveur. Un élément pourrait être classé en vert alors qu'il est rouge.

  5. #5
    Membre éclairé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2009
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2009
    Messages : 966
    Par défaut
    Pourquoi comparer le temps avec la machine local ?

    tu peut aussi renvoyer l'heure courante du serveur au client et de comparer ensuite des dates.

    même si idéalement il serrai plus logique de la faire coté web service. (meilleurs performance sans doute)

  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
    Oui c'est ce que je suggérais (peut être n'étais-je pas assez clair).

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 44
    Par défaut
    Bonjour,
    tout d'abord merci pour vos réponses.

    On ne gère pas les éléments relatifs à l'heure au niveau client car les données insérées dans la bdd proviennent d'un système extérieur (ce n'est pas le client qui les ajoute, mais c'est lui qui doit voir l'affichage des couleurs selon les cas).

    Cette méthode fonctionne globalement bien. Toutefois étant débutant en SilverLight, je me demandais s'il n'existait pas des méthodes plus simple que celle ci.

    Merci.

  8. #8
    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
    Voilà comment je ferais sur toute la chaîne:
    -Un champ dans la base de donnée qui te donne l'horaire de la dernière modif
    -Dans ta couche d'accès aux données, lorsque tu insères ou modifie une ligne, mettre à jour le champ
    -Dans ta couche d'accès aux données, mettre une propriété sur l'objet renvoyé à la couche business d'un type énumeration dont la valeur depend du temps
    -Sur la couche silverlight tu peux faire différents VisualState sur ton objet, un état par valeur de l'énumération
    -Sur la couche silverlight tu peux faire un DataTrigger bindé sur la propriété de type enumeration qui provoque un changement de VisualState

  9. #9
    Membre éclairé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2009
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2009
    Messages : 966
    Par défaut
    Le problème est que ton client n'a pas forcement la même heure que ton serveur.

    Mais au lieu de gérer le changement de couleur de ton champ coté client, tu peut la gérer coté serveur comme sa pas de problèmes d'heure.

    tu peut même mettre une variable couleur dans les info qui redescende. comme sa le binding fait le reste, et ta rien a gère coté silverlight

Discussions similaires

  1. fonction include dans une base de donnée
    Par Freega dans le forum Langage
    Réponses: 1
    Dernier message: 13/09/2010, 18h33
  2. Réponses: 1
    Dernier message: 21/07/2009, 11h51
  3. Base de données sans base de données
    Par Zenklys dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/09/2008, 13h13
  4. Réponses: 10
    Dernier message: 10/02/2006, 14h23
  5. Réponses: 3
    Dernier message: 22/12/2005, 11h20

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