Question

J'ai besoin d'un moteur de base de données léger pour une application de bureau. L'application n'est pas centrée sur les données, même si elle nécessite des données persistantes. Lequel utiliseriez-vous MS SQL Server Express Edition ou SQLite?

MODIFIER

SQL Server Compact edition est-il gratuit? Si tel est le cas, qu’en est-il de SQLite et de l’édition SQL Server Compact pour développer ce type d’application?

Était-ce utile?

La solution

Certainement PAS SQL Server Express. C'est un moteur de classe serveur. Vous voulez un moteur en cours de traitement. À cet égard, SQLite va bien. Il en va de même pour Sql Server Compact Edition. Les deux sont gratuits et devraient suffire à vos besoins.

Autres conseils

Si vous travaillez avec C # et Visual Studio, cliquez simplement sur votre projet et sélectionnez "Ajouter un élément ...". et dans la boîte de dialogue, sélectionnez la "base de données locale", cela créera une base de données SQL CE (Compact Edition). Il possède la plupart des fonctionnalités de SQL Express / Server en ce qui concerne les tables, les types de données, les vues, mais n'autorise pas les processus stockés. Cela fonctionne aussi avec Linq-to-SQL, donc c'est un jeu d'enfant à intégrer.

Allez avec SQL Server Compact - vous utiliserez LINQ de cette façon, ce qui en vaut la peine.

Bien que SQLite soit une option, vous aurez besoin d’une couche ORM et les gains de performances seront minimes / inexistants par rapport à SQL Server.

Firebird est une base de données bien connue et prend en charge le dernier cadre Microsoft

SQLite, surtout s'il s'agit d'un utilisateur unique. Un fichier de données et une DLL.

S'il s'agit d'un système à utilisateur unique, vous souhaitez consulter l'édition compacte de MS SQL Server et non Express (voir ici: http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx )

Compact Edition est une base de données incorporable similaire à SQLite.

Malheureusement, je ne peux faire aucune recommandation de cette façon.

Qu'en est-il de MS SQL Server Compact ?

Un peu d'amour pour l'un des acteurs du monde de la base de données intégrée .NET - VistaDb . La licence est un peu plus restrictive que Sql Server Compact (gratuite pour les seuls développeurs), mais il s’agit d’une base de données gérée à 100% avec un déploiement xcopy et d’une intégration d’outil VS.

Sachez que si vous utilisez SQL CE avec EF, vous devrez générer votre propre clé d'identification, car SQL CE ne prend pas en charge les requêtes multiples.

i.e: insérer - > sélectionnez clé pour l'entité - > pas bon

générer et clé id (GUID ou autre chose) l'ajouter à votre entité, puis insérez - > bien

Defo SQL lite, bien qu'il comporte certaines restrictions / fonctionnalités à connaître

si votre besoin est centré sur les données, ce dont vous avez vraiment besoin est un fichier, si vous avez besoin d'une transaction (ACID), alors votre besoin est (rdbms) base de données.

Sinon, vous aurez des problèmes lors de la mise à l'échelle.

S'il ne s'agit pas d'une grande quantité de données et que vous n'avez pas besoin d'exécuter des requêtes complexes (même si LINQ le peut), pourquoi ne pas utiliser un jeu de données XML? De cette façon, elle est indépendante de la plate-forme (elle peut fonctionner sous Linux avec Mono) et ne nécessite pas l’installation d’un logiciel de capture de ressources supplémentaire.

J'utilise beaucoup les jeux de données XML pour les applications nécessitant un stockage permanent de petites quantités d'informations. S'il ne s'agit que de quelques variables, vous pouvez également utiliser un fichier de paramètres. Ce fichier sera stocké par application ou par utilisateur, selon vos choix.

Pensez à la surcharge pour vos utilisateurs finaux ... SQL Server Express nécessite toujours des ressources, prend du temps à démarrer au redémarrage, etc. Pour une petite quantité de données persistantes mono-utilisateur, je choisirais SQLite. Sauf si vous faites une liaison sérieuse et ainsi de suite, vous n'aurez pas besoin d'une ORM entre vous et elle.

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