Question

J'étais (et je suis toujours) à la recherche d'une base de données intégrée à utiliser dans une application .net (c#).La mise en garde :L'application (ou au moins la base de données) est stockée sur un lecteur réseau, mais utilisée uniquement par 1 utilisateur à la fois.

Maintenant, ma première idée était Édition compacte de SQL Server.C'est vraiment bien intégré, mais cela ne peut pas fonctionner à partir d'un réseau.

Oiseau de feu semble avoir le même problème, mais l'intégration .net ne semble pas vraiment de première classe et est largement non documentée.

Poisson noir SQL Cela semble intéressant, mais il n'y a pas d'essai de la version .net.Le prix est également correct.

Toute autre suggestion de quelque chose qui fonctionne bien avec .net et fonctionne sur un réseau sans avoir besoin d'installer un logiciel serveur ?

Était-ce utile?

La solution

SQLite m'est venu à l'esprit en lisant votre question, et je suis sûr qu'il est possible d'y accéder depuis un lecteur réseau si vous vous en tenez à la contrainte de 1 utilisateur à la fois.

SQLite sur .NET – Soyez opérationnel en 3 minutes

Autres conseils

Je recommanderais Advantage Database Server (www.advantagedatabase.com).Il s'agit d'une base de données intégrée mature avec un excellent support et accessible à partir de nombreux langages de développement en plus de .NET.La version « locale » est gratuite, s'exécute au sein de votre application sous la forme d'une DLL, ne nécessite aucune installation sur le partage serveur/réseau et prend en charge toutes les principales fonctionnalités de la base de données.Vous pouvez stocker la base de données et/ou les fichiers d'application sur le réseau ;peu importe où se trouvent les données.

Clause de non-responsabilité:Je suis ingénieur dans le groupe R&D ADS.Promis, ça déchire :)

Il semble qu'ADO/Access soit parfait pour vos besoins.Il est intégré à la pile MS, bien assaisonné et multi-utilisateurs.

Vous pouvez créer par programme une base de données comme ceci :

Dim catalog as New ADOX.Catalog
Catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\server\path\to\db.mdb")

Vous pouvez ensuite utiliser les méthodes ADO.NET standard pour interagir avec la base de données.

Vous pouvez utiliser le Firebird intégré, c'est juste une DLL que vous devrez expédier avec votre application.

À propos des choses non documentées, ce n'est pas vraiment vrai, le pilote Firebird .NET implémente les interfaces ADO, donc si vous connaissez ADO, vous pouvez travailler avec Firebird, en gros au lieu de SQLConnection, vous utiliserez FBConnection et ainsi de suite, mais mon conseil est d'écrire un couche d'accès aux données et utilisez uniquement des interfaces sur votre code, quelque chose comme ceci :

using FirebirdSql.Data.FirebirdClient;

public static IDbConnection MyConnection()
{
    FbConnection cn = new FbConnection("...");
    return cn;
}

Cet exemple est très simple, mais vous n’aurez pas besoin de beaucoup plus.

Nous utilisons Firebird pour toutes nos applications sans aucun problème, vous devriez au moins l'essayer.

Vérifier VistaDB.Ils ont un très bon produit, la version serveur (3.4) est en version bêta et est très proche de sa sortie.

Un peu en retard pour le post ici..Et VistaDB est déjà mentionné, mais je tenais à souligner que VistaDB est géré à 100% (puisque votre message a été étiqueté .net).Il peut s'exécuter à partir d'un lecteur réseau partagé et est déployé par xcopy de 1 Mo.

Puisque vous mentionnez SQL CE, nous prenons également en charge la syntaxe et les types de données T-SQL (en fait plus que SQL CE) et disposons de vues actualisables, de procédures TSQL et d'autres éléments manquants dans SQL CE.

Pourquoi ne pas utiliser Édition SQL Server 2005 Express?

Cela dépend vraiment de ce que vous entendez par "intégré" - mais vous pouvez redistribuer SQLServer2005E avec vos applications et l'utilisateur n'a jamais besoin de savoir qu'il est là.

Intégration de SQL Server Express dans les applications

Intégration de SQL Server Express dans des applications personnalisées

Je suis perplexe.

Vous demandez une base de données intégrée – où la base de données elle-même est stockée sur le serveur.cela se traduit par le stockage du fichier de données sur un partage réseau.Vous dites alors que SQL Compact Edition ne fonctionnera pas...sauf que si l'on regarde ce document :

Document Word:
Choisir entre SQL Server 2005 Compact Edition et SQL Server 2005 Express Edition

À la page 8, vous avez une belle grosse coche verte à côté de "Stockage de fichiers de données sur un partage réseau".

Il me semble donc que votre première pensée était la bonne.

Il y a aussi Valentina.Je suis tombé sur ce produit alors que je travaillais sur un projet Real Basic.La version RB est très bonne.

Avez-vous pensé à un ODB ?Parmi les différentes alternatives open sources que je recommande db4o (désolé pour l'auto-promotion :)) qui peut fonctionner soit en mode intégré, soit en mode client/serveur.

Meilleur

Adrien

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