Réutilisation de formulaire et classes

cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 - 5 juin 2009 à 11:17
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 6 juin 2009 à 09:10
Bonjour,
je développe plusieurs projets dont j'aimerais pouvoir réutiliser les formulaires.
Je m'explique :
Jusqu'a maintenant, je faisais des "ajouter element existant" et je renommais la partie namespace avec mon nouveau nom.
Le probleme c'est que si je fais une amélioration dans un projet , je dois tout reprendre dans l'autre..
Je travaille également avec des bases de données et donc des datasets . Je me débrouille pour que les tables aient toutes les meme structures mais elles peuvent appartenir a des bases de données différentes et meme de type different (sqlexpress ou firebird).
Prenons un exemple:
je travaille sur un projet 1 sous sql express
- dans ce projet , je definis une table utilisateur (login,mot de passe ,niveau,etc...)
-et je fais des formulaires relatifs a cette table (forumlaire de login, modification du mot de passe, etc...)

J'ai un autre projet (disons le 2) que je veux faire sous firebird et je voudrais réutiliser les formulaires relatifs aux utilisateurs créés dans le premier projet.

et que quand je fais des modifs sur les formulaires , je n'ai qu'à les faire une fois ...

Un autre truc, je voudrais faire une fonction qui récupère les erreurs du programme, par exemple (elle notifie l'erreur a l'utilisateur, ecrit l'erreur ds un fichier,me la reporte par mail , etc...)

j'ai créé une class_erreur avec une procedure statique qui fait le travail

Je voudrais pouvoir utiliser cette class de n'importe quel autre projet.

Pour les connexions aux bases de données , j'ai également créé une class_bd (avec les fonctions insert,etc...) qui prend en parametre le type de base et qui sait comment la traiter. mais puis je faire de meme avec les datasets créés par visual studio ? Il faudrait que je puisse paramétrer le chemin d'accès aux differentes bases.

Exemple : J'ai une base de données bd1 avec la table utilisateur sous sqlexpress
               et un datagridview dans un formulaire de mon projet 1 avec la liste des utilisateurs

             je crée une nouvelle base de données bd2 sous firebird avec la meme table utilisateur (meme champs ,memes types) mais egalements d'autres tables differentes de celle de bd1 ( disons pour simplifier que la seule table commune est la table utilisateur)
           et je voudrais pouvoir réutiliser les memes formulaires relatifs a l'utilisateur (avec juste comme parametre  la connexion a la bd)

Dois je developper un premier projet qui s'appelle juste utilisateur ? et qui sera réutilisé comme dll par les autres ?

Je suis un peu confus et je ne sais par ou commencer ... j'ai un probleme d'organisation a ce niveau ...

Merci pour votre aide

1 réponse

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
6 juin 2009 à 09:10
Bonjour

Tu as la réponse dans ta question.
Oui tu dois faire un projet qui génère une DLL réutilisable dans les autres projets.

Crée une solution, dans laquelle tu ajoutes, par exemple, les 2 projets que tu as en ce moment.
Au niveau de la solution ajoute un nouveau projet de type "Class library" définis l'espace de nom par défaut (defaut name space) par ex "MyClassLibrary".
Tu peux supprimer la class créée par VS

Glisse dans cette librairie de classes les classes d'un des 2 autres projets que tu veux mutualiser et supprime les de l'autre (pour éviter les doublons inutiles).
Dans le code de chacune des classes ajoutées à la librairie, pense à modifier le namespace pour utiliser celui de ta librairie.

Dans les 2 autres projets, ajoute une référence à cette librairie de classes, (dans la fenêtre des références choisi Projets puis ton projet de librairie de class)
ajoute dans le code de tes projets la clause "using" avec le namespace de ta librairie de class.

Bon voilà,
recompile le tout.

Pour un nouveau projet qui veut utiliser cette librairie, il suffira d'y ajouter une référence, et de déclarer la clause using.
Pour les références, lorsque la librairie de classes n'est pas dans la solution, il suffit de rechercher la DLL (bouton Browse dans la fenêtre d'ajout de référence)
mai l'avantage de l'avoir dans la solution est de pourvoir la modifier en temps réel, à la compilation la DLL sera recompilée avant les projets.

Autre, chose, une librairie de classes permet de partager du code, mais pour les interfaces graphiques il existe aussi la possibilité de créer des composants utilisateur "user control" cela permet de mutualiser des interfaces, même très complexe, sans pour autant figer des formulaires.
Par exemple c'est ce qu'on utilise pour des saisies, on met dans une librairie de classe un user control et une classe d'accès aux données, ces 2 éléments étant utilisés par d'autres applications.

à toi de jouer.C# is amazing, enjoy it!<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
0
Rejoignez-nous