begin process at 2010 02 10 06:55:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

.NET

 > 

[.Net] Création de DLL et double chainage


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[.Net] Création de DLL et double chainage

mercredi 17 août 2005 à 14:25:42 | [.Net] Création de DLL et double chainage

Atmaweapon

Bonjour à tous !
J'ai un problème pas forcément évident à expliquer, donc je me suis donné la peine de faire un schéma pour vous l'expliquer.
Le voici :


Ce schéma correspond à mon architecture applicative.
Mon idée, qui en soit n'est pas plus compliqué que cela, était de générer une DLL pour le package contenant les classes FonctionsDisponibles, Fonction et toutes les classes héritant de cette derniere classe. De cette manière, lorsque je code une nouvelle fonction, pour qu'elle puisse être disponible à l'utilisation dans mon application, je n'ai juste -en théorie- qu'a recompiler ma dll avec la nouvelle Fonction, et la méthode getFonctionsDisponibles() mise à jour, et c'est bon.

Le porblème maintenant, vient de ma classe GestionnaireFonctions qui est utilisée par mes classes de ma DLL... Pour l'instant, pas de problèmes ... Le problème arrive à cause du fait que GestionnaireFonctions utilise la méthode FonctionsDisponibles.getFonctionsDisponibles() ... j'ai donc un linkage "dans les deux sens".

Je dis tout de suite que je ne peux pas incorporer la classe GestionnaireFonctions dans ma DLL : en effet, comme vous pouvez le voir, cette classe utilise plein d'autres classes (qui elles-memes utilisent d'autres classes etc...) et est également utilisée par plein d'autres classes (je viens de m'apercevoir que je ne l'ai pas schématisé ... tant pix ! ^_^) donc ca ne s'arrete plus ...

Je voulais savoir s'il était possible, sous .Net, de générer plusieurs DLL à partir d'un projet (en spécifiant quelles sources vont dans quelles DLL par exemple) ou s'il existe un procédé permettant de générer mes DLL "croisées".

Merci d'avance :)

mercredi 17 août 2005 à 14:45:08 | Re : [.Net] Création de DLL et double chainage

sebmafate

Membre Club Administrateur CodeS-SourceS
je pense que, pour éviter ton problème de redondance, qu'il te faudrait une interface entre les 2...




Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
mercredi 17 août 2005 à 14:58:33 | Re : [.Net] Création de DLL et double chainage

Atmaweapon

Le probleme est que ma fonction "utilisée" par le GestionnaireFonctions est static .... et il est bien connu (malheureusement) qu'on ne peut définir de méthode static abstraite (ou d'interface avec une méthode statique)
Maintenant, placer une interface au dessus de mon GestionnaireFonctions ... pourquoi pas -éventuellement- ... le probleme est que si je dois voir mon GestionnaireFonctions évoluer, il va falloir que je fasse évoluer mon interface pour pouvoir accéder a "l'évolution" dans mes Fonctions ... lourd ! :) (j'suis une grosse feignasse ^_^)

je suis ouvert a toute nouvelle suggestion ^_^

mercredi 17 août 2005 à 15:31:15 | Re : [.Net] Création de DLL et double chainage

Atmaweapon

Je pense qu'à y réfléchir un peu plus ... je pourrais en fait très bien utiliser un singleton plutot qu'une classe avec simplement une méthode statique pour la classe FonctionsDisponibles ... pourquoi pas =)
mercredi 17 août 2005 à 15:46:13 | Re : [.Net] Création de DLL et double chainage

sebmafate

Membre Club Administrateur CodeS-SourceS
c'est une solution qui me parait correcte


Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
mercredi 17 août 2005 à 16:07:52 | Re : [.Net] Création de DLL et double chainage

Lutinore

Administrateur CodeS-SourceS

Est-ce-que la réflexion ne serait pas une solution, envisager un scenario avec ce qu'on appele je crois "un lien tardif" ?

mercredi 17 août 2005 à 16:21:44 | Re : [.Net] Création de DLL et double chainage

Atmaweapon

J'y ai également pensé mais je ne sais absolument pas comment mettre ca en place ^_^
mercredi 17 août 2005 à 16:24:44 | Re : [.Net] Création de DLL et double chainage

sebmafate

Membre Club Administrateur CodeS-SourceS
une réponse bien de chez moi : "oui et non"

