2010-07-07 7 views
1

Nous avons une base de code "large" déjà développée en utilisant SQLite et NHibernate en utilisant .NET 2 pour nos clients. En utilisant SQLite, nous pouvons communiquer avec la base de données (même plusieurs clients) à travers un partage de fichiers Windows. La plupart du temps, cela est parfaitement suffisant pour ce que nous devons faire. Au cours des derniers mois, nous avons dû intégrer notre application à une application beaucoup plus ancienne, très spécialisée, et fonctionnant sur une version personnalisée de Windows - avec beaucoup de choses supprimées. Non .NET, et nous ne sommes pas "autorisés" à utiliser des partages de fichiers. Maintenant, nous avons un problème.Quelle base de données pour local et client/serveur?

Nous recherchons un système de base de données intégré qui peut être déposé pour SQLite, en utilisant NHibernate, qui pourrait également être accessible en utilisant un client/serveur (le code résultant doit être écrit en C).

En bref:

  • Utilisation normale pourrait être avec NHibernate et un fichier local (peut être exécuté en tant que service w/client/protocole serveur)
  • Utilisation supplémentaire serait avec une bibliothèque C dans un mode client/serveur

Dans de nombreux cas, nous allons vouloir faire les deux.

SQLite avec une bibliothèque wrapper était notre première réaction, en utilisant SQLitening par exemple. Firebird peut être une option supplémentaire. Certains ordinateurs sur lesquels nous installons peuvent déjà avoir SQL Server en cours d'exécution (je ne suis pas sûr de la prise en charge C pour SQL Server).

Autres (open source ou commercial)?

Répondre

1

Si vous voulez vraiment léger, j'ai trouvé que CodeBase (l'isam) était très efficace et facile à enlever et à relier.

Sinon, SQLite est ce que j'ai souvent utilisé pour les applications portables (linux intégré, WinCE, etc.) - de préférence aux options de base de données portable Microsoft le cas échéant.

+0

CodeBase ne semble pas soutenir NHibernate, mais il a certainement le C/C++ compatibilité très bien. – Anthony

0
+0

Cela semble assez solide pour remplacer la plupart de SQLite, mais ne semble pas prendre en charge une API C/C++. Ai-je manqué quelque chose? – Anthony

+0

H2 prend en charge ODBC (à l'aide d'un pilote PostgreSQL). Cependant, si vous ne pouvez pas utiliser .NET et Java, c'est assez compliqué. Vous pouvez utiliser Excelsior JET pour créer une version native, ou GCJ, mais les deux ne sont pas des approches très courantes. Mais je suppose que la question principale est de savoir comment convertir votre application de .NET en natif? –

Questions connexes