Bonjour,
Premièrement je m'excuse si ce n'est pas le bon forum, j'ai un peu hésité où poster, mais comme au final c'est lié à la techno, j'ai décidé de poster ici. Modos, si vous pensez que ce sujet est mieux ailleurs, vous pouvez le déplacer.
Je développe pour ma boîte une appli web stand-alone (pas de base de données) en ASP.NET MVC 5 (+ Knockoutjs en front). Cette appli a vocation à devenir un produit que l'on versionne et que l'on vend à nos clients, qui l'installent sur leur serveur et peuvent la personnaliser ainsi:
- CSS
- Images
- App Settings
- Libellés et textes
Je n'ai pas de problème à coder l'appli en elle-même mais je touche clairement mes limites en conception dans ce contexte... Voici ma question : comment arranger mon projet de telle manière qu'il soit facile de passer à une nouvelle version, sans perdre sa personnalisation ? La mise à jour sera normalement faite par me boîte, mais c'est un plus si c'est assez simple pour donner un manuel au client.
Voici ce à quoi j'ai pensé :
- CSS : Le CSS custom du client se trouve dans un fichier à part, qui est référencé dans les pages mais n'est pas inclus dans la release. Il ne sera donc pas écrasé. Si la nouvelle version n'est pas 100% rétrocompatible, quelques ajustements seront nécessaires, cela n'est pas un problème.
- Images : Pour l'instant ma solution est que le client écrasera le nouveau dossier contenant les images par le sien. Comme cela les anciennes images seront inclues et le client aura quand même les nouvelles. Une meilleure solution peut être de mettre le chemin vers les images dans les appsettings.
- App Settings : Un simple script peut créer les paramètres qui ne sont pas déjà présents. Ils sont ensuite éditables dans une interface d'administration.
- Libellés et textes: Gros point d'interrogation. Pour l'instant ils sont dans des resx. Je ne suis pas super satisfait car c'est compliqué pour le client d'aller les changer directement dans les fichiers, et merger manuellement les resx... merci bien. Y a-t-il une solution intéressante ? Ou bien dois-je mettre mes libellés ailleurs ? (une petite db sql lite par example)
Peut-être est-ce que je prends je problème par le mauvais bout et que je devrais penser à une solution plus unifiée ? Bref, j'aimerais un peu de lumière sur ce processus. C'est un vaste sujet donc si vous me redirigez vers un bouquin ou de la documentation je n'y vois pas de problème.
Je vous remercie bien.
Partager