Nous avons quelques ASP.NET (ce n'est pas assez clair pour l'appeler un composant), que nous aimerions nettoyer, et entourer certaines limites, de sorte que nous pouvons le réutiliser. Il y a vraiment quatre parties à cela, du balisage, du code-behind C#, du javascript dans le navigateur, et une méthode webservice appelée par le javascript. Une façon de nettoyer cela serait de déplacer le balisage dans un contrôle utilisateur, le C# dans les méthodes code-behind du contrôle utilisateur, le javascript dans un fichier qui serait inclus dans la page par le code- derrière la méthode, et le webservice dans une méthode statique dans le code-behind. (En supposant, bien sûr, que je peux marquer une méthode statique dans un contrôle utilisateur comme un WebMethod et le faire fonctionner, que je n'ai pas encore essayé.)Webservices ASP.NET dans les assemblys partagés (DLL)
Dans tous les cas, ce qui précède ne fonctionnera pas pour nous , parce que nous voulons créer un composant que nous pouvons inclure dans plusieurs projets. Et cela signifie que nous voulons un composant que nous pouvons inclure dans une DLL, et cela signifie un contrôle du serveur, au lieu d'un contrôle utilisateur.
Un contrôle de serveur, bien sûr, signifie pas de balisage. Le code HTML doit être injecté dans la page par le C#. Ce n'est pas un problème, nous l'avons déjà fait. Y compris le javascript comme une ressource, et avoir le contrôle du serveur l'insérer dans la page ne semble pas trop difficile. Je ne l'ai pas encore fait, mais je vois beaucoup d'exemples sur la façon de le faire, alors je suis sûr que je serai capable de le comprendre.
Mais la partie de ceci je ne suis pas sûr que je comprends, pourtant, est le webservice. Ce contrôle inclura javascript qui rendra les appels à un webservice. Le service Web communiquera uniquement avec le contrôle du serveur, mais il devra parler à la même base de données que l'application Web qui inclut le contrôle serveur. Autrement dit, il ne s'agit pas d'une situation où nous pouvons configurer un service Web unique et autonome auquel toutes les instances du serveur de contrôle vont s'adresser. Nous avons besoin d'un service Web distinct inclus dans chaque application Web qui inclut le contrôle serveur. Le fait est que, puisque le contrôle du serveur est inclus dans une DLL, nous aimerions que le code de ce service Web soit également inclus dans la DLL. À l'heure actuelle, tout ce que je peux penser est de définir une classe dans la DLL qui fait tout le travail dont le webservice a besoin, qui peut ensuite être appelée par un service web que nous définissons dans l'application Web. Mais je ne suis pas vraiment content de ça. Dans mon monde idéal, inclure simplement le contrôle du serveur dans l'application Web inclurait et configurerait automatiquement le service Web auquel il devrait s'adresser. Mais je ne sais pas comment faire ça, et je ne suis pas sûr que ce soit possible.
Donc, ce que je cherche sont des possibilités quant à la façon dont je pourrais arriver à cela, dans ASP.NET 3.5.
Des idées?
J'aime J'aime Aucune des réponses à cette question n'a des votes. –