2008-10-09 7 views
0

Ce sera ma première question sur cette plate-forme. J'ai fait beaucoup de développement en utilisant Flex, WebORB et ASP.NET. Nous avons résolu des problèmes de simultanéité avec la messagerie (Pessimistic Concurrency Control). Cela fonctionne plutôt bien, mais cela rend également l'application entière dépendante de la messagerie. Pas de messagerie, pas de contrôle de concurrence. Je sais que ASP.NET a le contrôle de version dans DataSets, mais comment iriez-vous et utilisez-le si vous travaillez sur un RIA. Il semble difficile d'aller et de stocker chaque jeu de données dans la session du client ... Donc, si le client voudrait avoir besoin de tous les produits, je devrais stocker l'ensemble de données dans la session du client. Quand le client changerait quelque chose à un produit et enregistrerait le produit, je pourrais alors mettre à jour le jeu de données (stocké dans la session) et essayer de l'enregistrer ... Semble beaucoup de travail et beaucoup de mémoire qui sera employée (parce que ces produits seront conservés dans la mémoire du client, l'ensemble de données doit donc être conservé sur la session côté serveur). Je pense que le moyen le plus simple serait de fournir à tous les DTO un numéro de version. Si le client essayait de sauvegarder un DTO, je pourrais comparer le numéro de version avec celui de la base de données.La concurrence dans RIA

Lieven Cardoen

Répondre

1

C'est quelque chose que je l'ai fait avant - que les données d'origine provenait d'une base de données SQL Server, nous avons utilisé une colonne typée rowversion dans chaque DTO pour déterminer si elle avait changé alors que l'utilisateur J'y travaille.

À ce stade, vous pouvez soit barf sur l'erreur ou essayer et trouver un moyen de fusionner les changements, mais au moins vous pouvez dire qu'il est changé en dessous de vous :)