Posts Tagged ‘MongoDB’

MongoDB in .NET Primi approcci

Iniziamo qui i primi esperimenti con MongoDB con .NET. Assunto di aver scaricato dal sito di MongoDB tutto il necessario e lanciato il servizio MongoDB da consolle non rimane altro che scaricare i driver .NET C# che ci permetteranno di usare il motore DB da Visual Studio .
I drivers presi in considerazione in questi articoli sono: MongoDB-CSharp scaricabili dal repository GitHub -> Link
Ne esistono altri, ma credo che i più completi siano quelli presi in esame in questo breve articolo.

Aperto Visual Studio e referenziato i drivers MongoDB-CSharp siamo pronti per partire con un nuovo progetto. Un semplice progettino consolle per iniziare potrebbe essere la classica rubrica telefonica:

'Creazione e Inserimento Dati

Mongo mongo = new Mongo();
mongo.Connect();
Database db = mongo.getDB("RubricaDb");
IMongoCollection posts = db.GetCollection("Nominativi");

Document anagrafe = new Document();
anagrafe["Nome"] = "Gennaro";
anagrafe["Cognome"] = "Riccio";
anagrafe["Telefono"]="+3900029382783678";
anagrafe["Indirizzo"]="Via Ciccio Buffo 23 ";

posts.Insert(anagrafe);

'Ricerca dei dati nel DB

Document prova = new Document();
prova["Nome"] = "Gennaro";
ICursor cursor = posts.Find(prova);
foreach (Document document in cursor.Documents)
{
Console.WriteLine(document.ToString());
}

Come si puo vedere dal piccolo esempio su l’approcio all’uso di MongoDB è molto semplice, per ottenere risultati in tempi brevi e al massimo delle prestazioni.
Al metodo Connect si puo passare l’indirizzo del server dove risiede l’istanza MongoDB:  mongo.Connect(“10.10.0.1″);

Ovviamente questa è solo la punta dell’iceberg i drivers C# e MongoDB offrono potenzialità molto elevate di quelle viste nel piccolo esempio di cui su. Nelle prossime puntate cercherò di approfondire altre tematiche interessanti offerte dal NOSQL Db in oggetto.

MongoDB in .NET

Per un mio progètto casalingo ero alla ricerca di un alternativa ai tradizionali data base relazionali di cui faccio uso e consumo nell’ambito lavorativo. Essendo a conoscenza del nuovo movimento filosofico NO-SQL mi sono imbattuto in MongoDB un sistema di archiviazione orientato agli oggetti, più propriamente orientato ai documenti.

MongoDB come viene definito dallo stesso autore è il ponte di congiunzione tra sistemi di archiviazione Key-Value (chiave-valore) e i tradizionali sistemi RDBMS, fornendo un sistema altamente scalabile, dalle alte prestazioni e di semplice utilizzo.

Le principali caratteristiche di MongoDB sono:

  • Orientato ai Documenti sfruttando il sistema JSON.
  • Supporto Full Index, ogni attributo può essere indicizzato
  • Replica e Alta Disponibilità, mirroring dei db su tutta la lan/wan e disponibilità immediata
  • Auto-Sharding, scalabilità orizzontale senza compromettere la funzionalià
  • Querying, sfruttando i modelli di Rich e Document-based query.
  • GridFS, storicizzazione di file di qualsiasi dimensione (BLOB) senza compromossione di memoria

MongoDB è scritto in C++ ed è compilato in modo da poter essere esguito in due modalità 32 e 64bit, la versione a 32bit è limitata a solo 2GB di dati, mentre per quella a 64bit non ci sono limiti per l’occupazione per i DB. Il limite della 32bit potrebbe sembrare limitativo, la scelta è dovuta principalmente a lasciare il codice nativo di MongoDB semplice e pulito.

MongoDB è orientato ai principali linguaggi di programmazione C,C++,Phyton, Ruby etc.. e non poteva mancare il nostro amato .NET C#. Per quest’ultimo sono presenti diversi drivers nel prossimo articolo analizzerò uno di essi con esempi esplicativi per iniziare ad usare subito MongoDB sotto .NET