Vous pouvez certainement utiliser XML pour vos besoins de stockage, mais cela va coûter cher, pas que l'implémentation soit difficile.
Comme vous n'avez pas mentionné votre plate-forme, je suppose que vous travaillez sur .NET! en utilisant XElement
, l'utilisation de XML n'est pas difficile à compliquer que juste des requêtes de base de données. D'autre part, la chose que vous voulez atteindre est de frapper beaucoup de temps sur votre performance. Vos fichiers XML seront réécrits chaque fois que vous voulez enregistrer quelque chose et même aller à la récupération, si vous n'envisagez pas de charger votre fichier XML entier en mémoire. Si vous le faites, vous obtiendrez bientôt "Mémoire insuffisante" exception une fois que vos fichiers XML commencent à grossir.
Le coût de mise en œuvre à l'aide de XML est relativement élevé car vous devez passer par le processus manuel de récupération des données de votre fichier XML, où une simple requête de base de données fera de même. Si vous envisagez un autre choix que XML, je vous recommande d'aller avec SQLite
, et vous pouvez également lire when to use SQLite. Vous n'avez besoin d'aucune installation de base de données et c'est portable. C'est juste un fichier binaire stocké sur votre serveur et SQLite a API pour presque chaque plate-forme et il a une large gamme de wrappers. C'est plus comme exécuter des requêtes de base de données sur votre fichier de données.
SQLite est juste une autre base de données relationnelle comme SQL Server, MySQL, etc et vous pouvez effectuer vos toutes sortes de requêtes SQL que vous connaissez, et vous pouvez également utiliser avec Entity Framework
, NHibernate
ou tout autre ORMs
.
La performance ne va pas être comme SQL Server/MySQL mais vous pouvez server des milliers de visiteurs de votre site avec ce SQLite.
Il est peu probable que ce soit un problème pour vous, mais nous avons récemment développé une solution comme celle-ci dans mon travail et rencontré un gros problème car nous avons oublié que notre serveur de production était équilibré sur six machines. Un utilisateur mettrait à jour le XML sur un serveur, puis rechargerait, puis serait confus parce que leur XML était maintenant servi à partir d'une machine différente et que leurs modifications ne s'y trouvaient pas. (Enfin, nous l'avons résolu en sauvegardant le fichier XML sur le serveur de test, mais nous étions tous d'accord sur le fait qu'une base de données aurait été la solution si nous avions eu le choix.) – Blazemonger