SlideShare a Scribd company logo
1 of 115
Download to read offline
Yes zu NoSQL mit MongoDB
Für .NET-Entwickler
Gregor Biswanger | Freier Berater, Trainer, Autor und Sprecher
about.me/gregor.biswanger
Über mich
▪ Freier Berater, Trainer und Autor
▪ Schwerpunkte: Softwarearchitektur, Web und
Cross-Plattform Entwicklung mit JavaScript
▪ Technologieberater für die Intel Developer Zone
▪ Internationaler Sprecher auf Konferenzen und
User Groups
▪ Freier Autor für heise.de, dotnetpro,
WindowsDeveloper und viele weitere
Fachmagazine
▪ Video-Trainer bei video2brain und Microsoft
Gregor Biswanger
Microsoft MVP, Intel Black Belt &
Intel Software Innovator
cross-platform-blog.de
about.me/gregor.biswanger
Unser Reiseplan
▪ Einstieg in MongoDB mit C#
▪ Immobilien App in ASP.NET Core
▪ Verbindung aufbauen
▪ Dokumente erzeugen
▪ Speichern und Verändern
▪ Abfragen
▪ GridFS
▪ LINQ-Support
▪ Fluent Aggregation API
▪ CRUD
▪ Eventing
▪ Joins
Einstieg in
MongoDB mit C#
Die ersten Schritte
Was ist MongoDB?
▪ Steht für das Englische Wort: humongous
(Enorm)
▪ Eine Open-Source Datenbank
▪ Veröffentlicht 2009
▪ Eine dokumentenorientierte NoSQL-
Datenbank
▪ Die Dokumente basieren auf JSON/BSON
▪ Läuft auf Windows, Mac und Linux
▪ MongoDB ist mit offiziellen Treibern
ausgestattet für C, C++, C#, Haskell, Java,
JavaScript, Lisp, Perl, PHP, Python, Ruby und
Scala
▪ Bester Entwickler-Komfort ist mit JavaScript
(Node.js)
Download
mongodb.org
Installation unter Windows
▪ MongoDB kann ohne
Abhängigkeiten direkt
heruntergeladen und
ausgeführt werden
▪ http://www.mongodb.com
▪ Installation wird über
einen Installer
empfohlen, für
automatisches festlegen
vom Pfad etc.
▪ Empfohlen wird für das
Produktivsystem nur die
64-Bit Version
Installation über den Paketmanager (Linux, Ubuntu)
1. Paketmanager Katalog updaten:
sudo apt-get update
2. MongoDB Paket installieren:
sudo apt-get install –y mongodb
Der Mongo Daemon
▪ Ist der MongoDB Service
▪ Wird ausgeführt über mongod (Linux) oder mongod.exe (Windows)
▪ Kann direkt ausgeführt werden oder benötige Installation von
Frameworks etc.
▪ Standardverzeichnis für die DB:
▪ Windows: „datadb“
▪ Linux: „/data/db“ – Ubuntu „/var/lib/mongodb“
▪ Standard Port: 27017
Die Mongo Shell
▪ Ein CLI-Tool um interaktiv auf die MongoDB
zugreifen zu können
▪ Datenzugriff
▪ Administration
▪ Wird ausgeführt über mongo (Linux) oder
mongo.exe (Windows)
▪ Interaktives JavaScript Interface
▪ Läuft auf der JavaScript-Engine SpiderMonkey (Mozilla)
▪ JavaScript-Dateien können ebenfalls als
automatisierte Script-Dateien hinterlegt werden
Robo 3T
▪ Kostenloses Verwaltungstool für
den Desktop
▪ Hieß früher Robomongo
▪ Läuft Cross-Plattform:
Windows, Mac und Linux
▪ Als Portable oder über Setup
▪ Studio 3T ist die
kostenpflichtige Enterprise
Version
Download
robomongo.org
Aufbau der MongoDB Datenstruktur
database
tables
rows
columns
database
collections
documents (BSON)
fields
SQL Terms / Konzepte MongoDB Terms / Konzepte
Identifizierung
▪ Die wichtigste Regel für Dokumente: Sie benötigen ein _id Feld
▪ Unterstütze Datentypen als ID:
▪ Number
▪ String
▪ Object
▪ ISODate()
▪ Nicht Unterstützer Datentyp:
▪ Array (Obwohl es auch vom Typ Object ist)
ObjectId
▪ Wenn kein _id Feld definiert
wurde, wird automatisch eine
ID mit der ObjectId-Funktion
festgelegt
▪ Eine mit ObjectId definierte ID,
beinhaltet einen Timestamp
▪ Das erspart ein zusätzliches
Feld wie z.B. CreatedTime
> db.foo.save({ name: "Max Mustermann" });
WriteResult({ "nInserted" : 1 })
> db.foo.find()
{ "_id" : ObjectId("5b0213dc7bb4413b6883cb05"),
"name" : "Max Mustermann" }
> db.foo.find()[0]._id.getTimestamp()
ISODate("2018-05-21T00:33:32Z")
Support für C#
▪ Der Mongo C# Driver ist die offizielle MongoDB API für C#
▪ NuGet MongoDB.Driver
▪ Open-Source auf GitHub
▪ https://github.com/mongodb/mongo-csharp-driver
▪ Support für
▪ Native Kommandos via Fluent Aggregation API
▪ LINQ
▪ Events
▪ GridFS
▪ Async-Await Support
Dokumentation
http://mongodb.github.io/mongo-csharp-driver/
Verbindung
aufbauen
Die ersten Schritte
Ein neues Projekt anlegen
Den Mongo C# Treiber über
NuGet installieren
Eine Klasse hinzufügen
Ermöglicht den Zugriff auf die
Datenbank und die Collections
Dokumente
erzeugen
Von POCO zu BSON
Dokument-Serialisierung
Client Server
BSON
POCO
BSON
Dokument
JSON
Eine Klasse hinzufügen
Datenklasse mit
Metainformationen
Speichern und
Verändern
Die Fütterungszeit für Mongo
Ermöglicht den Zugriff auf die
Datenbank und die Collections
Eine Klasse hinzufügen
DTO für das Formular
Eine Razor Page hinzufügen
Die Code-Behind-Datei
von der Razor-Page
Die View von der
Razor-Page
Das Formular für ein
neues Mietobjekt
Die Daten in der
Datenbank
Eine Razor Page hinzufügen
Eine Übersicht aller
Mietobjekte
Eine Klasse hinzufügen
Entity für die
Preisänderung
Eine Klasse hinzufügen
DTO für das
Formular
Eine Razor Page hinzufügen
{
"$set": {
"Age": 54
}
}
Native Mongo QueryMongo C# Driver
{
"$push": {
"Adjustments": [{
"OldPrice": 100.0,
"NewPrice": 200.0,
"Reason": "…"
}]
},
"$set": {
"Price": 200.0
}
}
Native Mongo QueryMongo C# Driver
Replace oder Update?
▪ Für OOP-Entwickler ist das einfache Ersetzen beliebt
▪ Beim Ersetzen wird das Dokument erst geladen, verändert
und abgespeichert
▪ Beim Update wird direkt beim Datensatz der Wert verändert
▪ Ein Update ist daher wesentlich Performanter
▪ Ein Update sorgt ebenfalls für stabilere Datenzustände
(Verringert Concurrency-Probleme)
Abfragen Haste mal nen Datensatz?
GridFS Mit Binären-Datensätzen arbeiten
Eine Razor Page hinzufügen
LINQ Denken in LINQ!
LINQ Support
▪ Die AsQueryable-Methode erweitert eine MongoCollection um die
LINQ-Funktionalität
▪ LINQ-Befehle werden direkt als native Aggregation-Befehle
übersetzt
▪ Ideal für komplexe Abfragen
▪ http://mongodb.github.io/mongo-csharp-driver/2.7/reference/driver/crud/linq/
aggregate{
aggregate:"rentals",
pipeline:[
{
$project:{
PriceRange:{
$subtract:[
"$Price",
{
$mod:[
"$Price",
500.0
]
}
]
},
_id:0
}
},
...
...
{
$group:{
_id:"$PriceRange",
__agg0:{
$sum:1
}
}
},
{
$project:{
GroupPriceRange:"$_id",
Count:"$__agg0",
_id:0
}
},
{
$sort:{
GroupPriceRange:1
}
}
],
cursor:{
},
$db:"realestate"
}
Generierter Abfragecode
Fluent
Aggregation API
Native Kommandos, ganz einfach!
Die Fluent Aggregation API
▪ Die Aggregate-Methode erweitert eine MongoCollection um
weitere Extension-Methods, die direkt hintereinander Aufgerufen
werden können
▪ Diese basieren auf den gleichen nativen Mongo-Operatoren
▪ Project, Group, SortBy, Match, Limit, Skip, Unwind usw.
▪ Ideal für komplexe Abfragen
aggregate{
aggregate:"rentals",
pipeline:[
{
$project:{
PriceRange:{
$subtract:[
"$Price",
{
$mod:[
"$Price",
500.0
]
}
]
},
_id:0
}
},
...
...
{
$group:{
_id:"$PriceRange",
Count:{
$sum:1
}
}
},
{
$sort:{
_id:1
}
}
],
cursor:{
},
$db:"realestate"
}
Generierter Abfragecode
LINQ vs. Fluent Aggregation API
▪ Beide sind ideal für komplexe Abfragen
▪ LINQ-Abfragen werden in den meisten Fällen sehr gut in native
Abfragen übersetzt
▪ LINQ ist ideal für .NET-Entwickler, die es bereits gewohnt sind damit zu
arbeiten
▪ Fluent Aggregation API, ist ideal für Entwickler die eher die native
Mongo API gewohnt sind
▪ Oder mehr Kontrolle über den tatsächlichen Abfragecode zur
Datenbank möchten
▪ In der Regel sollte sich ein Team darüber vorher abstimmen, welche der
beiden Möglichkeiten Hauptsächlich zum Einsatz kommen soll
CRUD
Das ABC für die
Datenverarbeitung
Create
Read
Update
Delete
Eventing Reagieren auf Ereignisse
Eventing
▪ Der Mongo C# Driver bietet unterschiedliche Events an
▪ Es hilft beim Logging oder bei der Diagnose der
Datenkommunikation
▪ Es gibt unterschiedliche Event Types
▪ http://mongodb.github.io/mongo-csharp-driver/2.7/reference/driver_core/events/
Event Types
▪ Allgemein
▪ ConnectionPoolAddedConnectionEvent
▪ Command-Events
▪ CommandStartedEvent, CommandSucceededEvent und
CommandFailedEvent
▪ Es sollten keine unnötigen Command-Events abonniert werden, da dies
unnötig die Performance beeinflusst
Joins Daten zusammenführen
Joins
▪ Dokumentenorientierte Datenbanken sollten in der Regel atomare
Dokumente beinhalten
▪ Es ist dennoch legitim unabhängige Dokumente zu erzeugen, die
eine Beziehung zueinander haben
▪ Das Zusammenführen beider Dokumente kann Client- und Server-
Seitig durchgeführt werden
▪ Die Client-Seitige Lösung wird aus Performancesicht nicht
empfohlen (Doppelte Anfragen an den Server)
▪ Server-Seitig bietet MongoDB dazu den Lookup-Operator
Client-Seitiger Join
Server-Seitiger Join
http://about.me/Gregor.Biswanger
Ich freue mich auf Feedback!
Vielen Dank!

