2012-01-31 NoSQL in .NET

2,705 views
2,611 views

Published on

NoSQL presentation for the VSone conference

Published in: Technology
1 Comment
1 Like
Statistics
Notes
  • Danke für das SlideShare und die sehr interessanten Informationen.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,705
On SlideShare
0
From Embeds
0
Number of Embeds
1,434
Actions
Shares
0
Downloads
15
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

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

×