2010-12-10 4 views
0

Je suis un développeur Web expert connaissant tous les frameworks Web célèbres.Building Server Contrôles tels que ComponentOne ou ComponentArt lirbaries

Je veux construire une collection de contrôles de serveur comme ComponentArt composants que vous pouvez utiliser dans vos projets.

En ComponentArt: Vous pouvez facilement enregistrer l'espace de noms ComponentArt dans votre projet et lier des données à ces contrôles sans code ou effort supplémentaire (comme la copie de fichiers supplémentaires à nos exemples de projets) et ils appuient ofcourse ajax. Pour ce faire, j'ai réalisé que je devais développer des UserControls avancés prenant en charge les rappels pour gérer ajax et qu'il n'y a pas beaucoup d'informations sur le partage de UserControls entre différents projets. En fait, voici le seul lien utile:

D'autre part, les contrôles de serveur n'ont pas d'interfaces de modèle ascx que je peux concevoir confortablement mes configurations de contrôle.

je besoin d'un moyen de développer des composants web que vous pouvez:

  1. Partager entre autres projets facilement (Il suffit d'ajouter dll au projet et commencer à utiliser)
  2. Soutien CallBack Pour ajax (par exemple ICallbackEventHandler)
  3. Peut avoir un modèle pour la conception HTML (comme UserControl qui ont le fichier modèle ascx ) de sorte que vous ne devez pas coder en dur HTML dans votre code comme:

    output.Write("<table>content</table>");

contrôles personnalisés Server ont les deux premiers, mais ils ne « t avoir des fichiers ascx de sorte que vous devez écrire tout votre code html dans votre fichier cs

S'il vous plaît conseiller ...

Répondre

1

au lieu de coder en dur votre HTML c ould vos contrôles de serveur le lisent à partir d'un fichier dont vous déterminez le nom et le chemin en fonction d'un paramètre de configuration ou du chemin du répertoire. Cela permettrait à vos contrôles serveur d'être plus dynamiques et ne nécessiteraient pas de recompilation lors de la modification du code HTML. Cela aiderait à remplir la condition n ° 3 à un coût léger pour n ° 1 (puisque votre contrôle serveur repose maintenant sur une ressource externe, il n'est pas aussi facilement distribuable). Vous pouvez toujours coder en dur le balisage par défaut et y revenir si le fichier n'est pas trouvé comme précaution supplémentaire contre les exceptions.

+0

Je pense que vous pouvez seulement charger les contrôles avec la fonction LoadControl que son paramètre est un répertoire virtuel avec indique seulement le répertoire local du projet et rien d'autre, maintenant pouvez-vous lire le modèle avec le contrôle du serveur? avez-vous un code d'exemple? – EBAG

+0

LoadControl est pour UserControls. Ce que je dis, c'est qu'au lieu d'avoir output.write (""); vous pouvez avoir output.write (strVariableOfHtmlReadFromTextFile); où le chemin de fichier a été déterminé à partir d'un appel à ConfigurationSettings.AppSettings. – N0Alias

+0

Je suppose que c'est ça: D maintenant je vois pourquoi les gens détestent asp.net tellement. – EBAG

1

Les exigences 1 et 3 s'excluent mutuellement. Le balisage doit venir de quelque part - soit une ressource compilée ou un fichier externe. Votre fichier externe peut être facultatif, mais vous devez avoir le balisage par défaut spécifié dans la ressource compilée. La ressource compilée ne doit pas nécessairement être votre fichier .cs. Vous pouvez le mettre dans un fichier de ressources, mais je ne suis pas sûr que ce sera plus facile de travailler avec. Vous pouvez également créer votre contrôle en tant que composite de contrôles serveur existants, mais cela rendra votre modélisation beaucoup plus difficile.

1

Vous devez commencer à vous éduquer avec des livres comme:

alt text

En utilisant ce livre, et beaucoup de temps, je créé une colonne à plusieurs TreeView. Peut être vu HERE.

Questions connexes