0
VISUAL STUDIO FÜR WINDOWS-ENTWICKLER30.-31. JAN. 2012, MÜNCHEN                                  in .NET mit RavenDB und Mo...
Johannes Hoppe  .NET Webentwickler www.johanneshoppe.de
01Not only SQL
Daten 2002   2004   2006   2008   2010   2012
Trend 1: wachsende DatenmengenTrend 2: mehr Vernetzung (“web 2.0”)Trend 3: mehr Individualisierung (weniger Struktur)
Scale-upVertikale SkalierungServer auf mehr Leistungsfähigkeit trimmen
Scale-outhorizontale SkalierungEinfügen von Nodes (Rechnerknoten)
verteilte und horizontale Skalierbarkeitkein relationales Datenmodell (kein SQL)schemafrei / schwache Schemarestriktionena...
Schemafreikein ALTER TABLEkein Wartungsfenster *Datenversionierung im Code!* morgens ausschlafen
Anforderungenan ein verteiltes System                           Consistency                                  Konsistenz   ...
CAP Theorem›   2000: E. Brewer, N. Lynch›   You can satisfy    at most 2 out of the 3 requirements
Consistency›   The system is in a consistent state after an operation›   All clients see the same data›   Strong consisten...
Availability›   System is “always on”, no downtime›   Node failure tolerance    – all clients can find some available repl...
Partition tolerance›   System continues to function even when    split into disconnected subsets (network disruption)›   N...
“Drum prüfe,wer sich ewig bindet.”Friedrich Schiller
Klassifizierung›   Key-Value stores›   Document stores  MongoDB & RavenDB›   Wide Column stores›   Graph-Datenbanken›   u...
02Tabellen  Dokumente
https://webnote.codeplex.com
03MongoDB
NoSQL   MongoDB Quick Reference Cards   http://www.10gen.com/reference   und zum Mitnehmen!
“Deployment”›   Standardverzeichnis erstellen:    c:datadb›   Server-Start: mongod.exe›   Shell: mongo.exe
BSON         Master/SlaveJavaScript   C# DriverSharding     GNU AGPL
JSON  BSONAll JSON documents are stored in a binaryformat called BSON. BSON supports aricher set of types than JSON.http:...
CRUD – CreateIn der Shell› use WebNote› db.Notes.save( {Title: Mittag,                  Message: nicht vergessen });So fun...
CRUD – ReadQueries werden ebenso im Dokument-Stil spezifiziert›   db.Notes.find();›   db.Notes.find({ Title: /Test/i });› ...
CRUD – Update›   db.Notes.update({Title: Test}, {$set: {Categories: []}});›   db.Notes.update({Title: Test},              ...
CRUD – Delete›   db.dropDatabase();›   db.Notes.drop();›   db.Notes.remove();
“Map Reduce is the Uzi of aggregationtools. Everything described with count,distinct and group can be done withMapReduce, ...
04RavenDB
NoSQL   Raven Db Documentation   http://ravendb.net/docs
JSON *                           TransaktionalLINQ                             Lucene100% .NET                        AGPL...
“Deployment”›   Via NuGet›   Raven.Server.exe.config anpassen    It’s safe by default!›   Server-Start: Raven.Server.exe
Designed to “just work”›   Fluent API›   Unit of Work Pattern›   Extensible – Plugin Support
Safe by default›   praktische defaults    ›   z.B. Limited page size – kein unabsichtliches SELECT *›   ACID    ›   Client...
Indexe›   Als Linq Queries definiert›   Indiziert mit Lucene .NET
APIs›   Native .NET Client API›   HTTP API (Pseudo REST)
HTTP API›   Caching›   E-Tags›   Lucene Queries möglichC:>curl -X GET http://localhost:8080/docs/Categories/1 -iHTTP/1.1 2...
Lucene Style QueriesClassic Linq Style                       Lucene Stylevar notes = session                      var note...
NoSQL: Einstieg in die Welt nicht-      MongoDB:relationaler Web 2.0 Datenbanken        The Definitive Guide RavenDB Mytho...
https://webnote.codeplex.com/
VISUAL STUDIO FÜR WINDOWS-ENTWICKLER30.-31. JAN. 2012, MÜNCHEN                    FRAGEN?Partner:                         ...
Wir sehen uns wieder!                 Advanced Developers Conference C++                    3. – 4. Mai 2012, Zugspitzland...
VISUAL STUDIO FÜR WINDOWS-ENTWICKLER30.-31. JAN. 2012, MÜNCHEN           Hat Ihnen mein Vortrag gefallen?           Ich fr...
VISUAL STUDIO FÜR WINDOWS-ENTWICKLER30.-31. JAN. 2012, MÜNCHEN                 Vielen Dank                             Joh...
https://webnote.codeplex.com/
BildnachweiseAusgewählter Ordner © Spectral-Design – Fotolia.comWarnhinweis-Schild © Sascha Tiebel – Fotolia.comListe abha...
2012-01-31 NoSQL in .NET
2012-01-31 NoSQL in .NET
2012-01-31 NoSQL in .NET
2012-01-31 NoSQL in .NET
2012-01-31 NoSQL in .NET
2012-01-31 NoSQL in .NET
2012-01-31 NoSQL in .NET
Upcoming SlideShare
Loading in...5
×

2012-01-31 NoSQL in .NET

2,495

Published on

NoSQL presentation for the VSone conference

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
2,495
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "2012-01-31 NoSQL in .NET"

  1. 1. VISUAL STUDIO FÜR WINDOWS-ENTWICKLER30.-31. JAN. 2012, MÜNCHEN in .NET mit RavenDB und MongoDB31.01.2012Dipl.-Inf. (FH) Johannes HoppePartner: Veranstalter:
  2. 2. Johannes Hoppe .NET Webentwickler www.johanneshoppe.de
  3. 3. 01Not only SQL
  4. 4. Daten 2002 2004 2006 2008 2010 2012
  5. 5. Trend 1: wachsende DatenmengenTrend 2: mehr Vernetzung (“web 2.0”)Trend 3: mehr Individualisierung (weniger Struktur)
  6. 6. Scale-upVertikale SkalierungServer auf mehr Leistungsfähigkeit trimmen
  7. 7. Scale-outhorizontale SkalierungEinfügen von Nodes (Rechnerknoten)
  8. 8. verteilte und horizontale Skalierbarkeitkein relationales Datenmodell (kein SQL)schemafrei / schwache Schemarestriktionenanderes Konsistenzmodell
  9. 9. Schemafreikein ALTER TABLEkein Wartungsfenster *Datenversionierung im Code!* morgens ausschlafen
  10. 10. Anforderungenan ein verteiltes System Consistency Konsistenz Partition Availability Tolerance Verfügbarkeit Ausfalltoleranz
  11. 11. CAP Theorem› 2000: E. Brewer, N. Lynch› You can satisfy at most 2 out of the 3 requirements
  12. 12. Consistency› The system is in a consistent state after an operation› All clients see the same data› Strong consistency (ACID) vs. eventual consistency (BASE) ACID: Atomicity, Consistency, Isolation and Durability BASE: Basically Available, Soft state, Eventually consistent
  13. 13. Availability› System is “always on”, no downtime› Node failure tolerance – all clients can find some available replica› Software/hardware upgrade tolerance
  14. 14. Partition tolerance› System continues to function even when split into disconnected subsets (network disruption)› Not only for reads, but writes as well
  15. 15. “Drum prüfe,wer sich ewig bindet.”Friedrich Schiller
  16. 16. Klassifizierung› Key-Value stores› Document stores  MongoDB & RavenDB› Wide Column stores› Graph-Datenbanken› und viele weitere
  17. 17. 02Tabellen  Dokumente
  18. 18. https://webnote.codeplex.com
  19. 19. 03MongoDB
  20. 20. NoSQL MongoDB Quick Reference Cards http://www.10gen.com/reference und zum Mitnehmen!
  21. 21. “Deployment”› Standardverzeichnis erstellen: c:datadb› Server-Start: mongod.exe› Shell: mongo.exe
  22. 22. BSON Master/SlaveJavaScript C# DriverSharding GNU AGPL
  23. 23. JSON  BSONAll JSON documents are stored in a binaryformat called BSON. BSON supports aricher set of types than JSON.http://bsonspec.org
  24. 24. CRUD – CreateIn der Shell› use WebNote› db.Notes.save( {Title: Mittag, Message: nicht vergessen });So funktioniert der Befehl› db.Notes.save
  25. 25. CRUD – ReadQueries werden ebenso im Dokument-Stil spezifiziert› db.Notes.find();› db.Notes.find({ Title: /Test/i });› db.Notes.find({ "Categories.Color": "red"}).limit(1);
  26. 26. CRUD – Update› db.Notes.update({Title: Test}, {$set: {Categories: []}});› db.Notes.update({Title: Test}, {$push: {Categories: { Color: Red }}});
  27. 27. CRUD – Delete› db.dropDatabase();› db.Notes.drop();› db.Notes.remove();
  28. 28. “Map Reduce is the Uzi of aggregationtools. Everything described with count,distinct and group can be done withMapReduce, and more.”Kristina Chadorow, Michael Dirolf in MongoDB – The Definitive Guide
  29. 29. 04RavenDB
  30. 30. NoSQL Raven Db Documentation http://ravendb.net/docs
  31. 31. JSON * TransaktionalLINQ Lucene100% .NET AGPL / dual* Newtonsoft.Json.dll  JSON DOM (Raven.Json)
  32. 32. “Deployment”› Via NuGet› Raven.Server.exe.config anpassen It’s safe by default!› Server-Start: Raven.Server.exe
  33. 33. Designed to “just work”› Fluent API› Unit of Work Pattern› Extensible – Plugin Support
  34. 34. Safe by default› praktische defaults › z.B. Limited page size – kein unabsichtliches SELECT *› ACID › Client / Server › Cross shard
  35. 35. Indexe› Als Linq Queries definiert› Indiziert mit Lucene .NET
  36. 36. APIs› Native .NET Client API› HTTP API (Pseudo REST)
  37. 37. HTTP API› Caching› E-Tags› Lucene Queries möglichC:>curl -X GET http://localhost:8080/docs/Categories/1 -iHTTP/1.1 200 OKContent-Type: application/json; charset=utf-8ETag: 00000000-0000-0200-0000-000000000004{ "Name" : "Normal Importance", "Color" : "green"}
  38. 38. Lucene Style QueriesClassic Linq Style Lucene Stylevar notes = session var notes = session.Advanced.Query<Note>() .LuceneQuery<Note>().Where(n => n.Category == “Important") .Where(“Category:Important").ToArray(); .ToArray();
  39. 39. NoSQL: Einstieg in die Welt nicht- MongoDB:relationaler Web 2.0 Datenbanken The Definitive Guide RavenDB Mythology Documentation MongoDB in Action https://s3.amazonaws.com/ daily-builds/RavenDBMythology-11.pdf
  40. 40. https://webnote.codeplex.com/
  41. 41. VISUAL STUDIO FÜR WINDOWS-ENTWICKLER30.-31. JAN. 2012, MÜNCHEN FRAGEN?Partner: Veranstalter:
  42. 42. Wir sehen uns wieder! Advanced Developers Conference C++ 3. – 4. Mai 2012, Zugspitzland Development for C++ Professionals! www.adcpp.de SharePoint Konferenz in Wien 19. – 20. Juni 2012, Wien ppedv-Konferenz in Kooperation mit Microsoft Österreich www.SharePointKonferenz.atPartner: Veranstalter:
  43. 43. VISUAL STUDIO FÜR WINDOWS-ENTWICKLER30.-31. JAN. 2012, MÜNCHEN Hat Ihnen mein Vortrag gefallen? Ich freue mich auf Ihr Feedback!Partner: Veranstalter:
  44. 44. VISUAL STUDIO FÜR WINDOWS-ENTWICKLER30.-31. JAN. 2012, MÜNCHEN Vielen Dank Johannes HoppePartner: Veranstalter:
  45. 45. https://webnote.codeplex.com/
  46. 46. BildnachweiseAusgewählter Ordner © Spectral-Design – Fotolia.comWarnhinweis-Schild © Sascha Tiebel – Fotolia.comListe abhaken © Dirk Schumann – Fotolia.comStressed businessman © Selecstock – Fotolia.com
  1. A particular slide catching your eye?

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

×