Küçük bir .NET uygulaması için iyi bir veritabanı seçimi nedir? [kapalı]


180

.NET C # ile küçük bir uygulama geliştiriyorum ve fazla kaynak kullanmayan küçük bir hafif veritabanı istiyorum .

Eğer bazı listesi memnun Could en iyi bilinen hafif veritabanı yazılımları .


Yanıtlar:


192

14/06/2016 Evet ... hala vekaletler: - /


17/03/2014 Bunun için hala oy alıyorum, bunun orijinal olarak cevaplandığı tarihe dikkat edin. Listelenen ana üç madde hala tamamen geçerli olmasına rağmen, liste bayat olmaya eğilimlidir. Listelenmeyen başka veritabanı teknolojileri de vardır.


Hemen tanınan ve ücretsiz birkaç seçeneğiniz var:

SQL Server Compact karşıdan yükleme, kodda başvurmanız gereken ADO.NET sağlayıcısı ile birlikte gelir. SQLite indirmesi olmayabilir, bu yüzden işte bir bağlantı:

http://sqlite.phxsoftware.com/

Her üçü de SQL'i kullanıyor, ancak birkaç sınırlama / tuhaflık olsa da. Management Studio, Compact ve LocalDB ile çalışırken SQLite ile SQLite Yöneticisi gibi başka bir UI aracına ihtiyacınız olacak:

http://sqliteadmin.orbmu2k.de/

Aşağıdakiler gibi NoSQL alternatifleri vardır:

Şahsen MS Access'i diğer ücretsiz seçenekler karşısında kullanmaktan kaçınırım. LocalDB, Compact veya SQLite ile yanlış gidemezsiniz. Hepsi küçük RAM'de nispeten hızlı çalışan güzel küçük veritabanları - sanırım bir Microsoft ürününü beğenmenin dini yönleri hakkında kişisel tercih :-)

İzole Depolama'yı kullanmak üzere oluşturulduğu için Windows Phone programlama için Sterling kullanıyorum. Sadece RavenDb ile ilgili makaleler gördüm, ancak bunun JSON tabanlı bir belge depolama çerçevesi olduğunu söyleyebilirim.

Durumu karıştırmamak için (SQLite, SQL Server Express LocalDB veya SQL Server Compact Edition ile gidin), ancak başka gömülü / yerel veritabanları da var, bazıları ilişkisel diğerleri ise nesne yönelimli:

Bunların hepsi ücretsiz değil. SQL / LINQ / pro-proc desteği hepsinden farklıdır. Bu liste sadece merak içindir.

Şimdi Karvonite de var , ancak kod galerisi bağlantısı bozuk. Tekrar yayınlandığında WP7 gelişimi için bunu inceleyeceğim.


11
+1 SQL Server CE için. Uygulamanızın yanında bir SQL sunucusu kurmak yerine, SQL Server CE dll'lerini kullanabilir ve uygulamanızın çalışma dizininde bir veritabanı dosyasına sahip olabilirsiniz. Basit.
Phil

2
RavenDB gerçekten bir belge veritabanıdır, ancak API basit ad ve değer çiftlerinden çok daha güçlüdür. Sorun, ücretsiz alternatifler arıyorsanız, ticari projeler için ücretsiz olmamasıdır.
JCallico

@JCallico Özetle biraz genelleştirdiğimi itiraf edeceğim, ancak herkesin müjde olarak söylediklerimi alacağından şüpheliyim.
Adam Houldsworth

@Brendan Uzun,% 100 standart diyebileceğiniz bir SQL uygulaması yok.
Pop Catalin

1
Küçük zor okunan mesajı bırakmak yerine cevabınızın üst kısmında bilginin modası geçmiş olduğunu açıklar. Cevabınızı güncellemek ve / veya yanıtınıza eklemek ve bugün mevcut seçeneklere bazı örnekler eklemek daha kolay olabilir.
James Shaw

58

SQLite tavsiye ederim . Çalıştığım yerde geliştirdiğimiz neredeyse tüm uygulamalar için kullanıyoruz.

Küçük ve kompakt. Uygulama dizininde bir DLL olmasını gerektirir, ancak Access veya SQL Server gibi başka bir yazılımın yüklü olması gerekmez. Ayrıca, danielkza tarafından belirtildiği gibi, "SQLite kamu malıdır, bu yüzden lisanslama konusunda hiç endişelenmenize gerek yoktur." Bu gerçekten büyük bir fark yaratabilir.

Sen kullanabilirsiniz System.Data.SQLite veya csharp-sqlite SQL veya OleDB aynı yöntemleri kullanarak bir C # uygulaması içinde erişmek için.

Veritabanını düzenlemek / yönetmek için bir uygulamaya da ihtiyacınız olacaktır. Bence en iyisi SQLite Studio . İşte birkaç tane daha:
SQLite Admin
SQLite 2009 Pro (sayfanın altında)
Güncelleme - 25.07.2011 - Daha fazla SQLite uygulaması (burada SO ile ilgili soru)

