Vă mulțumim pentru susținere

Embedded Database pentru .net care poate rula de pe o rețea

Am fost (și încă am) căutând o bază de date încorporată care să fie utilizată într-o aplicație .net (c #). Instrumentul de avertizare: Aplicația (sau cel puțin baza de date) este stocată pe o unitate de rețea, dar este utilizată numai de 1 utilizator în același timp.

Acum, prima mea idee a fost ediția SQL Server Compact . Aceasta este cu adevărat integrat, dar nu poate rula de pe o rețea.

Firebird seems to have the same issue, but the .net Integration seems to be not really first-class and is largely undocumented.

Blackfish SQL looks interesting, but there is no trial of the .net Version. Pricing is also OK.

Orice alte sugestii despre ceva care funcționează bine cu .net și rulează dintr-o rețea fără a fi necesară instalarea efectivă a unui software de tip server?

0
adăugat editat
Interesant că această postare nu este considerată a fi bazată pe opinie în contrast cu postarea mea stackoverflow.com/questions/20229964/… . Oricum, cred că toate bazele de date integrate propuse funcționează pentru un singur utilizator pe server (inclusiv SQL CE), unele dintre ele permit citiri concurent (cum ar fi SQLite), dar numai unul (cel
adăugat autor Prokurors

9 răspunsuri

Check out VistaDB . Ei au un produs foarte bun, versiunea de server (3.4) este în Beta și este foarte aproape de lansare.

0
adăugat

Există, de asemenea, Valentina . Am cam în acest produs când lucram la un proiect Real Basic. Versiunea RB este foarte bună.

0
adăugat

Se pare că ADO / Access este perfect pentru nevoile dvs. Se coace în stackul MS, bine condimentat și multi-utilizator.

Puteți să creați în mod programatic o DB cum ar fi:

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

Apoi puteți folosi metode standard ADO.NET pentru a interacționa cu baza de date.

0
adăugat

Puteți utiliza firebird încorporat, este doar o DLL pe care va trebui să livreze cu tine app.

Despre lucrurile nedocumentate, asta nu este cu adevarat adevarat, driverul Firebird .NET implementeaza interfetele ADO, asa ca daca stii ADO poti lucra cu Firebird, practic in loc de SQLConnection vei folosi FBConnection si asa mai departe, dar sfatul meu este sa scriu accesul la date și folosiți doar interfețe pe codul dvs., ceva de genul:

using FirebirdSql.Data.FirebirdClient;

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

Acest exemplu este foarte simplu, dar nu veți avea nevoie de mult mai mult decât atât.

Folosim firebird pentru aplicația noastră fără probleme, ar trebui cel puțin să încercați.

0
adăugat

Sunt nedumerit.

Cereți o bază de date încorporată - unde baza de date este stocată pe server. care se traduce la stocarea fișierului de date pe o partajare de rețea. Apoi, spuneți că SQL Compact Edition nu va funcționa ... cu excepția faptului că, dacă se uită la acest document:

Word Document:
Choosing Between SQL Server 2005 Compact Edition and SQL Server 2005 Express Edition

Pe pagina 8 aveți o bifă mare verde lângă "Stocarea fișierelor de date pe o partajare de rețea".

Deci, mi se pare că primul tău gând a fost cel potrivit.

0
adăugat
Acest lucru este amuzant, deoarece SQL Server îmi spune în mod special că nu va: img512.imageshack.us/ img512 / 6082 / sqlceerror.jpg - poate că este o neînțelegere, deoarece crearea nu pare posibilă, în timp ce accesarea ar putea funcționa. Cu toate acestea, pentru scopurile mele, crearea unei baze de date privind lansarea aplicațiilor a fost critică.
adăugat autor Michael Stum
Realitatea atestă documentația în aproape toate cazurile - se pune apoi întrebarea de ce documentele spun lucrurile "greșite" (sau cel puțin cum apare discrepanța). [FX: Răsfoire, Răsfoire] Informațiile sunt destul de subțiri pe teren în MSDN
adăugat autor Murph
Jason, fără să vrea să fie nepoliticos, aproximativ jumătate din acest comentariu este greșit, pentru că nu vorbim despre o versiune de server multi-utilizator în orice moment, doar versiunea compactă care este în esență un .DLL (spre deosebire de Express sau de celălalt "server "versiuni).
adăugat autor Murph
Puteți CAN să stocați baza de date în SQL Server într-un magazin de rețea, dar numai 1 SQL Server poate accesa această bază de date. Apoi, rulați în mod atașat, care este mai lent decât murdăria. Doar pentru că poți, nu înseamnă că ar trebui. Se întrebă despre fiecare aplicație care accesează direct baza de date, nu printr-o aplicație de server.
adăugat autor Jason Short

Ai considerat un OODB? Din diferitele alternative de surse deschise, vă recomandăm să db4o (îmi pare rău pentru promoția de sine :)), care poate rula fie încorporat sau în modul client / server.

Cel mai bun

Adriano

0
adăugat

SQLite came to my mind while reading your question, and I'm quite sure that it's possible to access it from a network drive if you keep yourself to the constraint of 1 user at a time.

SQLite pe .NET - Obțineți up și running în 3 minute

0
adăugat
Am testat-o ​​în ultimele săptămâni, iar SQLite este într-adevăr un produs minunat. Acesta nu este un RDBMS plin de aromă, desigur, dar are toate caracteristicile necesare pentru a face treaba.
adăugat autor Michael Stum
@ChrisHanson Permite accesul în citire pentru mai mulți utilizatori în același timp
adăugat autor Prokurors
@Sven: SQLite are de fapt o blocare destul de complexă a fișierelor și o bază de date SQLite poate fi accesată cu siguranță de mai mulți utilizatori la un moment dat. Pe sistemele de fișiere care o suportă, SQLite va folosi chiar și octeți-range în loc de blocare a întregii fișiere pentru a îmbunătăți performanța utilizărilor simultane multiple ale aceleiași baze de date. Nu este acces; este destul de robust.
adăugat autor Chris Hanson

Aș recomanda Advantage Database Server (www.advantagedatabase.com). Este o DB matură încorporată, cu un suport mare și accesibilă din multe limbi de dezvoltare în plus față de .NET. Versiunea "locală" este gratuită, rulează în aplicația dvs. sub forma unui DLL, nu necesită instalare pe partea de server / rețea și suportă toate caracteristicile DB importante. Puteți memora DB și / sau fișierele de aplicații în rețea; nu-i pasă unde sunt datele.

Disclaimer: I am an engineer in the ADS R&D group. I promise, it rocks :)

0
adăugat

Un pic mai târziu la post aici .. Și VistaDB este deja menționat, dar am vrut să subliniez că VistaDB este 100% gestionat (deoarece postarea dvs. a fost marcată .net). Acesta poate rula de la o unitate de rețea partajată și este instalată la 1MB xcopy.

Din moment ce menționați SQL CE, susținem, de asemenea, sintaxa T-SQL și tipurile de date (de fapt, mai mult decât SQL CE) și au vizualizări de actualizare, TSQL Procs și alte lucruri care lipsesc în SQL CE.

0
adăugat
Un lucru mai bun despre Vista (în comparație cu alții) este faptul că suportă concurrent scrie pentru fișierul bazei de date care se află într-o locație de rețea - pentru mine a fost o caracteristică de luare a deciziilor
adăugat autor Prokurors