2009-06-28 24 views
7

Starten eines neuen Projekts ist es 100% neue Entwicklung gegen eine sehr große (300 Tabellen) Legacy-Datenbank. Die Datenbank stimmt nicht so gut mit dem Geschäftsmodell überein, daher waren meine anfänglichen Überlegungen, ein ORM zu verwenden.Brauchen Sie Rat für große .net Datenzugriffsschicht

Ich habe einen Proof of Concept mit NHibernate ziemlich gut ... aber viel Management Push-Back auf die Verwendung von "nicht unterstützten" "Open-Source-Tool.

Irgendwelche Ratschläge zu anderen ORM-Lösung zu verwenden? oder Tipp zum NHibernate-Argument?

Vielen Dank.

+2

Wenn Sie NHibernate oder etwas anderes verwenden, würde ich dem Management auf jeden Fall erklären, dass die Verwendung von "nicht unterstützten" Open-Source-Tools kein größeres Risiko darstellt als die Verwendung kommerzieller Produkte. Es ist Ihre Aufgabe als Manager, zu verstehen, wie Open-Source funktioniert und Risiken in der Entwicklung richtig einzuschätzen. Inkompetente Manager sind keine Entschuldigung, um zu einem minderwertigen Produkt zu wechseln (es sei denn, Sie sind Dilbert natürlich). – Paco

+0

Chiming in NHProf ist ein sehr nützliches Werkzeug, wenn Sie NHibernate verwenden. – jfar

+2

Nur eine aktualisierte ... wir gingen die NHibernate Route !!! Wir haben einen Proof of Concept mit ein paar der führenden Orms und NHibernate gewonnen. Erklärte einfach die Fakten zum Management von Risiken und Belohnungen und sie genehmigten die Entscheidung. – Todd

Antwort

1

Ich habe Entity Framework in meinen letzten beiden Projekten verwendet, diese hatten eine ähnliche Anzahl von Tabellen. Es hat gut für uns gearbeitet. Wir teilen die Tabellen in mehrere Entity Framework-Modelle auf, max. 80 Tische in einem Modell.

Entity Framework ist leichter an das Management zu verkaufen, da es Microsoft ist.

+1

re: "X ist einfacher zu Management zu verkaufen, da es Microsoft ist." ... Ich wünschte, dies wäre aus echten Gründen wahr, nicht nur weil Microsoft groß ist und viel Geld hat. Manchmal sind ihre Sachen nicht so scharf. –

6

Wenn Ihr Management bereit ist, für einen kommerziellen ORM zu zahlen, dann sollten Sie diese Route in Betracht ziehen.

Eine Einschränkung, die Sie (derzeit) mit NHibernate haben können (außer Sie sind bereit, Alpha-Code aus NHibernateContrib-Projekt zu verwenden) besteht darin, dass Sie derzeit nicht den Luxus haben, einen LINQ/IQueryable-Mechanismus zu verwenden zunehmend vertraute LINQ-Syntax. Sie werden immer noch die sehr flexiblen Kriterien und HQl-Mechanismen haben, es hängt nur davon ab, ob Sie anfangen wollen, alles in die LINQ-Methode zu investieren oder nicht?

Aus meiner Forschung so weit Sie haben eine ganze Reihe von Optionen (alle Unterstützung LINQ Abfrage):

Raw Entity Framework (es gibt kommerzielle Partner, die Werkzeuge und Funktionen auf es zu hinzufügen.)

Lightspeed scheint wie eine Art von LINQ-to [viele DBs] mit guter Design-Zeit-Unterstützung.

Telerik OpenAccess sieht ähnlich Lightspeed.

IdeaBlade DevForce ist auf EntityFremework Buts gebaut, fügt einige Benutzerfreundlichkeit Features hinzu. Wenn Sie SQL Server nicht verwenden, würde die Verwendung von IdeaBlade außerdem den Kauf eines ORACLE-EF-Anbieters von einem separaten Anbieter wie DevArt oder DataDirect erfordern.

LLBLGen Pro Gute Auswahl an Funktionen und aktive Entwicklung. Schon lange Zeit.

DevArt auch gute Datenzugriffstools und Hersteller-spezifische Anbieter für LINQ.

[UPDATE]Production-ready LINQ support ist jetzt in NHibernate verfügbar!

4

Warum fragst du das Management nicht?

Wie viele Datenzugriffslösungen hat Microsoft in der Zeit, in der es Hibernate/NHibernate gab, erstellt und beendet?

  • ADO
  • ADO.NET
  • stark typisierte Datasets
  • LINQ2SQL
  • Entity Framework
  • Entity Framework V2

Während dieser Zeit Hibernate/NHibernate wurden mehr und mehr reifen bekommen. Es geht nicht weg.

+0

Plus NHProf ist ein großes Verkaufsargument, nennen Sie ein Microsoft ORM, das sein eigenes Support-Tool hat? – jfar

+0

Upvote für NHibernate. Trotzdem warte ich verzweifelt auf LINQ-Unterstützung. ^^ –