nosql database in .net apps

13
NoSQL databases in .NET Apps Shiju Varghese Blog : http://weblogs.asp.net/shijuvarghese Twitter : http ://twitter.com/shijucv Email : [email protected]

Upload: shiju-varghese

Post on 27-Jan-2015

107 views

Category:

Technology


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: NoSQL Database in .NET Apps

NoSQL databases in .NET Apps

Shiju VargheseBlog : http://weblogs.asp.net/shijuvargheseTwitter : http://twitter.com/shijucvEmail : [email protected]

Page 2: NoSQL Database in .NET Apps

About Me• Microsoft MVP on ASP.NET• Solution Architect• Focus on Microsoft Web Platform stack• Technical focus on ASP.NET MVC• Blog: http://weblogs.asp.net/shijuvarghese

Page 3: NoSQL Database in .NET Apps

Session Objective

• Introduction to NoSQL and Document databases• Introduction to Raven DB • Demonstrate NoSQL demo app using RavenDB and

ASP.NET MVC.

Page 4: NoSQL Database in .NET Apps

Relational database

• Data stored in a structure of rows and columns• Object-relational impedance mismatch• Challenges in Scalability & Performance

Page 5: NoSQL Database in .NET Apps

NoSQL

• Stands for Not Only SQL• Next Generation Databases • Non-relational data storage systems• High performance• open-source • Schema free• Scalability• Modern web-scale databases

Page 6: NoSQL Database in .NET Apps

NoSQL

“NoSQL is a movement promoting a loosely defined class of non relational data stores that break with a long history of relational databases. These data stores may not require fixed table schemas, usually avoid join operations and typically scale horizontally. Academics and papers typically refer to these databases as structured storage.” - Wikipedia

Page 7: NoSQL Database in .NET Apps

Who is using NoSQL

• Facebook• Twitter• LinkedIn• Google• Amazon• eBay• Digg

Page 8: NoSQL Database in .NET Apps

Document Database• Documents• Open Formats ( JSON, XML )

• Schema free• Documents are independent• Non relational• Run on large number of machines• Data is partitioned and replicated among these machines

Eg: { "Id":2321816, "FirstName":"Shiju", "LastName":"Varghese", "Title" : "Architect" }

Page 9: NoSQL Database in .NET Apps

Document Databases

• MongoDB • Written in C++• Developed by 10 gen

• RavenDB• .NET/Windows platform• Developed by Ayende Rahien• Transactional• RESTful

• CouchDB• Written in Erlang• Apache project

Page 10: NoSQL Database in .NET Apps

• Designed for .NET ecosystem• Scalable infrastructure: Raven builds on top of existing,

proven and scalable infrastructure (Supports 16 terrabytes on a single machine)

• Simple Windows configuration: Raven is simple to setup and run on windows as either a service or IIS 7 website

• Transactional: Raven support System.Transaction • Map/Reduce: Easily define map/reduce indexes with Linq

queries• .NET Client API: Raven comes with a fully functional .NET

client API • RESTful: Raven is built around a RESTful API• Dual License: Available in both OSS and commercial licenses

Page 11: NoSQL Database in .NET Apps

Demo

• RavenDB - http://ravendb.net• ASP.NET MVC – http://asp.net/mvc

Page 12: NoSQL Database in .NET Apps

Source Code

• RavenDB & ASP.NET MVC http://ravenmvc.codeplex.com• MongoDB & ASP.NET MVC

http://mongomvc.codeplex.com

Page 13: NoSQL Database in .NET Apps

Thanks