en fait avec la réflection, le problème c'est de savoir quelles méthodes on peut utiliser...

en fait, j'aime la notion de "plug in"... avec x classe implémentant la même interface, ca permet de créer un lien tardif et d'utiliser LA bonne méthode.

ex :
public interface IFonction {
   string Name;
   string Description;
   void Action(object[]);
   void BeginAction(object[]);
   void EndAction();
}

ensuite pour chaque fonction, c'est comme si tu créés un plugin implémentant l'interface.

c'est une idée... je pense utiliser ce principe bientot dans une application de traitement d'images.


Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
mercredi 17 août 2005 à 16:42:33 | Re : [.Net] Création de DLL et double chainage

Atmaweapon

hihi ... j'ai l'impression de me mordre la queue (aie ca fait mal !) ...

Je viens d'implémenter mon singleton ainsi que l'interface ... mais subsiste encore un probleme :
auparavant, dans mon GestionnaireFonctions, j'avais un truc du style :

{
  //...
 _fonctionsConnues = FonctionsDisponibles.initFonctionsConnues(this, /* ... */);
  // ...
}

... Mais maintenant... que dois-je mettre ?
Puisque "normalement", dans le code du Gestionnaire, je ne suis pas censé "connaitre" la classe FonctionsDisponibles (je connais par contre l'interface IFonctionsDisponibles)

Ce que je veux dire, c'est que l'instance de FonctionsDisponibles, il va bien falloir que je la passe en parametre quelque part...
Un pattern de derriere les fagots pour ca ? ^^

mercredi 17 août 2005 à 16:53:15 | Re : [.Net] Création de DLL et double chainage

Lutinore

Administrateur CodeS-SourceS

Pour appeler une fonction avec un lien tardif ( en gros ) :




1 ) Charger l'assembly.
2 ) Chercher la méthode dans l'assembly.
3 ) Créer une instance de la classe si la méthode n'est pas static.
4 ) Appeler la méthode.


1 2

Cette discussion est classée dans : net, générer, dll, classe, classes


Répondre à ce message

Sujets en rapport avec ce message

Utilisation DLL C++ en C# [ par pma3d ] Bonjour à tous. Avant toute chose, je tiens à préciser que j'ai découvert à la fois .NET, C++ et les dlls il y a maintenant une semaine (vive l'ensei séparer les classes pour faire une dll [ par nicotom ] Salut à tousJe suis sur un logiciel qui comporte environ 25 classes.j'aimerai faire une dll par classe.J'utilisa le compilateur en ligne de commande a Utiliser une DLL.net [ par nadjim ] Bonjourj ai crée une dll .net en c# contenant deux classes avec plusieurs fonctions membres dans chacunes de classes.namespace xxx{    public class cl Visibilité d'une classe .Net dans une dll [ par billou_13 ] Bonjour, Alors voila, j'ai développé une dll en C# et je l'utilise sur une application windows form. Pour des raisons de clarté, je voudrais cependa Dll, arguments & classe utilisateur [ par MyXiLo ] Bonjour,Je voudrais passer un argument dérivant d'une classe utilisateur à une méthode d'une dll.J'ai un programme qui contient une classe MaClass et Ressources, DLL & cie [ par ricklekebekoi ] Bonjour,En fait, c'est surtout une histoire de compréhension ici.Je vais prendre l'exemple d'une source que j'ai déja fait il ya un temps ... la liste SerialPort inexistant dans Visual C#.NET 2003 ??? [ par yaslikurk ] En fait je n'ai pas accès au namespace System.Out.Ports qui me permettra d'instancier l classe SerialPort !!J'utilise Visual C#.NET 2003 (application comment générer des dll en version 1.1 [ par yassineee ] Bonjour, je travaille avec Visual studio 2005 avec la version du framework 2 et je suis amené a paramétrer (CRM 3.0) en faite je dois ajouter des dll Enregistrement DLL dans le gac [ par philouche ] Bonjour, Qqn sait il comment enregistrer une DLL .NET dans le gac, par API en .NET ? (sans utiliser gacutil.exe bien sur...) Et également l'équivalent Générer un DataSet Typé [ par romagny13 ] Bonsoir,existe t'il une classe permettant de générer un DataSet typé dans le framework ?je sais qu'il existe un fichier Xml qui lorsque l'on saisit le


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales