Avec les thèmes d'ASP.net 2.0, on peut facilement changer l'apparence d'un site. Il suffit de changer le nom du thème à utiliser dans le fichier web.config. Mais c'est un changement statique, fait par l'administrateur du site.
Comment faire si l'on veut qu'un utilisateur puisse choisir lui-même un thème pour tout son site? Il existe la propriété Theme sur chaque Page, que l'on peut régler dynamiquement, mais le gros problème c'est que la propriété Theme n'est pas disponible sur la classe Master (pour les master pages).
Nous sommes donc condamnés à écrire sur chaque page le code affectant dynamiquement le thème. C'est lourd. L'autre possibilité est d'écrire ce code dans une classe de base (héritant de la classe Page), dont hériteraient toutes nos pages. C'est mieux, mais ça oblige à faire hériter toutes nos pages de cette classe de base. Or Visual Studio n'a pas d'option qui permettrait d'avoir cet héritage automatique.
On voit très bien ce problème dans cet article de Scott Guthrie. Espérons que la prochaine version d'ASP.net corrigera ce problème. Par exemple en ajoutant la propriété Theme à la classe Master (master pages).
Comment faire si l'on veut qu'un utilisateur puisse choisir lui-même un thème pour tout son site? Il existe la propriété Theme sur chaque Page, que l'on peut régler dynamiquement, mais le gros problème c'est que la propriété Theme n'est pas disponible sur la classe Master (pour les master pages).
Nous sommes donc condamnés à écrire sur chaque page le code affectant dynamiquement le thème. C'est lourd. L'autre possibilité est d'écrire ce code dans une classe de base (héritant de la classe Page), dont hériteraient toutes nos pages. C'est mieux, mais ça oblige à faire hériter toutes nos pages de cette classe de base. Or Visual Studio n'a pas d'option qui permettrait d'avoir cet héritage automatique.
On voit très bien ce problème dans cet article de Scott Guthrie. Espérons que la prochaine version d'ASP.net corrigera ce problème. Par exemple en ajoutant la propriété Theme à la classe Master (master pages).
Comments