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
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ß.
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
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ß.
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
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.
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.
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.
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.......