Bonjour à tous,

Je suis en train de développer un site web ASP.NET C#, et je voudrais raffraichir de la manière la plus fluide possible un tableau contenant les données d'une table contenant plus de 100 000 lignes d'une base de données placée sur une autre machine du même réseau intranet. En fait je voudrais que le tableau se raffraichisse exactement toutes les secondes, même si l'on connecte plusieurs utilisateurs en même temps, sachant que la table affichée se met à jour également toutes les secondes environ.

J'ai essayé pour cela d'utiliser un GridView que je place dans un UpdatePanel, ainsi qu'un timer qui réalise un Databind() sur le GridView toutes les secondes. J'ai un bon rendu, mais l'actualisation ne se fait pas exactement toutes les secondes (ça doit metre 1,1 seconde), et ducoup lorsque l'on augmente le nombre d'utilisateurs, la durée de raffraichissement se rallonge (>2 secondes pour 10 utilisateurs simultanés).

Ma source de données est un SqlDataSource et j'ai tenté de passer l'attribut DataSourceMode de mon objet à DataReader. J'ai également retiré la pagination et le trie pour optimiser mais les performances ne sont pas vraiment mieux.

J'ai regardé sur le net pour voir ce qui se fait d'autre pour réaliser cette tâche, et je suis tombé sur ObservableCollection qui pourrait peut-etre faire l'affaire à la place de ce macanisme d'UpdatePanel. Mais je n'arrive pas à mettre de mécanisme de raffraichissement en place avec cet objet.


Sauriez vous quel serait la meilleur méthode à employer pour faire ce raffraichissement automatique ? pour faire ça, je ne suis pas obligé d'utiliser un GridView mais ça peut être une liste toute simple pour augmenter les performances.

Si quelqu'un avait une idée, ou même juste pourrait me décrire quels objets sont les mieux en terme de performance ça me serait d'une grande aide ?

Merci beaucoup