Um da ein paar Missverständnissen vorzubeugen, hier eine
Erklärung. Zunächst Aus der Sicht der Entwicklung dieser
Systeme.
Fangen wir mal bei Hibernate an. Das ist ein Framework, um
objektorientiert auf relationale Datenbanken zuzugreifen.
Das Teil ist in Java realisiert.
NHibernate: Das "N" ganz vorne steht für die dot-NET-World.
Es handelt sich um eine Ausführung für ".NET", und versteht
sich als Port von Hibernate. Auch in Java. Auch OpenSource.
Gentle.NET: Fast das selbe wie NHibernate. Aber in C#
realisiert.
Wenn ich das richtig sehe, dann kommen Gentle.NET und
NHibernate aus derselben Feder.
Und was kann man nun damit machen:
Schicht und einfach: Vereinfachten Zugriff auf Datenbanken.
Der Entwickler hat in Gentle.NET jetzt auch den Zugriff auf
SQLite realisiert. Daraus wird schon deutlich, dass es im
wesentlichen um die Bearbeitung von SQL-Datenbanken
geht, also relationalen Datenbanken.
Die genannten "Pakete" verstehen sich als
"persistence framework"; das bedeutet,
dass man -sagen wir mal- "gleichbleibend"
auf die Datenbanken zugreifen kann, aber
nicht mit SQL-Befehlen.
Nur eben auf eine andere Art. Nämlich
objektorientiert. Deswegen findet auch
der Begriff "object persistence framework"
Anwendung.
Anders herum gesagt: Mit (N)Hibernate und
Gentle.NET sich zu beschäftigen ist genau
dann interessant, wenn man Datenbanken
verwenden muss, um große Datenmengen
sinnvoll zu managen. Aus der Sicht des
Programmierers handelt es sich um Bibliotheken,
um die Programmierung von Datenbankzugriffen
zu vereinfachen. Und "Framework" eben deshalb
weil ein ganzes System damit abgedeckt wird.
Am Anfang tauchte der Begriff "Mapper" auf.
Man codiert in einer Sprache (Java oder C#)
und das Framework mapped die Funktionen
nach SQL. Diese Technik wird auch als
objektrelationales Mapping bezeichnet.