Your SlideShare is downloading. ×
  • Like
Tikal Fuse Day   Access Layer Implementation (C#) Based On Mongo Db
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Tikal Fuse Day Access Layer Implementation (C#) Based On Mongo Db

  • 3,855 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,855
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
34
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Tikal Fuse Day Access layer implementation (C#) based on MongoDB Session leaders: Michael Lvov & Igor Zelmanovich
  • 2. Agenda
    • Session ambition  
    • Session prerequisites
    • Motivation
    • MongoDB - document-oriented database
    • MongoDB Dot.Net driver
    • C# examples: Create DB and Insert data
    • C# examples: Queries
    • BlogEngine.NET
  • 3. Session ambition  
    • Implement Data Access layer based on MongoDB and integrate it into BlogEngine.NET project
  • 4. Session prerequisites 
    • Visual Studio 2008
    • MongoDB server (http://www.mongodb.org/display/DOCS/Downloads)
    • MongoDB C# driver (http://github.com/samus/mongodb-csharp/downloads)
    • BlogEngine.NET (v 1.6) source code and binaries from CodePlex (http://blogengine.codeplex.com/releases/view/39387)
    • Github account for getting write access to repository
  • 5. Motivation 
    • Modern projects need to manipulate with huge data amount, as result the necessity of high scalability and  high performance is very actual and always grows
    • RDBMS databases cannot supply ultimate solution and alternative concepts like in NoSQL systems look very interesting
    • Key-value stores like Google Big Table or Cassandra that provide fast and extremely large-scale solution but you can forget the comfort work with SQL queries like in RDBMS databases.    
  • 6. MongoDB - document-oriented database
    • Document-oriented databases combine between advantages of DBMS databases and key-values stores
    • MongoDB is a scalable, high-performance, schema-free document-oriented DB, supports dynamic queries in JSON-style format, indexes, replication, sharding, MapReduce.
    • Development by commercial company as open-source project written in C++. There are a lot of documentation, tutorials and samples on project site. 
    • Interface based on native drivers that exist for most environments: C, C++,Java,Python,Ruby...
  • 7. MongoDB Dot.Net driver
    • Mongodb-csharp
    • Open-source project
    • Written in C#
    • Support Mono
    • LINQ support
  • 8. C# examples: Create DB and Insert data
    • Mongo mongo = new Mongo();
    • mongo.Connect();
    • IMongoCollection postsTbl = mongo.getDB("BlogDB").GetCollection("Posts");
    • Document post = new Document();
    • post["Tittle"] = "Tittle1";
    • post["Timestamp"] = DateTime.Now;
    • postsTbl.Insert(post);
  • 9. C# examples: Queries
    • Document spec = new Document();
    • spec["Tittle"] = "Tittle1";
    • Document myPost = postsTbl.FindOne(spec);
    • or with LINQ
    • IMongoQuery query = postsTbl.AsQueryable();
    • var docs = query.Where(doc => doc["Tittle"] == "Tittle 1");
  • 10. BlogEngine.NET
    • Open source .NET blogging project
    • Very easy to setup and customize
    • Layers separation
    • DataAccess customization – only implement well-defined data provider interface
  • 11. Q & A