VB.Net – Mongodb Kullanımı

Merhaba, birçok iş ve bu işler için bir çok çalışma yapıyoruz, bunları birde yazmayı ve paylaşmayı düşününce işler uzadıkça uzuyor. Yine bir makale girişiminde daha bulundum işte, giriş kısmını da bıdı bıdı ile geçiştirdiğime göre direkt olarak konuya giriyorum.

NOSQL

Bu makaleyi okuyan kişiler, öyle tahmin ediyorum ki zaten bu kavramdan haberdardırlar, o yüzden nosql şudur gibi bir açıklamaya ihtiyaç yok sanırım. Hakkında okuduğum makalelerde keşfi kimine göre 2009 kimine göre, 1999-2000 yıllarından bahsediliyor. Yine kimine göre açılımı Not Only Sql kimine göre direk No sql. Fakat kendi adıma konuşmam gerekir ise ben ilk olarak 2011 ortalarında duydum, ve ilk uygulama denemesini de ancak bu yılın ilk günü yaptım. Genel olarak doküman tabanlı nosql ler şöyledir; ram üzerinde tutulur, acid prensiplerini desteklemez(Bildiğim üzere RavenDB bu konuda istisnadır.), ilişkisel değildir. Kullanacağınız alanları ve ona göre türünü doğru seçerseniz hayat kurtarır 🙂 Tüm nosql çeşitleri ve detayları burada görülmektedir.

MongoDB

10gen şirketinin geliştirdiği bir nosql platformudur, veriler bson formatlı dokümanlar ile tutulur. REST servislerini destekler. C++ ile geliştirilmiştir ve açık kaynaklıdır. Kurulumu kullanımı oldukça basittir, 10gen şirketinin geliştirdiği MongoDB C# driver sayesinde(C# driver yerine .net driver deselermiş çok daha tutarlı olacakmış) poco nesneleri ve linq sorguları kullanmak mümkündür, desteklenen diğer diller ve yapılar burada görülebilmektedir. Normalizasyon yoktur fakat bunun yerine önerilen yapılar vardır, örneğin bire-çok ilişki için embedded document(gömme doküman) önerilen yapılardan birisidir, data modeling’in tamamı için burayı ziyaret ediniz. İndirip bilgisayarınıza kurabilirsiniz, Windows üzerine kurulum ile ilgili detay burada yer almaktadır, diğer tüm sistemler ise burada görülebilir.

MongoDB C# Driver’ı Projeye Uygulama – Örnek

Projemizde kullanabilmemiz için öncelikle MongoDB C# Driver paketini Nuget(http://nuget.org/packages/mongocsharpdriver) üzerinden kurmamız gerekecek.

Package Manager Console üzerinde Install-Package mongocsharpdriver komutunu çalıştırıyoruz.
Picture
Kurulum başarılı olduğunda referanslara yeni kütüphaneler gelecektir.

  1. MongoDB.Bson
  2. MongoDB.Driver
  3. Newtonsoft.Json

Picture

Buraya kadar herhangi bir sorun yaşamadınız ve ilgili referansları gördünüz ise kurulum işlemi başarı ile tamamlanmış demektir. Örnek uygulamayı, Sanatçılar ve Albümleri üzerinde CRUD işlemleri yapmak üzere geliştirdim.

Uygulama kaynak kodları https://github.com/bbilginn/Mongodb.Net adresinde mevcut. İlgili örneğin çalışan hali http://mongodb-net.azurewebsites.net/ adresindedir(Lütfen sanatçıları silmeyelim :)).

MongoDB driver ile çalıştırabilmek için ilgili kod(Manager.vb) sayfanıza şu üç Import’ u yapmanız gerekecektir.

  1. Imports MongoDB.Driver
  2. Imports MongoDB.Driver.Builders
  3. Imports MongoDB.Bson

Burada tüm operasyonlar Manager.vb üzerinde gerçekleşmektedir, tüm metotlar buradadır. ConnectionString değişkeninde MongoDB yolunu ve bilgilerini bulabilirsiniz. Pek tabi ki bu hizmeti kendi bilgisayarınıza kurarak denemeler yapabilirsiniz, ben bu uygulamada yerel bir kurulum yapmak yerine MongoLab(https://mongolab.com/) hizmetini kullandım, bu sayede en azından denemek için kuruluma ihtiyacınız olmayacaktır.

Adım adım MongoLab hizmetini oluşturmak.

Picture

http://mongolab.org adresinden bir hesap oluşturduktan sonra http://mongolab.org/newdb adresinden veritabanı adını, servis sağlayıcısını ve ödeme planını seçtikten sonra veritabanımız için kullanıcı adı ve şifresi tanımlıyoruz.

Picture

Bir sonraki sayfada veritabanı oluşturma işleminin başarılı olduğuna dair bir mesaj alacağız, burası aynı zamanda veritabanımızın yönetim konsoludur.

Picture

Tablo mantığından çıktık, bundan sonra koleksiyon olarak isimlendireceğiz, ki gördüğünüz üzere Sanatci adında yeni bir koleksiyon ekliyoruz. Koleksiyon ilk eklendiğinde _id adında unique bir alan otomatik olarak gelmekte.

Picture

Sanatci koleksiyonu için Ad alanı ekliyoruz.

Picture

Sanatci koleksiyonu için Albums alanını ekliyoruz, burada Albums girişte bahsettiğim embedded document yapısına sahip, bire çok ilişki ve delete rule=cascade gibi düşünülebilir, yani demem o ki aynı zamanda Sanatci koleksiyonundan bir kayıt silindiğinde silinen sanatçının tüm albümleri de o kayıta bağlı olduğu için silinecektir.
Yazacaklarım bu kadar 🙂 Bitti.


http://visualbasictr.com/Article/Berat-Bilgin/vb-net-mongodb-kullanimi