Makale Özeti

İlişkisel olmayan veritabanı sistemlerinden olan NoSQL'in döküman tabanlı üyelerinden biri olan MongoDB'nin c# dili ile kullanılışını bir masaüstü uygulaması ile inceleyeceğiz.

Makale

Merhabalar,

bu yazımızda MongoDB veritabanının c# ile nasıl entegre edildiğini örneklerle inceleyeceğiz.

NoSQL sistemleri kendi aralarında döküman tabanlıkey/value tabanlı ve grafik tabanlı olarak üç gurupta toplanırlar. MongoDB döküman tabanlıdır ve kullanılması en kolay olandır.

MongoDB'nin şu anki güncel sürümü 2.4.6'dır. http://www.mongodb.org/downloads adresinden ücretsiz olarak indirebilirsiniz.

Sistemimize uygun olanı indirdikten sonra C:\ altına mongodb isimli bir klasör oluşturup bu klasörün içine zip dosyasını çıkaralım.

Veritabanı dosyalarımızın tutulacağı C:\data\db klasörümüzün bulunması gerekiyor. ( Not : bu klasör sabittir ve farklı bir isimde olmamalıdır. )


Şimdi visual studio 2010 ile bir masaüstü projesi açalım ve http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/ adresinden dll dosyalarımızı projemize referans olarak ekleyelim.

Referans


Şimdi MongoDB veritabanımızı açmak için Komut istemimizi yönetici olarak çalıştıralım ve C:\mongodb\bin içindeki mongod.exe'yi çalıştıralım.

Command prompt

"admin web console waiting for connections on port 28017" mesajı gelmişse eğer başarıyla açılmış demektir.

 

            try
            {
                var conn = new MongoDB.Mongo();
                conn.Connect();
                MessageBox.Show("Connected");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

yukarıdaki kod veritabanımıza bağlantımızı test edecektir.

Şimdi üzerinde çalışacağımız Personel isimli bir class oluşturalım

 

class Personel
    {
        public string personelAdi { set; get; }
        public int numarasi {set; get; }

        public Personel()
        {
            
        }
        public override string ToString()
        {
            return this.personelAdi;
        }
    }

İnsert işlemi

            
public void insert(){
var p = new Personel();
p.personelAdi = "Kemal";
p.numarasi = 1234;
try
            {
                var mongo = new MongoDB.Mongo();
                mongo.Connect();
                var db = mongo.GetDatabase("DemoDB");
                var coll = db.GetCollection<Personel>();
                coll.Save(p);
                MessageBox.Show("kaydedildi");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
  }

Update işlemi

public void update(Personel p){
   var mongo = new MongoDB.Mongo();
   mongo.Connect();
   var db = mongo.GetDatabase("Demo");
   var coll = db.GetCollection<Personel>();
   
   p.personelAdi = "Duran";
   coll.Save(p);

}

Select işlemi

 

public List<Personel> getPersolonels()
{
    var mongo = new MongoDB.Mongo();
    mongo.Connect();
    var db = mongo.GetDatabase("DemoDB");
    var personels = db.GetCollection<Personel>().FindAll().Documents;

    return personels.ToList() ;
 }

Görüldüğü gibi MongoDB ile veritabanı işlemleri rahatlıkla yapılabilmektedir, büyük projelerde bu gibi sistemler bizi uzun kodlar yazmaktan kurtarmaktadır.

MongoDB yönetim sistemlerinden bazılarının linkini paylaşıyorum : 

http://robomongo.org/

http://www.mongodirector.com/

http://mongoexplorer.com/


İyi çalışmalar