Commençons par un peu de contexte. Qu'est-ce que j'ai dans mes mains?Organiser CSS et Javascript dans un site multiprojet modèle unique
- applications Web multiples (Tous .NET: WebForms et MVC)
- modèle interface utilisateur commune
- Chaque application possède également ses propres éléments d'interface utilisateur.
- Plusieurs fichiers pour css/javascript. Certains communs à toutes les applications, certains spécifiques à l'application.
- Dixièmes de fichiers par page = plusieurs demandes par page = lent.
Question: Avez-vous des idées ou des commentaires sur mes idées pour atteindre les objectifs suivants?
- Réduit le nombre de requêtes au minimum.
- Réduire css et javascript.
- Utilisez un CDN pour les distribuer.
- Avoir une vie et être capable de gérer la zone de l'interface utilisateur.
Idea 1
centraliser l'interface utilisateur dans un projet. Chaque widget UI sera là avec un échantillon (qui peut être testé plus tard).
Je peux "construire" l'ui: réduire, grouper, publier à un endroit global connu. Les applications peuvent créer un lien vers ces fichiers globaux et utiliser les éléments de l'interface utilisateur.
Cela va forcer un peu de discipline lors de l'utilisation de l'interface utilisateur. Ce ne sera pas un "hack CSS et vous avez terminé". Et après 3 mois tout est plein de hacks et vous ne savez pas par où commencer pour réparer quelque chose.
Le mauvais: vous travaillez sur une application mais la partie de l'interface utilisateur vous devez d'abord travailler dans un autre projet. Allez-y, créez vos widgets, puis utilisez-les dans votre application.
Idée 2
Oublier l'idée du CDN et d'utiliser certains minifier/packer .NET dynamique. Je vais partager les parties de l'interface utilisateur de base et chaque application générera dynamiquement les paquets dont ils ont besoin dans l'exécution. Le mauvais: Aucun CDN, générer dynamiquement quelque chose que vous savez est statique, pas de place centralisée pour l'interface utilisateur (vous avez une base commune, mais rien d'autre).
Maintenant, je fais cela: svn external sur l'interface utilisateur sur chaque projet. Ensuite, j'inclus tous les fichiers dont j'ai besoin dans chaque page. Pour le ** CDN ** je pensais à la construction de l'interface utilisateur publiez-le dans un dossier nommé après le numéro de validation de la version. De cette façon, les applications peuvent mettre à jour leurs widgets de manière asynchrone et, au besoin, pointer vers la bonne version. – graffic
Le numéro de version contourne également les problèmes de mise en cache que vous rencontrerez avec les utilisateurs existants. C'est à dire. lorsqu'une feuille de style, un fichier js, etc. est mis en cache localement par un navigateur. – ArtificialGold