11
votes

ASP.NET Web Control Bibliothèque de contrôle de l'utilisateur

Nous avons un groupe de contrôles utilisateur que nous souhaitons sortir d'une application Web et dans un assemblage / une bibliothèque distinct, et je pensais que ce serait aussi simple que de créer une bibliothèque de classe et de tirer les fichiers ASCX et ASCX.CS. dans le projet et compiler une DLL à réutiliser parmi nos applications.

Ce n'était cependant pas le cas, cependant.

Notre objectif ultime est d'avoir une DLL distribuable unique (similaire à la manière dont Telerik distribue ses commandes) que nous pouvons jeter dans n'importe quelle application Web. Les étapes ici: Tournant un contrôle d'utilisateur .ascx dans un contrôle personnalisé redistribuable Était très simple à suivre, mais cela résulte de nombreux fichiers nommés Controlname.ascx.guid.dll, qui n'est pas le résultat souhaité. Je ne pouvais même pas y arriver à travailler de toute façon, puisque nous avons des cours supplémentaires qui doivent être compilés dans l'assemblée.

Est-ce que quelqu'un a créé avec succès une bibliothèque de contrôle d'utilisateur Web dans .NET (nous utilisons 3.5 ici)? Je n'arrive pas à trouver un bon guide étape par étape.


0 commentaires

4 Réponses :


7
votes

Si vous souhaitez partager des contrôles entre le projet, mon expérience a montré que le meilleur moyen est de créer des contrôles de serveur ASP.NET personnalisés au lieu d'UserControls. Les contrôles des utilisateurs sont bons pour le partage dans le même projet, mais pas sur plusieurs multiples.

À cette fin, je vous suggère de créer un ensemble de contrôles de serveur personnalisés dans une bibliothèque de classe et de l'utiliser sur tous vos projets.

Ce livre fait un bon travail pour expliquer les bases de la création de contrôles de serveur

EDIT:
Je développe actuellement une bibliothèque de contrôle de serveur Web .NET. En fait, je n'ai subi aucun guide étape par étape. Je considérais principalement l'utilisation du livre que j'ai mentionné ci-dessus et la bibliothèque MSDN + réflecteur, qui est un excellent outil permettant d'inspecter les commandes de serveur MS existantes et d'apprendre d'eux.


5 commentaires

Oui, nous envisions cela.


Vous envisagez donc d'écrire des contrôles de serveur personnalisés?


Oui, mais le problème réside dans le fait que les contrôles utilisateur utilisent actuellement des contrôles ASP.NET. Je préférerais ne pas avoir à écrire le code HTML pour imiter une liste de liste que nous avons dans un contrôle de l'utilisateur, par exemple.


Bien sûr que vous utilisez des contrôles ASP.NET. C'est parfaitement bien. Vous pouvez imiter la liste de liste en interne en l'utilisant directement ou en utilisant un contrôle de répéteur. Créer des contrôles de serveur ne signifie pas nécessairement que vous écrivez vous-même l'ensemble du rendu HML. Lorsque je combine d'autres contrôles ASP.NE ensemble, je remplace rarement le rendu (...) moi-même.


J'ai actuellement juste l'accenture sur mon iPhone. Je vais donner un exemple aujourd'hui la soirée.



9
votes

0 commentaires

2
votes

J'ai trouvé le tutoriel Création et utilisation des bibliothèques de contrôle des utilisateurs , mais il semble que Comme un peu d'un piratage car il s'appuie sur un événement de ligne de commande post-build pour copier les contrôles utilisateur d'un projet à un autre.


0 commentaires

2
votes

Un peu en retard, j'admets.

Pour créer une bibliothèque de contrôles utilisateur réutilisable; Créez un nouveau projet d'application Web, supprimez tout l'échafaudage, ajoutez un (s) contrôle (s) d'utilisateur). Créez un projet de déploiement Web à partir du projet d'application Web, dans les propriétés WDP, choisissez l'option de fusion de toutes les sorties de contrôle et attribuez un nom pour la bibliothèque et assurez-vous que la mise à jour de ce site Web n'est pas vérifiée.

Construisez le WDP et utilisez le réflecteur pour examiner la bibliothèque générée; Vous verrez qu'il contient un espace de noms ASP et les types que vous avez soigneusement conçus ont été renommés I.E. UserControl_ASCXX. Dans votre site Web cible, ajoutez des références aux deux DLL de sortie de votre WDP, ajoutez un nœud System.Web / pages / contrôles à Web.config à l'aide de l'espace de noms ASP et du nom de l'assemblage que vous avez défini dans le WDP. < / p>

Maintenant, lorsque vous utilisez la bibliothèque dans une page (par exemple), vous devez utiliser l'alias que vous avez défini dans web.config et le typename comme indiqué dans le réflecteur, c'est-à-dire xxx

J'ai trouvé utile d'ajouter une dépendance pour le ou les sites Web du WDP afin que le WDP soit construit avant les sites Web; Maintenant, je peux modifier les contrôles de l'utilisateur dans le WAP sans avoir à vous rappeler de construire le WAP avant de construire le ou les sites Web.

J'espère que quelqu'un le trouve utile car cela coûte quelques cheveux gris à faire Cette étape et ont toujours que vs fait sa chose "automatiquement".


0 commentaires