| 

.NET C# Java Javascript Exception

8
Hallo zusammen,

vor wenigen Wochen habe ich die Nachricht gelesen, dass Telerik sein ORM OpenAccess jetzt kostenlos zur Verfügung stellt.

Damit ist neben NHibernate und dem Entity Framework ein weiteres ORM Framework in der engeren Auswahl, wenn man nichts bezahlen will/kann/darf,... .

Jetzt habe ich ein Projekt, bei dem SQLite eingesetzt wird. Fürs EF brauch ich da schon die erste 3rd Party Erweiterung System.Data.SQLite. NHibernate kenn ich zuwenig, als dass ich wüßte, ob das out-of-the-box funktioniert. OpenAccess führt SQLite in der Liste der unterstützten Datenbanken.
Ich bin (ehrlich gesagt) schmerzfrei, was den Einsatz neuer Tools angeht. Ich hätte also keine Bedenken OpenAccess oder NHibernate zu nehmen, aus Gründen, die ich hoffe, mit dieser Diskussion von Euch zu erfahren. Diese soll nicht auf den Einsatz mit SQLite begrenzt sein (das ist nur mein Auslöser für diese Diskussion), sondern durchaus Euer subjektives Empfinden (Schimpfen erlaubt ;-)) gegenüber diesen ORMs widerspiegeln.

  • Welche Erfahrungen habt Ihr mit dem ein oder anderen Framework gemacht?
  • Was hat Euch schon enorm Zeit gekostet, weil es einfach nicht funktioniert hat bzw. die Funktionalität komplett gefehlt hat?
  • Was ging besonders leicht von der Hand?
  • Welche API flutscht (subjektiv) besser?
  • Andere Beweggründe...

Danke für Eure Meinung,
Florian

PS: RIP, DataSet.
entity-framework nhibernate oiese openaccess
News:
14.08.2012
ffordermaier 8,3k 2 9
4 Beiträge
3
Mit dem Entity-Framework habe ich bisher nur ein wenig "herumgespielt". Mein persönlicher Eindruck ist, dass das Arbeiten damit sperrig ist. Nachteilig ist vor allen Dingen, dass nur der SQL-Server von Haus aus unterstützt wird.

Ich arbeite eigentlich seit Jahren mit nHibernate. Positiv ist hier die breite Unterstützung von Datenbanken und eine aktive Community, die bei Problemen hilft. Die Einarbeitung ist nicht sher aufwändig. Nachteilig ist das Mapping über XML-Dateien. Insbesondere in einem volatilen Umfeld, wenn es häufige DB-Änderungen gibt, ist die Aktualiserung des Mappings nur über Generatoren effizient möglich. ABhilfe schafft hier jedoch der Aufsatz FluentNhibernate. Dieses Framework ermöglicht es im besten Fall, dass Mapping über Konventionen durchzuführen (d.h. man schreibt POCO's die gewissen Konventionen genügen und FluentNhibernate erzeugt das Mapping automatisch). Wenn du jedoch auf eine bestehende Legacy-Datenbank zugreifen musst, ist auch hier manuelle Arbeit angesagt, insbesondere wenn mit zusammengesetzten Primärschlüsseln gearbeitet wird.

Zu OpenAccess kann ich nur sagen, dass es bereits lange auf dem Markt ist (ich meine das erste Mal vor 10 ca. Jahren davon gehört zu haben) und deshalb mit Sicherheit ausgereift ist.

Gruß
Klaus
15.08.2012
luedi 1,7k 1 9
2
+1 und Danke für Deinen Beitrag.
Du hast also mit NHibernate jahrelange gute Erfahrung, mit Einschränkungen, die im Detail aber wohl bei jeder Technologie auftauchen.
Zwischen den Zeilen lese ich noch, dass Du OpenAccess zumindest eine Chance geben würdest.
Bin gespannt, was andere noch für Erfahrungen beisteuern können...
ffordermaier 15.08.2012
1
au ja, ich wäre auch sehr an Erfahrungen hinsichtlich OpenAccess interessiert!
KN 15.08.2012
1
Dito. Über den Tellerrand zu blicken kann nie schaden, zumal ich aus Zeitmangel mich bisher leider nur mit dem EF beschäftigen konnte (und wegen der Net 4.5 Windows-XP-Einschränkung mittlerweile bis ins Mark erschüttert bin, da man die neuen CodeFirst-Features nicht nutzen kann)
Jens Duczmal 15.08.2012
@Jens: Du kannst doch sehr wohl mit Net4 und EF 4.3.1 mit DBContext feine Code First Features nutzen (zusammen mit den EF Powertools).
Btw. ich bin sehr froh, dass Windows XP nicht mehr komplett unterstützt werden. So kommen die Kunden, bei denen ich vor Ort arbeite, endlich eher mal in die Puschen und wechseln hoffentlich mal auf Win7. WinXP und VS2010 hat mind. einmal am Tag eine OutOfMemory Exception.
judgy 16.08.2012
1
CodeFirst selbst ja, aber der Enum-Support (den ich für lange überfällig halte) vom EF funktioniert nur mit Net 4.5. Und den kann ich für XP-Kunden nicht benutzen.
Jens Duczmal 16.08.2012
4
Wir verwenden OpenAccess und wir sind sehr zufrieden mit dem Tool. Wir hatten uns auch einige andere ORM-Tools angeschaut, aber wir brauchen die Unterstützung von ADS und somit kam nur OpenAccess in Frage. Nach den ersten Tests waren wir sehr zufrieden mit dem Tool. Es gibt einen grafischen Designer in Visual Studio und man hat viele Konfigurationsmöglichkeiten was die Codegenerierung etc betrifft.

Ich persönlich komme mit OpenAccess viel besser klar als z.B. mit NHibernate, aber das ist nur meine persönliche Meinung.

Einer der wichtigsten Punkte, der am Ende noch für OpenAccess gesprochen hat, ist der sehr gute Support. Wir haben OpenAccess schon verwendet als man es noch kaufen musste und somit weiß ich nicht wie jetzt die Supportreaktionszeiten sind, aber der Support war immer extrem gut und schnell.

Edit:
Es gibt 3 große Major-Versionen pro Jahr und somit werden neue Datenbanken, Fehler und Erweiterungen immer schnell in das Tool integriert. Zusätzlich kann es zwischen den großen Updates auch noch Service Packs geben, die kleinere Fehler beheben. Somit kann man sicher sein, dass Fehler sehr schnell behoben werden.
16.08.2012
multi1209 788 8
+1 und Danke. Ich hatte gehofft, dass irgendwer OpenAccess einsetzt und seine Erfahrungen mitteilen kann. Es ist außerdem gut zu wissen, dass es hier auf codekicker jemanden gibt, der OpenAccess schon lange einsetzt und bei Bedarf den anderen helfen kann :-))
ffordermaier 16.08.2012
auch von mir danke und +1!
KN 16.08.2012
4
Ich halte den neuen schlanken Ansatz mit Code First unter dem DBContext mit EF 4.3.1 für eine gelungene Sache. Keine undurchschaubaren EDMX Dateien mehr und man muss die DB gar nicht mehr selbst anfassen: Man entwickelt auf DDD aufbauend seine Domain und läßt darauf aufbauend seine DB erstellen.
Mit dem ganz neu eingeführten DBMigration Schema kann man nun auch die Domain nachträglich ändern und muss nicht die komplette DB neu erstellen.

