OVH Cloud OVH Cloud

DataSet Typé et singleton ?

2 réponses
Avatar
The Ploum
Bonjour,

Je débute en VS2005 et j'aimerais savoir s'il est possible de modifier un
dataset typé pour en faire un singleton ?
Je pense que c'est faisable avec les classes partielles, mais je ne sais pas
comment faire. Quelqu'un aurait il un exemple ?
L'idée étant d'obtenir un dataset partagé pour tous les winform du projet,
tout en continuant d'utiliser au maximum les outils de génération de code de
VS, ainsi que le binding via l'IDE.

Merci d'avance pour vos suggestions !

2 réponses

Avatar
PetitTrot
Il me semble que la notion de singleton c'est au niveau d'une classe.
Cette classe peut-donc contenir le dataset comme tel et tout ce qui accède à
cette classe a par conséquent acces au dataset !?
Mais bon, je ne comprends peut_être pas assez la notion de singleton ou
votre problème en particulier.


"The Ploum" wrote in message
news:
Bonjour,

Je débute en VS2005 et j'aimerais savoir s'il est possible de modifier un
dataset typé pour en faire un singleton ?
Je pense que c'est faisable avec les classes partielles, mais je ne sais


pas
comment faire. Quelqu'un aurait il un exemple ?
L'idée étant d'obtenir un dataset partagé pour tous les winform du projet,
tout en continuant d'utiliser au maximum les outils de génération de code


de
VS, ainsi que le binding via l'IDE.

Merci d'avance pour vos suggestions !


Avatar
The Ploum
Bonjour PetitTrot,

Effectivement c'est au niveau d'une classe, or sauf erreur de ma part, un
dataset typé est aussi une classe. L'intérêt étant de partager la même
instance d'un seul dataset typé pour toute l'application via l'IDE, donc sans
être obligé de faire tout le binding dans le code.

Je m'explique différement :

Imaginons un formulaire principal qui présente sous forme de grille
hiérarchique des données provenant d'entreprises, d'emplois et de personnes.
Une sorte d'annuaire, mais qui n'affiche pas forcément tous les champs de
chacunes des trois tables principales. L'idéal étant que l'utilisateur puisse
choisir lui-même les champs qu'il désire faire figurer dans sa réprésentation
des données. Il faut donc lire tous les champs, même s'ils ne sont pas
sytématiquement utilisés.
Ensuite, je veux pouvoir afficher un formulaire détaillé contenant cette
fois tous les champs d'une seule des trois tables. Actuellement, je peux très
bien lire à nouveau les données concernées lors du chargement d'un formulaire
de détail. Je peux aussi, recopier les données du dataset du formulaire
principal vers celui du formulaire de détail. Dans les deux cas, elles ont
déjà été lues par le formulaire principal, ce qui n'est pas très économe.
Il y a aussi une troisième possibilité, que j'utilise aujourd'hui. Elle
consiste à lire les données dans un dataset typé pendant le chargement du
formulaire principal. Puis lors du chargement d'un formulaire de détail,
j'appelle une méthode en lui passant une référence au dataset typé du
formulaire principal. Celle-ci l'affecte à l'instance du dataset du même type
qui se trouve sur le formulaire, et doit faire le binding à nouveau vers
chaque champs du formulaire de détail puisqu'il ne s'agit pas de la même
instance. L'instance du dataset typé "local" ayant été créé lors du
l'instanciation du formulaire, le binding doit être effectué à nouveau.
C'est là qu'intervient l'idée d'un singleton. S'il est possible avec les
classes partielles de transformer un dataset typé en singleton, alors tous
les formulaires partagerons la même instance d'un seul dataset sans devoir
refaire le binding à chaque appel.
Ce qui est très différent que d'exposer un dataset quelconque dans une
classe de type singleton. A la lecture des différents articles disponibles
sur MSDN, je pense qu'il serait aussi possible de faire un composant sous
forme d'une classe singleton qui s'appuierait sur l'interface IBindingList.
Mais là encore je ne sais pas trop comment m'y prendre.

En fait, ce que je recherche, c'est un exemple ou un article sur ces sujets.
N'ayant rien trouvé lors de mes recherches, j'ai posté cette question ici !

Ploum.

"PetitTrot" a écrit :

Il me semble que la notion de singleton c'est au niveau d'une classe.
Cette classe peut-donc contenir le dataset comme tel et tout ce qui accède à
cette classe a par conséquent acces au dataset !?
Mais bon, je ne comprends peut_être pas assez la notion de singleton ou
votre problème en particulier.


"The Ploum" wrote in message
news:
> Bonjour,
>
> Je débute en VS2005 et j'aimerais savoir s'il est possible de modifier un
> dataset typé pour en faire un singleton ?
> Je pense que c'est faisable avec les classes partielles, mais je ne sais
pas
> comment faire. Quelqu'un aurait il un exemple ?
> L'idée étant d'obtenir un dataset partagé pour tous les winform du projet,
> tout en continuant d'utiliser au maximum les outils de génération de code
de
> VS, ainsi que le binding via l'IDE.
>
> Merci d'avance pour vos suggestions !