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

ASP.NET Discussion :

[C# 2.0] - Optimistic Concurrency


Sujet :

ASP.NET

  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut [C# 2.0] - Optimistic Concurrency
    Bonjour à tous.

    Désolé pour ce titre anglais mais je n'arrivais pas à trouvé le terme français.

    Pour ceux qui ne saurait pas de quoi je parle ;
    Imaginons que vous ayez un application web pour faire de la gestion de produit en ligne pour un entreprise. Deux utilisateurs se connect en même temps au site web et décide de modifier ou supprimer le même produit.


    J'aimerais savoir comment vous gérez ce problème dans vos application Web ?

    Comme par exemple vous avez un Datagrid qui liste tous les produits d'une catégorie. L'utilisatuer #1 décide d'aller prendre un café et pendant ce temps l'utilisateur #2 lui décide de modifier ou même supprimer un item du datagrid. Lorsque l'utilisateur #1 sera de retour sur la page (page que j'appelerais fantôme maintenant), il n'aura pas les données exacte et par ailleurs cela pourrait causer des conflits. Comment résoudre aussi ces conflits ?

    J'avais pensé à un système AJAX qui pool la database à chaque instant afin de savoir ce qui est en changement ou pas. Mais pas de là à faire un Visual Source Safe de toutes les modifications mais seulement AVISÉ les utilisateurs lorsqu'une autre personne consulte les même info qu'elle.

    Avez-vous d'autres idées ?
    Merci
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  2. #2
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Salut,
    En .Net 2.0 du as une directive SQLCacheDependency. En gros cela permet d'utiliser le cache pour l'affichage de tes données, mais des qu'une modification est effectuée dans la base de donneés, ta page se rafraichit. En revanche ca ne marche que si tu utilises SQL Server 2005.
    Sinon un appel AJAX toutes les X secondes pour raffraichir les données de ton gridview fera tres bien l'affaire.
    @+

  3. #3
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Merci beaucoup pour ce truc.

    Cependant, j'utilise plus souvent qu'autrement MySQL. Dans mes projets précédents je vérifiais l'intégrité des données dans la base de données et ce pour chaque postback. Comme par exemple ;

    Prenons le cas d'un datagrid contenant les produits 1, 2, 3, et 5. Deux utilisateur arrivent sur la même grille les affichant tous un à la suite des autres. Supposons que l'utilisateur #1 décide de supprimer le produit 2. Et qu'après le Postback de l'utilisateur #1, l'utilisateur #2 essais d'éditer le numéro 3. Il y aura un problème du fait que le ItemIndex du produit était 2 au départ mais après que l'utilisateur #1 est supprimé ce sera 1. À ce moment précis je m'assure que le ID demandé coincïde bien avec le ItemIndex sinon je le recherche dans la page actuelle, sinon je cherche dans les autres pages du grid et j'ajuste la pagination selon le cas. C'est un peu compliqué mais ça fonctionne très bien.
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

Discussions similaires

  1. [ZF 1.9] Gestion optimiste des accès concurrents
    Par cyrille37 dans le forum Zend_Db
    Réponses: 3
    Dernier message: 22/09/2009, 10h42
  2. Concurrence optimiste avec Hibernate
    Par whorian dans le forum Hibernate
    Réponses: 11
    Dernier message: 22/04/2008, 03h10
  3. "Optimistic concurrency" en VB.Net et SQL Server
    Par devdotnet dans le forum Accès aux données
    Réponses: 4
    Dernier message: 27/02/2007, 11h56
  4. [EJB] Accès concurrents à la base de données
    Par cameleon2002 dans le forum Java EE
    Réponses: 10
    Dernier message: 23/09/2003, 11h31

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