More Related Content

What's hot

Percona server for MySQL 제품 소개
Percona server for MySQL 제품 소개Percona server for MySQL 제품 소개
Percona server for MySQL 제품 소개NeoClova
 
Découverte du SPARQL endpoint de HAL
Découverte du SPARQL endpoint de HALDécouverte du SPARQL endpoint de HAL
Découverte du SPARQL endpoint de HALGautier Poupeau
 
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time ActionApache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time ActionJoão Gabriel Lima
 
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveMySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveSveta Smirnova
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMike Dirolf
 
RDBMS oder NoSQL – warum nicht beides?
RDBMS oder NoSQL – warum nicht beides?RDBMS oder NoSQL – warum nicht beides?
RDBMS oder NoSQL – warum nicht beides?Capgemini
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMongoDB
 
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정PgDay.Seoul
 
Azure Database for MySQL
Azure Database for MySQLAzure Database for MySQL
Azure Database for MySQLrockplace
 
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWSAmazon Web Services Korea
 
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...DataWorks Summit
 
Cassandra Operations at Netflix
Cassandra Operations at NetflixCassandra Operations at Netflix
Cassandra Operations at Netflixgreggulrich
 
Migrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMigrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMongoDB
 
Migrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMigrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMongoDB
 
Strata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed databaseStrata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed databaseJulien Le Dem
 
Architecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash WorkshopArchitecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash WorkshopSudhir Tonse
 
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )SANG WON PARK
 

What's hot (20)

Percona server for MySQL 제품 소개
Percona server for MySQL 제품 소개Percona server for MySQL 제품 소개
Percona server for MySQL 제품 소개
 
Découverte du SPARQL endpoint de HAL
Découverte du SPARQL endpoint de HALDécouverte du SPARQL endpoint de HAL
Découverte du SPARQL endpoint de HAL
 
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time ActionApache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
 
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveMySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to Have
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
RDBMS oder NoSQL – warum nicht beides?
RDBMS oder NoSQL – warum nicht beides?RDBMS oder NoSQL – warum nicht beides?
RDBMS oder NoSQL – warum nicht beides?
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
 
Azure Database for MySQL
Azure Database for MySQLAzure Database for MySQL
Azure Database for MySQL
 
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS
 
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
Unify Stream and Batch Processing using Dataflow, a Portable Programmable Mod...
 
MongodB Internals
MongodB InternalsMongodB Internals
MongodB Internals
 
Cassandra Operations at Netflix
Cassandra Operations at NetflixCassandra Operations at Netflix
Cassandra Operations at Netflix
 
Migrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMigrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDB
 
Migrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMigrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDB
 
ELK Stack
ELK StackELK Stack
ELK Stack
 
MongoDB
MongoDBMongoDB
MongoDB
 
Strata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed databaseStrata NY 2018: The deconstructed database
Strata NY 2018: The deconstructed database
 
Architecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash WorkshopArchitecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash Workshop
 
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
 

Similar to Yes zu NoSQL mit MongoDB für .NET-Entwickler

MongoDB Munich 2012: Spring Data MongoDB
MongoDB Munich 2012: Spring Data MongoDBMongoDB Munich 2012: Spring Data MongoDB
MongoDB Munich 2012: Spring Data MongoDBTobias Trelle
 
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungBack to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungMongoDB
 
mongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - GrundlagenmongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - Grundlageninovex GmbH
 
Einführung in NoSQL-Datenbanken
Einführung in NoSQL-DatenbankenEinführung in NoSQL-Datenbanken
Einführung in NoSQL-DatenbankenTobias Trelle
 
CSharp development with MongoDB-CSharp
CSharp development with MongoDB-CSharpCSharp development with MongoDB-CSharp
CSharp development with MongoDB-CSharplanwin
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookUlrich Krause
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der PraxisTobias Kraft
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...Marc Müller
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerGregor Biswanger
 
Meet Magento - High performance magento
Meet Magento - High performance magentoMeet Magento - High performance magento
Meet Magento - High performance magentoAOE
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzKai Donato
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core ApplicationsRobin Sedlaczek
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga
 
Back to Basics – Webinar 4: Fortschrittliche Indizierung, Text- und Geoindizes
Back to Basics – Webinar 4: Fortschrittliche Indizierung, Text- und GeoindizesBack to Basics – Webinar 4: Fortschrittliche Indizierung, Text- und Geoindizes
Back to Basics – Webinar 4: Fortschrittliche Indizierung, Text- und GeoindizesMongoDB
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 

Similar to Yes zu NoSQL mit MongoDB für .NET-Entwickler (20)

MongoDB Munich 2012: Spring Data MongoDB
MongoDB Munich 2012: Spring Data MongoDBMongoDB Munich 2012: Spring Data MongoDB
MongoDB Munich 2012: Spring Data MongoDB
 
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungBack to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
 
mongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - GrundlagenmongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - Grundlagen
 
JSF vs. GWT? JSF und GWT!
JSF vs. GWT? JSF und GWT!JSF vs. GWT? JSF und GWT!
JSF vs. GWT? JSF und GWT!
 
Einführung in NoSQL-Datenbanken
Einführung in NoSQL-DatenbankenEinführung in NoSQL-Datenbanken
Einführung in NoSQL-Datenbanken
 
CSharp development with MongoDB-CSharp
CSharp development with MongoDB-CSharpCSharp development with MongoDB-CSharp
CSharp development with MongoDB-CSharp
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen Hacker
 
Meet Magento - High performance magento
Meet Magento - High performance magentoMeet Magento - High performance magento
Meet Magento - High performance magento
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
 
Back to Basics – Webinar 4: Fortschrittliche Indizierung, Text- und Geoindizes
Back to Basics – Webinar 4: Fortschrittliche Indizierung, Text- und GeoindizesBack to Basics – Webinar 4: Fortschrittliche Indizierung, Text- und Geoindizes
Back to Basics – Webinar 4: Fortschrittliche Indizierung, Text- und Geoindizes
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Oracle forms goes docker
Oracle forms goes dockerOracle forms goes docker
Oracle forms goes docker
 

More from Gregor Biswanger

Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Gregor Biswanger
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreGregor Biswanger
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsGregor Biswanger
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Gregor Biswanger
 
Clevere Tipps zum Thema Facebook Posts
Clevere Tipps zum Thema Facebook PostsClevere Tipps zum Thema Facebook Posts
Clevere Tipps zum Thema Facebook PostsGregor Biswanger
 
Responsive Webdesign mit Bootstrap
Responsive Webdesign mit BootstrapResponsive Webdesign mit Bootstrap
Responsive Webdesign mit BootstrapGregor Biswanger
 
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...Gregor Biswanger
 
Multi Touch.Prio.Conference 2009
Multi Touch.Prio.Conference 2009Multi Touch.Prio.Conference 2009
Multi Touch.Prio.Conference 2009Gregor Biswanger
 

More from Gregor Biswanger (9)

Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
 
Clevere Tipps zum Thema Facebook Posts
Clevere Tipps zum Thema Facebook PostsClevere Tipps zum Thema Facebook Posts
Clevere Tipps zum Thema Facebook Posts
 
Responsive Webdesign mit Bootstrap
Responsive Webdesign mit BootstrapResponsive Webdesign mit Bootstrap
Responsive Webdesign mit Bootstrap
 
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
 
Multi Touch.Prio.Conference 2009
Multi Touch.Prio.Conference 2009Multi Touch.Prio.Conference 2009
Multi Touch.Prio.Conference 2009
 

Yes zu NoSQL mit MongoDB für .NET-Entwickler