Frage

Hallo scheine ich in einer ORM-Tool Kreuzung zu sein und ein paar Ratschläge von Menschen möchte, die eine ähnliche Herausforderung konfrontiert. In der Vergangenheit meine DAL zu erzeugen mit NetTiers Vorlagen Codesmith benutze ich habe alles war recht gut, aber ich habe beschlossen, dass dies aus irgendeinem Grund fallen zu lassen oder ein anderes.

Also habe ich an einem Scheideweg bin und gefunden haben, die folgenden: -

  1. Ich habe bei PLINQO (LINQ to SQL) sah, die einen großen Job jedoch mit Microsoft unsicher Linq zu tun, scheint dies SQL kann nicht eine gute Wahl sein.
  2. Linq to Entities - Dies ist immer noch in den Kinderschuhen, und ich kann falsch sein, aber die Menschen über die aufblasen beschweren und wie Stored Procedures
  3. Ich habe an nHibernate sah, dies vielleicht die beste Wahl, aber es scheint eine steile Lernkurve zu sein
  4. Das Gleiche gilt für LLBLGen
  5. Subsonic - nicht sicher über diese
  6. Stick mit dem bewährten NetTiers, das aufblasen vergessen, vergessen, dass Sie die Enterprise Library zu verwenden gezwungen sind, die dynamischen SQL-vergiss es schafft, vergessen, dass ihre fast keine Aktivität in den Foren ist, vergessen diese und verwenden Sie es!

Ich besitze bereits Codesmith und will nicht, etwas anderes zu kaufen, wird der Code generiert wird, muss in Medium Trust-Modus arbeiten ...

Es kann andere sein, die ich übersehen haben. Ich bin auf der Suche nach Antworten, die das ORM-Tool erklären, warum lohnt sich einen Blick auf.

Danke Richard

War es hilfreich?

Lösung

Ich habe .netTiers mich auf dem letzten Projekt. aber auf dem einen arbeite ich im Moment wir Linq 2 Entities versuchen. Sie sind recht Linq2EF nicht ausgereift zu sein. Wir meckern über sie die ganze Zeit, die ist, warum wir T4-Vorlagen verwenden, den Code aus der EDMX-Datei zu generieren. Wir änderten auch die Vorlagen, so dass wir Business Objects, Schnittstellen für die Injektion und DAL + DAO haben. Wir freuen uns, wie es funktioniert jetzt. Die gute Sache ist, dass wir LINQ gegen Entities verwenden können.

Ansonsten würde ich auch vorschlagen, Fluent nHibernate ( Link ) zu Ihnen. Es war eines der Dinge, die wir auch in Betracht gezogen. Aber Sie haben viele Dinge auf eigene Faust zu schreiben. Es ist nicht wie Sie es gewohnt sind in .netTiers, wo der gesamte Code für Sie generiert wird.

Da Subsonic 3 ( Link ) ist nur etwa eine Woche alt Ich schlage vor, Sie Hör zu. Nach dem, was ich gesehen habe, sieht es sehr vielversprechend. Und es nutzt T4, so dass Sie schneiden können und in Würfel schneiden Ihren Bedürfnissen gerecht zu werden.

Andere Tipps

Ich habe versucht, ein paar für ein paar Wochen und schließlich ließ sich mit NHibernate. Es ist sehr einfach anzupassen. Es gibt eine Lernkurve und es dauert etwas länger bis zu setzen, dass so etwas wie LINQ to SQL, aber der Vorteil davon ist, dass es nicht wie Magie scheint. Sie werden verstehen, wie es funktioniert und wird es anpassen können, genau an Ihre Bedürfnisse anzupassen. Die Gemeinde ist auch sehr gut und es gibt eine Menge der verfügbaren Dokumentation. Es scheint mir, eine gute Balance zwischen einem modernen ORM zu sein (keine Code-Generierung, können POCO) und Reife.

Sie könnten versuchen, DataObjects.NET. Das ORM verwendet "Code-first" -Ansatz unterstützt DB-Schema-Upgrade und LINQ. Sehen Sie sich diese kurze Beschreibung http://www.x-tensive.com/Products/DO/ .

Ich denke, dass die beiden namhaftesten und starke ORM-Tools jetzt sind nHibernate und LLBLGen Pro .

nHibernate = Sehr Domain Driven orientiert.

LLBLGen Pro = Daten orientiert gesteuert.

Sie sind beide ausgezeichnet, und für jedes Projekt je nach ist es die Natur eine geeignetere über die andere sein können. Es ist auch häufig kommt die persönliche Wahl und Vorlieben oder auch die Kultur des Entwicklungsteams.

Wie gesagt Am Ende aber insgesamt sind sie beide sehr gut und sie haben beide ihre leichte Vorteile / Nachteile.

Aus Gründen ein ORM verwenden hier ein Link zu einem Blog-Eintrag von Glenn Block- was alles wirklich sagt. Was meine Erfahrung, gerade vor einem Jahr über die ich suchte einen ORM zu verwenden und ich wählte NHibernate.

Persistance ich ist ein Problem gelöst, über irgendeine Form der Zuordnung von meinem Domain-Modell auf meine relationalen Daten ist es etwas, was ich habe, um über mehr keine Sorge. Ich sah zu SQL bei Linq, aber es hat einfach nicht geben Sie mir genug Kontrolle darüber, wie Daten auf meine Objekte abgebildet wurde und das Entity Framework war nicht annähernd reif genug für meinen Geschmack. Ein weiteres Großprojekt einige meiner Mannschaft arbeiteten verwendet NetTiers und Codesmith und wie Sie sagen, die aufblasen, Code-Generierung (und die schiere Menge davon) hat mich ein bisschen quesy fühlen. Am Ende entschied ich mich für NHibernate, weil mir, ist es eines der reifsten ORMs da draußen ist und es vorgesehen, Funktionen, die nicht nur ein feinkörniger Objektmodell unterstützen würde, aber es hat in der Abfrage Einrichtungen gebaut und richtet sie an sich andere Leistungsprobleme wie Caching.

Ja, ich gebe zu, dass die Lernkurve ziemlich steil, aber wenn Sie die Zeit investieren, die Vorteile, die Sie riesig aus ihm sind erhalten. Die Blogs von Ayende Rahien und Fabio Maulo eine Mine von Informationen über NHibernate sind. Es gibt einige LINQ-Unterstützung für NHibernate über diese LINQ-Anbieter aber Steve Strong derzeit die zusammen~~POS=TRUNC Funktionen, die volle Unterstützung LINQ in NHibernate bieten. Also es ist alles für NHibernate gehen, aber am Ende des Tages hängt es, was Sie am bequemsten mit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top