In Firmen ist EF immer mehr im Kommen, weil man dort eine einheitliche Microsoft Lösung präferiert. Es ersetzt dort nun häufig nHibernate.

Ich denke, Telerik bietet nun seinen (sehr guten) OR Mapper kostenlos an, weil die Qualität des EF mit der Version 4.1 sehr verbessert wurde und Firmen nicht mehr nach Alternativen suchen.

Die DB Provider werden sicher jetzt so langsam für das EF nachziehen.
Wenn man eh die super (!) Telerik Ultimate Collection lizensiert hat. Kann man auch mal das JustMock Mocking Framework zusammen mit dem ORM Mapper anschauen.
16.08.2012
judgy 2,9k 8
+1 und auch Dir ein Dankeschön für Deine Einschätzung.
EF DbContext und CodeFirst ist wirklich eine feine Sache. Es reift und mittlerweile machts auch Spass.
Ich denke außerdem ebenfalls wie Du, dass viele Firmen eine MS-only Lösung bevorzugen. Sie gehen aber aus diesem meist nicht näher definierbaren Willen IMHO Kompromisse ein, die möglicherweise gar nicht notwendig wären.
ffordermaier 16.08.2012
auch hier noch einmal Danke und +1!
KN 16.08.2012
1
@ffordermaier: Was meinst Du für Kompromisse? Ich bin als Freelancer viel unterwegs. Bei der Auswahl der Technologie muss man natürlich auch immer ein Auge darauf haben, welche Kompetenzen in der Firma vorhanden sind und was noch zusätzlich aufgebaut werden muss. Hier ist es sinnvoll, sich an dem Mainstream zu orientieren. Früher war dies IMO eher nHibernate, nun ist es das EF. Meinst Du dies mit Kompromiss?
judgy 17.08.2012
Ich mein damit, dass einige einfach nur den Wunsch haben "alles aus einer Hand, (hier im Beispiel MS)" zu haben, ohne zu wissen, warum bzw. was Ihnen entgeht. Dadurch wird der Blick über den Tellerrand per se vermieden und Technologieentscheidungen werden auf dem banalen Wunsch nach homogener 3rdParty Struktur aufgebaut.
Wie Du sagst, es gehört zu unseren Aufgaben, dies kritisch zu hinterfragen und die Alternativen zu kennen.
ffordermaier 17.08.2012
1
Kleiner Nachtrag: in der Blogs&News-Ecke von ck habe ich dazu gerade noch diesen Beitrag gefunden.
24.09.2012
Matthias Hlawatsch 13,1k 3 9
Danke für den Link auf den verwandten Beitrag.
Ich hatte mittlerweile Gelegenheit OpenAccess zu evaluieren, bin aber im Moment zeitlich zu sehr eingespannt, als dass ich hier meine Erfahrungen dokumentieren könnte. Sobald es zeitlich klappt, liefere ich einen ausführlichen Bericht über meine Erfahrungen...
ffordermaier 24.09.2012

Stelle deine Entity-framework-Frage jetzt!