SQLite hakkında daha fazla bilgi:
Wikipedia üzerinde SQLite SQLite
kullanan şirketler

Özel İşlevler: Ek olarak, SQLite Temel İşlevleri'ne bakıyorsanız ve beğendiğiniz bir işlev görmüyorsanız, kendi özel işlevlerinizi oluşturabilirsiniz. Birkaç örnek:
SO
Anoter örneğinden


8
Bir ek: SQLite kamu malıdır, bu nedenle lisanslama konusunda endişelenmenize gerek yoktur.
danielkza

@MikeWebb Sqlite, herhangi bir ek hizmet veya başka bir şey yüklemenize gerek kalmadan ClickOnce uygulamalarıyla çalışır mı? Birden fazla eşzamanlı kullanıcı için bir ağ paylaşımındaysa çalışır mı?
Prokurors

1
@Prokurors - Çalıştırmak için gereken tüm SQLite, programınızda kullandığınız dile (C ++, C #, vb.) Karşılık gelen DLL dosyasıdır. Başka hizmet veya program gerekmez. Ayrıca, eşzamanlı kullanıcılarla bir ağ üzerinde çalışmalıdır. Çalıştığım bir sunucuda bir kopyamız var ve çalışıyor ve harika çalışıyor. Burada eşzamanlılığa daha fazla bakabilirsiniz: sqlite.org/lockingv3.html
Mike Webb

10

Gömülü Firebird iyi bir seçim olabilir

Gömülü sürüm sunucunun şaşırtıcı bir varyasyonudur. Sadece birkaç dosyada paketlenmiş tam özellikli bir Firebird sunucusudur. Sunucuyu kurmaya gerek olmadığı için dağıtımı çok kolaydır.

Bazı çok iyi nokta ağ sürücüleri var


8

Resmi microsoft çözümünü kullanmak istiyorsanız SQL Server Compact. Bu tür bir şeye ihtiyacınız varsa SQL sunucusuyla çoğaltmayı kullanabilme avantajına sahiptir.

SQLite çok basit küçük ve ücretsiz bir şey istiyorsanız. Bu, android'in dahili veritabanları için kullandığı şeydir, bu yüzden çok iyi desteklenir ve çok iyi .NET bağlantıları vardır.

SQLite'nin belirgin bir avantajı, çapraz platform olmasıdır. Uygulamanızı Mono.NET'e taşımak istiyorsanız, veritabanı uygulamasında herhangi bir değişiklik yapmazsınız.

Bu çözüm için MS Access'i sevmiyorum, ancak birçok kişi cevabına dahil etti. Tescilli format ve platform bağımlılığı nedeniyle sınırlıdır. Yine de avantajları var. MS Access'in bir kopyasına sahipseniz verileri kolayca işleyebilir, grafik olarak sorgular oluşturabilir ve makrolar oluşturabilirsiniz. MS Office'in geri kalanıyla kolayca entegre edebilirsiniz.

Tüm bu SQLite'den, platformdan bağımsız olarak büyüyen geliştirici bir ordu tarafından çok kompakt, iyi belgelenmiş ve desteklenmiş olması nedeniyle benim tavsiyem olacaktır.

DÜZENLE

Buradaki herkesin bahsetmeyi unuttuğu başka bir seçenek olduğunu fark ettim

İlişkisel tablolara ihtiyacınız olmadığı sürece ADO.NET üzerinden veri kümesi olarak okunan CSV dosyasını kullanabilirsiniz. (Herhangi bir şeyden daha çok lulz önerisi vardır, ancak bazı durumlarda uygun olabilir ve MS dağıtımı için ek kitaplıklar gerektirmez.


8

.NET 4.0.2 veya daha üst sürümü olan bir proje oluşturuyorsanız ve katıştırılmış veritabanı desteği istiyorsanız, SQL Server Express LocalDB'yi göz önünde bulundurun .

Daha küçük bir kurulum alanı ve daha düşük yönetim yükü (Express'in diğer sürümleriyle karşılaştırıldığında) içeren Express ailesine nispeten yeni bir eklentidir, ancak SQL Server'ın programlanabilirlik özelliklerini korur. Yani, Compact Edition'ın aksine, LocalDB, SQL ile iletişim kurmak için ayrı bir ADO.NET sağlayıcısının kurulmasını gerektirmez.

Daha fazla ayrıntı için aşağıdakilere bakın:

SQL Express v LocalDB v SQL Compact Edition (MSDN Blogları)
SQL LocalDB ve SQL Server CE (Yığın Taşması)


7

1
Veya özellikle .NET için RavenDB'ye
marc_s

Mongo, güzel olsa da, gömülü çalışmaz - OP'nin amaçları için biraz ağır olabilecek ayrı bir sunucu işlemi başlatmanız gerekir.
Mike Woodhouse

Mongodb sql'yi desteklemez. asker "Sql sorguları ile kayıtları kaydedip alabileceğim yer" istiyor. Dahası, mongodb hafızaya açtır. Bu kullanım için tavsiye etmiyorum.
Peter Long

4

Sen kullanabilirsiniz Sql Server Express Editionserbest olarak ve kadar aynı şekilde güçlü ve istediğiniz sürece gibi işlevsellik mirroringvs göz at bu .


8
Soru "Güçlü bir şeye ihtiyacım yok" diyor. SQL Server Express, SQL Server'ın hafif bir sürümü DEĞİLDİR. Bu veritabanı boyutu sınırlı bir sürümüdür ve hizmetler başlarken kullanıcıların PC başlatmak üzerinde büyük bir etkisi vardır. Bu soru aşırıya kaçıyor. SQL Server Compact daha uygundur.
Moog

2

Ben başarı ile db4o kullandım.
Dosya tabanlı, büyük topluluk, kullanımı basit.

http://www.db4o.com/

Lisans Ayrıntıları

Ücretsiz Genel Kamu Lisansı db4o varsayılan olarak GPL kapsamında lisanslanmıştır.

GPL lisansı, db4o'yu evde kullanmayı planlıyorsanız veya GV altında kendi türev çalışmalarınızı özgür yazılım olarak geliştirmeyi ve dağıtmayı planlıyorsanız idealdir.

Ticari Lisans db4o'yu ticari bir GPL olmayan ürüne gömmek istiyorsanız ticari bir lisans gerekir. Ticari lisans sahipleri premium hizmetlere ve desteğe erişebilir.


2012'de 6 ay boyunca db4o kullandım. Nesne modeli değiştikten sonra eski verilere erişememe sorunlarından kaçınmanın bir yolu olsaydı, bu cevabı iptal ederim. Bildiğim kadarıyla, nesnelerinizi değiştirirseniz eski verileri kaybetmekten kaçınmak zordur. Alt satır, her zaman verilerinizin yedek kopyasını farklı bir yerde, db4o olmayan bir biçimde (yine de oldukça genel bir kuraldır) tutmaktır.
Contango

2

Ücretsiz bir veritabanı olmasını gerektirmezseniz bahsedilmeyen bir alternatif VistaDB'dir. Tüm yönetilen kod, gömülü veritabanı için tonlarca özellik sağlar ve oldukça iyi performans sunar. Depolanan yordamlarınızın çoğu SQL Server Express'te değiştirilmeden çalışacağından SQL CE ve SQL Server Express arasında oldukça iyi bir köprü. Bu noktada müşteri hizmetlerinden de oldukça memnun kaldım. İş yerinde kullanıyorum. Başlamak için hizmet yok. Boş bir DB yaklaşık 1MB ve DLL de oldukça hafif. ADO.NET sağlayıcıları ve benzeri şeyler vardır. Ben çok hoşuma gitti.

VistaDB


Selam! Çok kullanıcılı senaryoda çalışıyor mu? Örneğin, bu VistaDB'yi bir ağ paylaşımında depolayabilir ve aynı anda birden çok kullanıcıdan erişebilir miyim?
Prokurors

1
Bu konuda bazı sınırlı yetenekler yapar. Açıkçası bu kutudaki yerel bir db motoru ile çalışan gerçek bir veritabanının yerini alamaz ancak birkaç işlem seçeneği sunar. Bu senaryoda, karşılaştığımız ücretsiz seçeneklerden herhangi birini daha iyi ele alacakmış gibi görünmeyi planlıyorduk ve müşterilerimiz muhtemelen sql sunucusu veya başka bir şey kurmak için uzmanlığa sahip olmayacaktı. Sqlce'den daha fazla özellik sunar, ancak tam sql sunucusu kadar değil. Bu gerçek bir yazılım parçası.
Rig

Bilgi için teşekkür ederim! Ve yeni beklenen sürüm 5 çok umut verici geliyor. VistaDB ile Entity Framework'ü denediniz mi? Belki de ilk önce EF Code ile VistaDB dosyası oluşturdunuz?
Prokurors

1
Yaptım ama bu yaklaşık 3-4 yıl önceydi. Bu noktada iyi çalıştığını gördüm ve bu benim ilk EF deneyimimdi. Şimdi daha iyi olduğunu düşünüyorum. O zamanlar eksik olan tek şey belgelerin belirli bölümlerinin seyrek olmasıydı, ancak şimdi sahipleri tarafından satın alındıktan sonra geçiş sırasındaydı.
Rig

1
Not: En azından kullandığım zaman, kullanım için bir demo lisansı vermeye isteklilerdi. Lisans ücretini ödemeden önce denemenizi şiddetle tavsiye ederim.
Rig

1

Ücretsiz SQL Server Compact Edition en iyi ücretsiz ve Hafif Boyutta ve İyi entegre


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.