2009-12-28 11 views
1

Quelle est la meilleure option pour stocker les données relatives aux contrôles dynamiques. Voici mon scénario.Gestion dynamique de l'état des contrôles - Affichage de la base de données Vs

  1. A tout moment, environ 5 à 15 tables principales sont attendues.
  2. Les contrôles dynamiques peuvent être de type TextBox, DropDownList, ListBox, GridView.
  3. Les maîtres ne vont pas changer à la publication, mais la page entraînera de nombreuses publications dans une même session.
  4. J'utilise SQL Server 2005 avec .NET 2.0

être des utilisateurs plus expérimentés, suggérez-vous pour remplir ces articles dans les contrôles de base de données ou permettre viewstate de chaque contrôle pour maintenir la liste des éléments? Je regarde cela du point de vue de la performance plus rapide. Aussi, pourriez-vous s'il vous plaît fournir les raisons de vos suggestions.

Toutes les autres suggestions sont également les bienvenues. Faites-moi savoir, au cas où vous auriez besoin de plus d'informations.

Merci - Raja

Répondre

1

Cela dépend. Comme Aaron l'a mentionné, tout ce que vous stockez dans viewstate doit être téléchargé depuis le client vers le serveur. Pour un site net er cela rend normalement viewstate un endroit incroyablement mauvais pour stocker des données tabulaires. Pour un site net ra où le client a probablement 100Mbs de bande passante de téléchargement qui n'est pas aussi gros, et Viewstate peut être un meilleur endroit; Cela est particulièrement vrai si la requête de la base de données pour reconstruire ces données est coûteuse. Cela dit, un grand nombre de sites intranet sont finalement portés pour prendre en charge les travailleurs à domicile et se retrouvent soudainement à travailler dans des situations Internet, alors vous pouvez toujours garder à l'esprit les limitations de performance de type Internet. Dans ce cas, si votre requête de base de données finit par être un goulot d'étranglement, vous pouvez envisager une vue indexée/matérialisée ou même des tables séparées où vous pouvez insérer temporairement ces données pour une récupération rapide afin d'accélérer les choses à cet effet.

0

Dans votre cas, je serais certainement frappé la base de données pour les données, et pas stocker de données tabulaires dans le ViewState. Tout ce qui est stocké dans ViewState est renvoyé au serveur par le client à chaque publication. Il est chiffré, utilisé, chiffré à nouveau, puis renvoyé, ce qui est beaucoup plus coûteux que d'interroger votre base de données.

Les petites choses comme id et whatnot sont bonnes à stocker dans le ViewState, mais pas des tables entières de données.