IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Comment créer une bibliothèque de Web User Controls et les importer?


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 376
    Points : 477
    Points
    477
    Par défaut Comment créer une bibliothèque de Web User Controls et les importer?
    Bonjour,

    Je souhaite créer un projet contenant des Web User Control, puis les utiliser dans différents autres projets. J'ai lu pas mal d'articles sur le sujet mais j'aurais besoin de vos opinions.

    La majorité des articles datent de quelques années, est ce que la plateforme 3.5 et VS2008 permettent de faire ce genre de choses facilement?

    De plus, j'arrive à créer des composants en les réutilisant dans d'autres projet (utilisation d'un wrapper qui charge les controlles: Page.LoadControl), mais ils ne sont pas visibles dans le designer de VS2008 parce qu'ils sont chargés à l'exécution. Du coup la page ASP ne montre pas le composant utilisé, ni d'ailleurs la place qu'il occupera à l'exécution.

    Auriez vous des pistes pour me faire avancer sur le sujet?

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : janvier 2007
    Messages : 2 523
    Points : 6 464
    Points
    6 464
    Billets dans le blog
    4
    Par défaut
    Si ils datent de plusieures années ils pourront surement être interprétés par le 3.5, cependant, la structure actuelle et les progrès du Framework font que tu devrait surement pouvoir améliorer ces codes et les rendre plus.. "efficaces" et "performants"
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  3. #3
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : mars 2004
    Messages : 6 559
    Points : 9 504
    Points
    9 504
    Par défaut
    Salut,

    Les custom controls et compagnie ne sont que des classes il suffit de créer une bibliotheque de classe dans laquelle tu mets tes controls. Pour les utiliser tu les ajoutes à la ToolBox: clic droit > choisir > composant .Net > Parcourir...

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 376
    Points : 477
    Points
    477
    Par défaut
    Salut,
    Merci à vous.

    Citation Envoyé par Immobilis Voir le message
    Les custom controls et compagnie ne sont que des classes il suffit de créer une bibliotheque de classe dans laquelle tu mets tes controls. Pour les utiliser tu les ajoutes à la ToolBox: clic droit > choisir > composant .Net > Parcourir...
    Mes user control contiennent aussi un fichier ascx (du XML), et je n'arrive pas les ajouter à la ToolBox.

    Pour l'instant, j'ai mis mes fichier ascx en "Resource incorporée". J'ai bien une bibliothèque de classe qui contient mes controls. Mais je n'arrive pas à les ajouter dans la ToolBox aussi facilement.

    J'ai créé une classe qui permet de faire des Page.LoadControl (elle étend WebControl). Et permet donc de charger dynamiquement mes controles.

    Ma classe qui étent WebControl peut être ajoutée dans la ToolBox mais mes classes qui étendent UserControl ne peuvent pas (ou je n'y arrive pas!!!).

    Est t'il possible de rendre ces classes visuelles dans le designer d'écrans?
    Existe t'il une solution plus simple? Qu'est ce que j'ai raté?

    Merci.
    A+

  5. #5
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : janvier 2007
    Messages : 2 523
    Points : 6 464
    Points
    6 464
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par eric39 Voir le message
    Salut,
    Est t'il possible de rendre ces classes visuelles dans le designer d'écrans?
    Tu entend quoi par là? faire un diagramme des classe?
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 376
    Points : 477
    Points
    477
    Par défaut
    Citation Envoyé par Lyche Voir le message
    Tu entend quoi par là? faire un diagramme des classe?
    Ah non, pas du tout, je me suis mal exprimé.

    Lorsque je créé un UserControl et que je l'utilise dans le même projet. Ma page ASP en mode Design, permet de voir le user control (son contenu).

    J'essaie de faire la même chose avec un UserControl d'un autre projet pour pouvoir l'utiliser dans plusieurs projets différents.
    J'ai donc fait le UserControl, ainsi qu'un WebControl qui fait un Page.LoadControl. Du coup ma page ASP ne montre pas (visuellement dans la mode design des pages) le UserControl que j'ai ajouté.

    Je trouve celà normal parce que le LoadControl a lui lors de l'exécution et donc on mode Design lors du développement je ne vois pas le user control.

    Je voudrais pouvoir utiliser des user control issus d'autres projets, tout en les voyant dans ma page ASP lors du développement. Mon problème est là!!

    Je ne voulais pas faire des WebControl car lors développement semble plus compliqué.

    Est ce que j'ai été plus clair? Avez vous une idée?

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 376
    Points : 477
    Points
    477
    Par défaut
    Bonjour,
    J'ai changé mon mécanisme pour utiliser des Web User Controls issus d'un autre projet:

    Mon projet ASP dépend du projet contenant les Web User Control, et j'effectue une copie des fichiers ascx vers un répertoire spécifique du projet ASP. Comme ça je peux importer mes user control et donc voir le résultat quand ma page asp est en mode Design.

    Est ce que cette solution vous semble correcte?

    Merci d'avance.

  8. #8
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : mars 2004
    Messages : 6 559
    Points : 9 504
    Points
    9 504
    Par défaut
    La copie est contraigante car tu duplique le code.

    A mon avis tu devrais faire un projet totalement indépendant. Par la suite, tu l'inclus dans toutes les solutions sur lesquelles tu travailles.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  9. #9
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 376
    Points : 477
    Points
    477
    Par défaut
    Merci pour ta réponse,

    Effectivement c'est un peu contraignant (j'utilise sous VS une commande avant génération).
    Actuellement j'inclus mon projet de User Control dans ma solution, et je copie uniquement les fichier ascx des user control dans mon projet asp.

    Ta solution est sans aucun doute la bonne, mais je n'arrive pas à la mettre en oeuvre.
    Lorsque j'inclus un projet de Web User Control dans ma solution, je n'arrive pas à accéder aux user control dans une page asp.
    Sauf si
    • J'utilise le LoadControl, mais du coup je ne peux pas voir grand chose lors de l'utilisation du mode Design de Visual studio.

    • Mes fichiers ascx (pas le code behind) sont copiés et le projet est dans la solution


    Certains articles (un peu vieux peu être), explique des mécanismes de publications sur IIS des user control pour pouvoir les utiliser dans un autre projet. Je n'ai pas réussi à les mettre en oeuvre avec IIS7.

    Ta solution est top, mais j'ai l'impression d'avoir essayé dans tout les sens, et de ne pas pouvoir le faire aussi simplement.

  10. #10
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : mars 2004
    Messages : 6 559
    Points : 9 504
    Points
    9 504
    Par défaut
    Arf, c'est vrai que l'un des objectifs est de voir le rendu des controles en mode design.
    "Winter is coming" (ma nouvelle page d'accueil)

  11. #11
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Italie

    Informations forums :
    Inscription : octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    A mon humble avis, n'essaye pas de conserver ce mode design à tout prix. Personnellement, je le trouve particulierement foireux le mode design des pages dans visual studio. Quand il marche, Youpi! c'est joli, mais 3 fois sur 4, il me met un joli rectangle gris avec une erreur dedans, ce qui n'empeche absolument pas les controles de builder et de se comporter correctement.

    Tu perds un avantage de visualisation et de confort en arretant de courir apres le mode design, mais tu gagnes du temps de developpement et un autre type de confort en suivant les conseils d'Immobilis.

  12. #12
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 376
    Points : 477
    Points
    477
    Par défaut
    Merci bien pour vos avis et conseils.

    J'ai peur de faire passer ça! Si je dois dire aux personnes qui développe qu'ils ne verront pas leur pages pendant le développement mais uniquement en exécution, je ne suis pas sur de leur réaction (ils ont ça dans leur outil actuel)

    Ceci ne m'empèche pas d'être d'accord globallement avec vous.

    Si j'ai bien compris la solution proposée par Immobilis, il faut que je mette en place une classe qui fera les LoadControl de mes User Control ? Parce que perso, je n'ai jamais réussi à ajouter un User control (pas un Web control) d'un autre projet dans la ToolBox?

    Du coup, je me demande si je me lance dans les custom control, mais le développement est quand même plus complexe. Je crois qu'ils sont plus simple à partager parce qu'il n'y a pas de fichier XML associé.

    Si vous avez d'autres avis (même humble ), je suis preneur parce ce que je me sens un peu dans une impasse...

    Merci encore.

  13. #13
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : mars 2004
    Messages : 6 559
    Points : 9 504
    Points
    9 504
    "Winter is coming" (ma nouvelle page d'accueil)

  14. #14
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 376
    Points : 477
    Points
    477
    Par défaut
    Merci beaucoup.

    J'avais déjà vu un article dans le même genre, mais je n'avais pas réussi à gérer correctement les répertoires virtuels de IIS. Si je me souviens bien, je n'arrivais pas à faire la corrélation entre l'article (IIS6) et IIS7. Mes connaissances IIS étant très limitées.

    Je réessayerais en me basant sur les articles que tu m'as transmis.


    Encore merci pour le temps que tu passes et pour toutes les infos que tu m'as déjà transmis.

  15. #15
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 376
    Points : 477
    Points
    477
    Par défaut
    Bonjour,

    J'ai réussi à tester tes solutions, Immobilis, ça marche bien, merci.

    Le problème, qui est toujours le même, est que le designer de Visual Studio n'affiche rien lorsque l'on utilise un control déployé dans IIS.
    Je crois qu'il va falloir me résoudre à faire sans, comme vous me l'aviez suggéré...

    Je laisse quand même le thread ouvert parce que je suis toujours à l'écoute d'infos sur le sujet.

    Merci encore.

  16. #16
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : mars 2004
    Messages : 6 559
    Points : 9 504
    Points
    9 504
    Par défaut
    La copie est contraigante car tu duplique le code.

    A mon avis tu devrais faire un projet totalement indépendant. Par la suite, tu l'inclus dans toutes les solutions sur lesquelles tu travailles.
    Comme ceci http://webproject.scottgu.com/CSharp...rControls.aspx
    "Winter is coming" (ma nouvelle page d'accueil)

  17. #17
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 376
    Points : 477
    Points
    477
    Par défaut
    Merci, c'est la solution que j'avais mis en place, en recopiant les fichiers ascx (cf: quelques posts précédents).

    J'avoue ne pas trop comprendre ton post, tu me disais l'autre fois que la copie n'est pas génial. En fait, j'utilisais déjà la copie à l'aide des événements avant génération.

    Cette solution, te semble finallement pas trop mal?

    Dans tout les cas, merci de passer du temps sur mon souci.

  18. #18
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : mars 2004
    Messages : 6 559
    Points : 9 504
    Points
    9 504
    Par défaut
    Arf, oui, je m'ai trompé c'est effectivement une copie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy $(SolutionDir)\MyUserControlLibrary\*.ascx $(ProjectDir)\UserControls\
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  19. #19
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 376
    Points : 477
    Points
    477
    Par défaut
    OK, merci,

    Je vais donc recopier les fichier asmx qui m'intéressent dans le projet qui les utilisent. Avec une dépendance du projet vers le code behind dans une dll.
    Il faudra aussi que je recopie, les fichiers resources (traduction) et les css...

    Merci encore Immobilis, pour toutes tes réponses, et le temps passé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PowerShell] Comment créer une bibliothèque
    Par kalyparker dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 23/08/2012, 10h36
  2. Comment créer une bibliothéque sous sas
    Par cococmoi dans le forum Débutez
    Réponses: 3
    Dernier message: 23/03/2012, 20h09
  3. Comment créer une bibliothèque XLL ?
    Par hibou107 dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 21/04/2011, 12h39
  4. [VBA-E] comment créer une bibliothèque de classes ?
    Par james-mi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/05/2006, 22h04
  5. Réponses: 0
    Dernier message: 17/10/2005, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo