MongoDB And C#  Serdar Büyüktemiz@hserdarb / serdarb.com   altdotnetturkiyeWeb Application Developer
Program•   No-Sql•   MongoDB•   C# Driver•   Demo
NO-SQL
Dünyada Sadece OLTP Databaseler Yok• Her problemin kendine has başka bir çözümü  de olabilir. (NO – Not Only SQL)  – Karşı...
http://jeeconf.com/archive/jeeconf-2011/materials/graph-db/
Veri tabanı Boyut/Karmaşa Grafiği  http://jeeconf.com/archive/jeeconf-2011/materials/graph-db/
NoSQL Problem Çözüm Örnekleri• Key-Value     • Uygulama State’ini Saklamak (Session)• Column Oriented     • Google :)     ...
Genel Olarak Nasıl Bir DB Lazım?• Kolayca kullanmaya başlayabileceğimiz (şemasız)• İşler büyüdüğünde de bizi kaldırabilece...
İdeal MongoDB Başlangıç Setup’ı• Yazılımcı olarak kurmakla uğraşmayın bir bilen size kursun  (spp42.com/mongodb/danismanlik)
MONGODB
RDBMS => MongoDBRDBMS                   MongoDBTable, View             CollectionRow                     JSON DocumentInde...
Neden MongoDB?•   Popüler •   Kolay•   Şemasız•   Web projeleri için ideal• High performance (İlişkili bir yapı kurmazsak...
İş Büyüdükçe Aradaki Fark Ortaya            Çıkıyor http://blog.michaelckennedy.net/2010/04/29/mongodb-vs-sql-server-2008-...
Güzel bir web tutorialhttp://tutorial.mongly.com/tutorialBy Karl Seguin
C# DRIVER
Official C# Driver
BSON Nedir?• BSON, MongoDB’nin «dökümanlar» için  kullandığı veri saklama ve network transfer  formatı.• Binary JSON• http...
POCO’larla Çalışmak• İşleri kolaylaştıran kurallar…  – Parametresiz public constructor  – Serialize olmasını istediğiniz h...
MongoDB’ye Bağlanmak• GetDatabase methodu db yoksa sizin için  oluşturuyor.•   http://www.mongodb.org/display/DOCS/CSharp+...
MongoCollection• GetCollection<MyType>
Insert
Find
Map Reduce• Mümkün olduğunca çabuk çok miktarda data üzerinde  paralel olarak işlem yapmak için bir çözüm…•   CouchDB incr...
Map Reduce
Demo• https://bitbucket.org/serdarb/mongo-c-driver-poc• https://github.com/serdarb/Mongo-C--Driver-POC
Transaction• Transaction desteği yok  – Çözümümümüz transaction gerektiriyorsa başka    bir DB kullanmayı düşünebilirsiniz...
Indexing
İpucu• Mongodb’yi notablescan parameteresiyle  çalıştırarak sorgularımızın «full table scan»  yapmamasına emin olabiliriz....
Sources•   http://www.mongodb.org/display/DOCS/Introduction•   http://mongly.com/Multiple-Collections-Versus-Embedded-Docu...
Upcoming SlideShare
Loading in...5
×

MongoDB ve C# Driver'ı

1,245

Published on

Temel seviyede No-Sql ve MongoDB'nin C# driver'ının kullanımının anlatıldığı bir sunumdur.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,245
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MongoDB ve C# Driver'ı

  1. 1. MongoDB And C# Serdar Büyüktemiz@hserdarb / serdarb.com altdotnetturkiyeWeb Application Developer
  2. 2. Program• No-Sql• MongoDB• C# Driver• Demo
  3. 3. NO-SQL
  4. 4. Dünyada Sadece OLTP Databaseler Yok• Her problemin kendine has başka bir çözümü de olabilir. (NO – Not Only SQL) – Karşımıza çıkan işlerin %90’dan fazlası ilişkisel veri tabanlarıyla rahatlıkla çözülebilir… – Ama bunlar da var • Key-Value • Column Oriented • Document (MongoDB, CouchDB) • Graph • OLAP (No-Sql ler arasında anılmıyo…)
  5. 5. http://jeeconf.com/archive/jeeconf-2011/materials/graph-db/
  6. 6. Veri tabanı Boyut/Karmaşa Grafiği http://jeeconf.com/archive/jeeconf-2011/materials/graph-db/
  7. 7. NoSQL Problem Çözüm Örnekleri• Key-Value • Uygulama State’ini Saklamak (Session)• Column Oriented • Google :) • Data warehouse• Document • Blog (Yazı Yorumları), • Eticaret (Ürün Özellikleri) • Hızlı insert• Graph • Arkadaşımın, arkadaşlarının, arkadaşları…• OLAP • Pek değişmeyen verilerde hızlı rapor gösterimi
  8. 8. Genel Olarak Nasıl Bir DB Lazım?• Kolayca kullanmaya başlayabileceğimiz (şemasız)• İşler büyüdüğünde de bizi kaldırabilecek ama küçükken de yük olmayacak• Bize veri kaybettirmeyecek• Daima up olacak• No-Sql veri tabanları genel olarak bu düşünce ile farklı iş sorunlarını çözmek üzere geliştirilmişlerdir.
  9. 9. İdeal MongoDB Başlangıç Setup’ı• Yazılımcı olarak kurmakla uğraşmayın bir bilen size kursun (spp42.com/mongodb/danismanlik)
  10. 10. MONGODB
  11. 11. RDBMS => MongoDBRDBMS MongoDBTable, View CollectionRow JSON DocumentIndex IndexJoin Embeded DocumentPartition ShardPartition Key Shard Key
  12. 12. Neden MongoDB?• Popüler • Kolay• Şemasız• Web projeleri için ideal• High performance (İlişkili bir yapı kurmazsak ve makul oranda «embeded döküman» kullanırsak)• High availability (Replicated servers with automatic master failover)• Easy scalability (Automatic sharding)
  13. 13. İş Büyüdükçe Aradaki Fark Ortaya Çıkıyor http://blog.michaelckennedy.net/2010/04/29/mongodb-vs-sql-server-2008-performance-showdown/
  14. 14. Güzel bir web tutorialhttp://tutorial.mongly.com/tutorialBy Karl Seguin
  15. 15. C# DRIVER
  16. 16. Official C# Driver
  17. 17. BSON Nedir?• BSON, MongoDB’nin «dökümanlar» için kullandığı veri saklama ve network transfer formatı.• Binary JSON• http://bsonspec.org/• http://www.mongodb.org/display/DOCS/BSON
  18. 18. POCO’larla Çalışmak• İşleri kolaylaştıran kurallar… – Parametresiz public constructor – Serialize olmasını istediğiniz her Property için Public get ve set
  19. 19. MongoDB’ye Bağlanmak• GetDatabase methodu db yoksa sizin için oluşturuyor.• http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTut orial-Connectionstrings• mongodb://[username:password@]hostname[:port][/[database][?options]]
  20. 20. MongoCollection• GetCollection<MyType>
  21. 21. Insert
  22. 22. Find
  23. 23. Map Reduce• Mümkün olduğunca çabuk çok miktarda data üzerinde paralel olarak işlem yapmak için bir çözüm…• CouchDB incremental Map Reduce Yapıyor…
  24. 24. Map Reduce
  25. 25. Demo• https://bitbucket.org/serdarb/mongo-c-driver-poc• https://github.com/serdarb/Mongo-C--Driver-POC
  26. 26. Transaction• Transaction desteği yok – Çözümümümüz transaction gerektiriyorsa başka bir DB kullanmayı düşünebilirsiniz.• Kendiniz geliştirmek isterseniz şu linkleri inceleyebilirsiniz – http://docs.mongodb.org/manual/tutorial/perfor m-two-phase-commits/ – https://github.com/rystsov/mongodb-transaction- example
  27. 27. Indexing
  28. 28. İpucu• Mongodb’yi notablescan parameteresiyle çalıştırarak sorgularımızın «full table scan» yapmamasına emin olabiliriz... – Eğer bir sorgu fulltable scan yapıyorsa hata verecektir. Buda geliştirme anında index belirlememizde bize kılavuzluk edecektir
  29. 29. Sources• http://www.mongodb.org/display/DOCS/Introduction• http://mongly.com/Multiple-Collections-Versus-Embedded-Documents/• http://openmymind.net/mongodb.pdf• http://www.mongodb.org/display/DOCS/Padding+Factor• https://github.com/mongodb/mongo• http://www.codeproject.com/Articles/273145/Using-MongoDB-with-the-Official-Csharp-Driver• http://stackoverflow.com/questions/4067197/mongodb-and-joins• http://www.mongodb.org/display/DOCS/Schema+Design#SchemaDesign-EmbeddingandLinking• http://docs.mongodb.org/manual/applications/database-references/• http://www.10gen.com/presentations?programming_lang=46• https://speakerdeck.com/mongodb/whats-new-in-the-net-driver• http://learnmongo.com/• http://www.mongovue.com/2010/11/03/yet-another-mongodb-map-reduce-tutorial/• http://spp42.com/mongodbde-dogru-index-kullanimi-nasil-kontrol-edilir-i/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×