NHibernate O/R Mapper für .Net

Gentle.NET hat mit NHibernate nicht besonders viel zu tun. NHibernate spielt quasi Database Abstraction Layer hin zu einer beliebigen relationalen Datenbank.

Gentle.NET hingegeben ist im Grunde ein ODBMS, sprich ein Object oriented Database Management System. Das heißt es werden Objekte in einen Store persistiert. Die Unterschiede zwischen ODBMSen und RDBMSen sind mitunter schon nicht so klein. Mal abgesehen von den Vor- und Nachteilen beider. Ich kann das Thema aber gerne näher ausführen :)
 
Hi,

ich wollte mit NHibernate in nächster Zeit ein Projekt beginnen hatte bisher aber nur kurz Zeit die mitgelieferten Beispiele durchzuspielen.
Hat einer von euch schon mal ein Projekt damit erfolgreich beendet? Sprich Grenzen evtl. Probleme entdeckt die erst im praktischen Einsatz auftauchen. Z.B. Probleme mit Autowerten/Fremdschlüsseln etc. ?
 
@Norbert

Hallo!

Thx erstmal für die Antwort.
Das NHibernate objektorientierten Zugriff auf Datenbanken liefert hat mir der Christian Fein schon mal erklärt. Biespiel
Das find ich so interssant das ich gerne mehr darüber erfahren will. Leider lässt meine aktuelle Aufgabenstellung auf Arbeit keine weiteren Recherchen zu.
Das Beispiel zu Gentle.NET sieht für mich eigentlich genau so aus.
Und aus beiden einleitenden Absätzen der Beispiele geht für mich auch so ziemlich das gleiche hervor. Berichtige mich bitte falls ich mich irren sollte.
Du würdest mir und den anderen, die damit noch keine Erfahrung haben, eine großen Gefallen tun, wenn Du die Vor- & Nachteile "näher ausführst". ;)

Gruß, cosmo
 
Nein, falsch ...

mit NHibernate greifst du objektorientiert auf relationale Datenbanken zu.

Mit Gentle.NET greifst du objektorientiert auf Objektorientierte Datenbanken zu. Das ist ein nicht kleiner Unterschied.
 
Norbert Eder hat gesagt.:
mit NHibernate greifst du objektorientiert auf relationale Datenbanken zu.

Mit Gentle.NET greifst du objektorientiert auf Objektorientierte Datenbanken zu. Das ist ein nicht kleiner Unterschied.

Das ist leider ganz und gar falsch. Gentle unterstützt zur Zeit nur relationale Datenbanken, genau wie NHibernate. Dies sollte auch umgehend von der Liste unterstützter DBs hervorgehen - SQL Server, MySQL, PostgreSQL, etc. - dies sind alle relationell.

Yours,
Morten
 
Ah, sorry, hatte es verwechselt. Stimmt. Gentle.NET ist auch nur für relationale Datenbanken.

Aber wer sich mal objektorientierte Datenbanken angucken will, kanns ich ja mal nach db4objects umsehen. Ist gratis und gibts auch für .NET. Feine Sache übrigens, aber hat auch seine Macken.
 
Sorry für die dumme Frage, aber was für einen nutzen hat dieses System? Was kann ich damit machen? Ich habe mir zwar die Beispiele angeschaut werde aber dadurch nicht schlau.
 
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.
 

Neue Beiträge

Zurück