Question

Je fais ce petit programme utilitaire (Windows Forms) et il aurait besoin d'économiser un peu de données sur le disque. En ce qui concerne DB, il serait environ une table, pas plus d'environ quelques milliers de lignes, chaque ligne étant inférieure à 1 Ko en taille.

Qu'est-ce que utiliseriez-vous?

Ajouté: Vous avez oublié de dire - ce serait vraiment bien si l'ensemble du programme serait un seul fichier .EXE (plus le fichier de données, bien sûr). Ainsi, je préfère quelque chose qui est construit en .NET.

Était-ce utile?

Autres conseils

Ou Theres ESENT, construit dans la base de données qui existe dans chaque copie de Windows. Lisez à ce sujet ici: http : //ayende.com/Blog/archive/2008/12/23/hidden-windows-gems-extensible-storage-engine.aspx

Si vous vous sentez courageux, je l'ai mis en place un document simple db PieDb (comme dans ' facile).

Vous pouvez utiliser SQL Server Compact Edition (fourni avec Visual Studio), ou SQLite.

Il y a beaucoup d'autres, mais ceux-ci sont les plus communs.

Je suis un grand fan de SQLite, parce qu'il est petit, simple et rapide. Il y a un super fournisseur ADO.NET pour elle, qui prend en charge Entity Framework.

Si vous parlez d'une seule table, je ne peux pas tout à fait pourquoi vous sentez que vous devez utiliser une base de données relationnelle pour atteindre vos objectifs. Qu'en est-il un seul fichier?

Bien entendu, selon la raison pour laquelle vous avez besoin de stocker des informations, et la façon dont les données sont liées, il peut y avoir une raison pour que vous avez besoin d'un db. Mais vous devriez considérer si un DB est en fait ce que vous avez besoin dans ce cas.

Une base de données relationnelle ne doit pas être le standard de facto pour stocker des données. Il y a beaucoup de nombreuses alternatives que vous devriez considérer avant de choisir le SGBDR.

Voir le poste de mcintyre321 par exemple.

Si vous définissez sur l'utilisation d'un DB intégré, puis SQL Server Compact Edition est probablement votre meilleur pari suivie SQLite comme deuxième.

Si vous parlez d'une table, cela ressemble à un DB embarqué pourrait être surpuissant et vous pourriez être mieux servis par un simple fichier texte.

Vous pouvez créer un tableau de votre classe, marquez-le [Serializable] et il suffit d'utiliser les sérialisation intégrés / méthodes délinéariser pour la persistance.

Je seconde le vote pour SQLite. SQL Server C'est beaucoup trop lourd à des fins intégrées à moins que vous avez besoin d'une synchronisation facile avec une base de données centrale -. Il est fantastique

le port .NET de SQLite est à http://code.google.com/ p / csharp-sqlite / . Il est .NET pur, vous pouvez donc ILMerge en un seul .exe

Pour quelque chose de ce petit et simple, je serais probablement aller avec XML et ne pas utiliser une base de données. Si vous abstraire le code CRUD vous pouvez modifier ultérieurement la partie de niveau de données du code afin qu'il utilise une base de données lorsque les données croît en taille et de la complexité.

Une fois que j'ai étudié le même problème. De tous les candidats possibles deux avait l'air bien. Ce sont SQLite et Firebird (firebirdsql.org). Mais le firebird avait plus de fonctionnalités que SQLite.

UPD: Voici une info intéressante sur firebird + dotnet http://www.firebirdsql.org/dotnetfirebird/embedded/index.html

Berkeley DB est également un bon choix pour la base de données intégrée. Et il y a un qui fournit une interface .NET 2.0 pour elle.

Si elle ne doit pas être une base de données SQL compatible, je regarderais aussi db4o. Db4o est une base de données objet pour Java et .NET. La version .NET est entièrement écrit en C #.

I seconde SQL Lite ou un simple fichier XML avec l'écrivain dégonfler pour minimiser la taille. Rapide et pas si sale.

Essayez celui-ci: https://github.com/mdsoftware/mData . Non 3ème parties, toutes les sources incluses, quelques trucs sympa comme Lisp compilateur de traitement et d'expression des données également inclus. Je l'ai essayé de faire quelque chose de vraiment simple mais fonctionnel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top