Mehdi Gholam
13.01.2020, 15:44 Uhr
Projekt noDB
Manchmal geht es auch ganz ohne Datenbank. Entwickler Mehdi Gholam stellt eine Lösung vor, die sich zwischen einer RaptorDB und programminterner Datenspeicherung umschalten lässt.
Der britische Entwickler Mehdi Gholam nutzt RaptorDB schon seit langer Zeit in der Produktion. Vor einiger Zeit hat er sich dann gefragt, ober für eines seiner Projekte gänzlich auf eine Datenbank-Engine verzichten könnte, ohne dabei Funktionalitäten einzubüßen. Mit seiner Lösung noDB, welche eine Liste von Objekten, Dynamic LINQ to Objects und eine SQL-ähnliche Abfragesprache hat er sein Ziel erreicht und stellt es in einem Artikel auf CodeProject vor.
Er konnte die noDB-Funktion zu seiner App hinzufügen und dann über eine Konfigurationseinstellung nahtlos zwischen RaptorDB und Dynamic LINQ to Objecs wechseln, wobei die Funktionalität des Sortierens und Auslagerns für den Benutzer gleich geblieben ist. Insbesondere hat er auch Dynamic LINQ to Objects etwas umgebaut, um die Abfragemöglichkeiten ähnlicher zu SQL zu gestalten und beispielsweise anstelle von "list.Where("name.Contains(\"Peter\") and serial<100");" die Abfrage "list.Where("name = \"Peter\" and serial<100");" verwenden zu können.
Gholam räumt ein, dass diese Lösung nicht für jeden Fall taugt. Allerdings ist sie sinnvoll, wenn die Daten in der Größe begrenzt sind und in den Speicher passen. Als mögliche Verwendungen nennt er das Caching von Daten innerhalb einer Anwendung für schnellen Zugriff ohne Roundtrip, Apps mit relativ wenig Bedarf an Daten oder benutzerdefinierte Abfragemöglichkeiten hinter einem Web-API. In der Beschreibung seiner Lösung auf CodeProject stellt er eine Beispielanwendung von noDB in Form von Quelltexten sowie als Exe zum Download zur Verfügung.