• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MongoDB ve C# Driver'ı
 

MongoDB ve C# Driver'ı

on

  • 1,400 views

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

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

Statistics

Views

Total Views
1,400
Views on SlideShare
1,399
Embed Views
1

Actions

Likes
0
Downloads
7
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    MongoDB ve C# Driver'ı MongoDB ve C# Driver'ı Presentation Transcript

    • 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şı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…)
    • 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 :) • 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
    • 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.
    • İ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 DocumentIndex IndexJoin Embeded DocumentPartition ShardPartition Key Shard Key
    • 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)
    • İş Büyüdükçe Aradaki Fark Ortaya Çıkıyor http://blog.michaelckennedy.net/2010/04/29/mongodb-vs-sql-server-2008-performance-showdown/
    • 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://bsonspec.org/• http://www.mongodb.org/display/DOCS/BSON
    • 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
    • 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]]
    • 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 incremental Map Reduce Yapıyor…
    • 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.• 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
    • Indexing
    • İ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
    • 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/