2012-01-31 NoSQL in .NET
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

2012-01-31 NoSQL in .NET

  • 2,764 views
Uploaded on

NoSQL presentation for the VSone conference

NoSQL presentation for the VSone conference

More 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
2,764
On Slideshare
1,355
From Embeds
1,409
Number of Embeds
2

Actions

Shares
Downloads
12
Comments
0
Likes
0

Embeds 1,409

http://blog.johanneshoppe.de 1,408
http://translate.googleusercontent.com 1

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. 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. Johannes Hoppe .NET Webentwickler www.johanneshoppe.de
  • 3. 01Not only SQL
  • 4. Daten 2002 2004 2006 2008 2010 2012
  • 5. Trend 1: wachsende DatenmengenTrend 2: mehr Vernetzung (“web 2.0”)Trend 3: mehr Individualisierung (weniger Struktur)
  • 6. Scale-upVertikale SkalierungServer auf mehr Leistungsfähigkeit trimmen
  • 7. Scale-outhorizontale SkalierungEinfügen von Nodes (Rechnerknoten)
  • 8. verteilte und horizontale Skalierbarkeitkein relationales Datenmodell (kein SQL)schemafrei / schwache Schemarestriktionenanderes Konsistenzmodell
  • 9. Schemafreikein ALTER TABLEkein Wartungsfenster *Datenversionierung im Code!* morgens ausschlafen
  • 10. Anforderungenan ein verteiltes System Consistency Konsistenz Partition Availability Tolerance Verfügbarkeit Ausfalltoleranz
  • 11. CAP Theorem› 2000: E. Brewer, N. Lynch› You can satisfy at most 2 out of the 3 requirements
  • 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. Availability› System is “always on”, no downtime› Node failure tolerance – all clients can find some available replica› Software/hardware upgrade tolerance
  • 14. Partition tolerance› System continues to function even when split into disconnected subsets (network disruption)› Not only for reads, but writes as well
  • 15. “Drum prüfe,wer sich ewig bindet.”Friedrich Schiller
  • 16. Klassifizierung› Key-Value stores› Document stores  MongoDB & RavenDB› Wide Column stores› Graph-Datenbanken› und viele weitere
  • 17. 02Tabellen  Dokumente
  • 18. https://webnote.codeplex.com
  • 19. 03MongoDB
  • 20. NoSQL MongoDB Quick Reference Cards http://www.10gen.com/reference und zum Mitnehmen!
  • 21. “Deployment”› Standardverzeichnis erstellen: c:datadb› Server-Start: mongod.exe› Shell: mongo.exe
  • 22. BSON Master/SlaveJavaScript C# DriverSharding GNU AGPL
  • 23. JSON  BSONAll JSON documents are stored in a binaryformat called BSON. BSON supports aricher set of types than JSON.http://bsonspec.org
  • 24. CRUD – CreateIn der Shell› use WebNote› db.Notes.save( {Title: Mittag, Message: nicht vergessen });So funktioniert der Befehl› db.Notes.save
  • 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. CRUD – Update› db.Notes.update({Title: Test}, {$set: {Categories: []}});› db.Notes.update({Title: Test}, {$push: {Categories: { Color: Red }}});
  • 27. CRUD – Delete› db.dropDatabase();› db.Notes.drop();› db.Notes.remove();
  • 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. 04RavenDB
  • 30. NoSQL Raven Db Documentation http://ravendb.net/docs
  • 31. JSON * TransaktionalLINQ Lucene100% .NET AGPL / dual* Newtonsoft.Json.dll  JSON DOM (Raven.Json)
  • 32. “Deployment”› Via NuGet› Raven.Server.exe.config anpassen It’s safe by default!› Server-Start: Raven.Server.exe
  • 33. Designed to “just work”› Fluent API› Unit of Work Pattern› Extensible – Plugin Support
  • 34. Safe by default› praktische defaults › z.B. Limited page size – kein unabsichtliches SELECT *› ACID › Client / Server › Cross shard
  • 35. Indexe› Als Linq Queries definiert› Indiziert mit Lucene .NET
  • 36. APIs› Native .NET Client API› HTTP API (Pseudo REST)
  • 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. 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. 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. https://webnote.codeplex.com/
  • 41. VISUAL STUDIO FÜR WINDOWS-ENTWICKLER30.-31. JAN. 2012, MÜNCHEN FRAGEN?Partner: Veranstalter:
  • 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. 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. VISUAL STUDIO FÜR WINDOWS-ENTWICKLER30.-31. JAN. 2012, MÜNCHEN Vielen Dank Johannes HoppePartner: Veranstalter:
  • 45. https://webnote.codeplex.com/
  • 46. BildnachweiseAusgewählter Ordner © Spectral-Design – Fotolia.comWarnhinweis-Schild © Sascha Tiebel – Fotolia.comListe abhaken © Dirk Schumann – Fotolia.comStressed businessman © Selecstock – Fotolia.com