Laden...

o/r Mapping im .NET Bereich

Erstellt von radeksm vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.975 Views
R
radeksm Themenstarter:in
17 Beiträge seit 2010
vor 14 Jahren
o/r Mapping im .NET Bereich

verwendetes Datenbanksystem: Oracle und MSSQL

Hallo,

ich bin neu hier und möchte euch fragen welchen O/R Mapper würdet ihr mir empfehlen im Bereich Oracle und MSSQL DB. Das Projekt was ich gerade anfange liegt im Bereich Lagerverwaltung, also wird ein Monster-DB sein. Vielleicht könnt ihr mir ein paar Tipps geben. Ich werde .NET 3.5 und Visual Studio 2008 benutzen. Demnächst kommt Visual Studio 2010, wird dort etwas anders sein bzg. O/R Mapping?

Daanke und Grüße

1.564 Beiträge seit 2007
vor 14 Jahren

Hallo radeksm

Erstmal willkommen auf myCSharp.de! 😃

Zum O/R-Mapper:
Nach heutigem Stand ist NHibernate sicher der mächtigste Mapper im .NET Bereich, der Microsoft Entity Framework hängt da definitiv noch hinterher. Allerdings wird EF mit .NET 4.0 deutlich verbessert und Microsoft hat auf der PDC 2009 klar angekündigt den EF massiv zu pushen und auch in andere Produkte miteinzubeziehen.

Von dem her würde ich dir von den bekannten Mappern eigentlich EF empfehlen.

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

R
radeksm Themenstarter:in
17 Beiträge seit 2010
vor 14 Jahren

Von dem her würde ich dir von den bekannten Mappern eigentlich EF empfehlen.
Grüße
Flo

danke für die Antwort. Ist der EF DB unabhängig? kann er sowohl mit Oracle als auch mit MSSQL arbeiten?

Viele schreiben eigenen O/R Mapper, ist das der falsche weg? d.h. soll man immer einen Mapper wie EF, NHibernate usw. nehmen? oder gibt es pro und contra.

Grüße

1.564 Beiträge seit 2007
vor 14 Jahren

Hi radeksm

Ist der EF DB unabhängig? kann er sowohl mit Oracle als auch mit MSSQL arbeiten?

Ja, EF läuft sowohl mit Oracle, als auch mit SQL Server, und noch mit einigen anderen Datenbanken.

Viele schreiben eigenen O/R Mapper, ist das der falsche weg? d.h. soll man immer einen Mapper wie EF, NHibernate usw. nehmen? oder gibt es pro und contra.

Jetzt wird's (natürlich) subjektiv...

Kommt drauf an.

In kleineren Projekten bist du mit einem der heutigen O/R-Mappern auf dem richtigen Weg. Nehmen viel lästige Arbeit ab und funktionieren soweit wirklich gut.

In großen Projekten schränken sie bei Spezialfällen allerdings auch ein. Ich habe da gerade eine sehr leidliche Erfahrung mit gemacht, weil mir ein O/R-Mapper vorgeschrieben wurde! Ganz ehrlich wenn das Projekt groß werden soll, dann rate ich ab. Wenn dir die Ansätze fehlen kann ich dir ein super Buch empfehlen, welches soweit alle wichtigen Komponenten der unterschiedlichen Layer super erklärt:
Patterns of Enterprise Application Architecture von Martin Fowler

Einige Pros und Contras findest du zum einen hier:
Sind O/R-Mapper potentiell ein schleichender Tod?
Außerdem habe ich selbst vor ein paar Tagen einen Blog Eintrag zum Thema geschrieben
O/R-Mapper - Enemy Mine

Ich arbeite/forsche derzeit an einem ORM-ähnlichen Framework der alle (mir gekannten) Einschränkungen aufheben soll, dauert aber sicher noch.

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

R
radeksm Themenstarter:in
17 Beiträge seit 2010
vor 14 Jahren

Hallo Florian,

vielen Dank für die nützliche Infos. Ich habe mal nur mit TopLink gearbeitet und das war vor 6 jahren.

Grüße

F
10.010 Beiträge seit 2004
vor 14 Jahren

Also ich kann/will mir das leben ohne ORMapper und Migration garnicht mehr vorstellen.
Egal ob klein oder grosses Projekt.

Allerdings habe ich die Sourcen zum Mapper seit jahren immer wieder verfeinert.
Also angefangen mit dem "besten" ( Subjektiv ) den es damals gab, und den
dann immer bei den von Florian entdeckten Engpässen angepasst.

Mann sollte aber gleich weiter denken, als nur bis zum Mappen.
DB Migration ( Versionsverwaltung ) sollte man auch gleich so machen.

Migration.NET oder FluentMigration sind da stichworte.

H
208 Beiträge seit 2008
vor 14 Jahren

Mit anderen Worten, Du benutzt jetzt quasi Deinen "eigenen" OR-Mapper, nur daß er halt eine Anpassung von Version X vom Open Source-Mapper Y ist?

Auf welchem Mapper hast Du denn Deinen aufgebaut? Würde mich mal interessieren.

F
10.010 Beiträge seit 2004
vor 14 Jahren

Retina.net

1.457 Beiträge seit 2004
vor 14 Jahren

Ich persönlich habe in meinem großen Projekt keinen OR Mapper im Einsatz. Warum? Damals als das Projekt begonnen wurde, waren die OR Mapper nicht zufriedenstellend. Ich habe aber kleine Projekte mit Retina.NET und DevExpress XPO durchgeführt.

Wenn man einen OR Mapper einsetzt sollte man diesen auch gut kennen und mehrere Testszenarien durchführen. Das ist meine persönliche Meinung da jeder OR Mapper seine Eigenheiten hat.

@FZelle: Sind deine Änderungen auch zurückgeflossen? 😉 FluentMigrator.NET kannte ich bis jetzt nicht. Danke für den Hinweis.

F
10.010 Beiträge seit 2004
vor 14 Jahren

Leider nicht.

Hatte damals nach dem Going Live zu viel zu tun ( eigentlich bis jetzt ) und dann
keine Zeit gehabt.

Andres war aber auch mit seinen Teilen so weit weg von der Version mit der ich
angefangen hatte, das es eine Heidenarbeit gewesen wäre.

Mit Migrator.NET ( bzw seinem Ableger FluentMigrator ) sind ja auch Teile
von mir jetzt im Einsatz, die ich vorher monolitisch in Retina Eingebaut hatte.

Mal sehen, soll jetzt etwas ruhiger werden, vielleicht.......