web-dev-qa-db-de.com

Bester ORM zur Verwendung mit C # 4.0

am besten ist es, ein ORM wie Nhibertate oder Entity Framework zu verwenden oder ein Kunden-ORM durchzuführen. Ich werde dieses ORM für ein C # 4.0-Projekt verwenden

32
ma7moud

Wenn Sie etwas Geld ausgeben können, schauen Sie sich auf jeden Fall LLBLGEn Pro 3. an

  • volle .NET 4.0-Unterstützung und es ist ein ausgereiftes Produkt. Gute Unterstützung ist auch nützlich.
  • breite Datenbankunterstützung (Oracle, MS SQL, Firebird, MySQL, PostgreSQL, Sysbase)
  • Netter Designer, Model First Support und auch Database First Support

Wenn Ihr Budget knapp ist, versuchen Sie es mit NHibernate. Es ist auch ein ausgereiftes Produkt, aber es hat eine größere Lernkurve. Und wenn Sie Unterstützung brauchen, können Sie jederzeit Ayende anrufen :-)

Für kleinere Projekte ist EF 4.0 eine gute Wahl.

13
Martin Fabik

Ein ORM allgemein als das Beste unter allen zu bezeichnen, ist völlig unmöglich. Jeder von ihnen ist aus verschiedenen Perspektiven am besten. Sie haben diejenige ausgewählt, die Ihren Anforderungen am besten entspricht. Linq2Sql wurde mit Blick auf die Leistung geschrieben, aber es fehlt die Unterstützung für andere Anbieter, Linq2Sql ist sehr schnell. Es gibt jedoch auch andere, die möglicherweise nicht so schnell wie Linq2Sql sind, wenn es um den Umgang mit SQL Server geht, aber sie unterstützen eine Vielzahl von Anbietern. Die beste Idee wäre, die Funktionen aufzulisten, die ein ORM für Ihr Projekt haben soll, und die auszuwählen, die alle Ihre Anforderungen erfüllt. "Mit diesen Fragen können Sie das richtige ORM für Ihr Projekt auswählen.

  • Was Datenbankanbieter soll der ORM unterstützen? SQL Server, MySQL, Oracle usw.
  • Benötigen Sie model-first oder db-first Unterstützung?
  • Was ist mein Leistungskriterien [Speicher, Verarbeitung]?
  • Verwenden Sie es in Web-App oder Desktop-App?
  • Haben Sie verteilte Clients in Ihrer Anwendung?
  • Und die Liste geht weiter..

Die meisten ORMs haben ihre eigenen Stärken und Schwächen.

Das Entity Framework hat zum Beispiel den (großen?) Vorteil, im Framework selbst zu sein, ist aber auch ziemlich schwer und etwas schwieriger in Betrieb zu nehmen (steilere Lernkurve).

Es gibt einige sehr nette, sehr einfach zu verwendende kommerzielle ORMs. Ich verwende derzeit Lightspeed in einem C # 4-Projekt und bin für dieses spezielle Szenario äußerst zufrieden damit.

Es kommt wirklich darauf an, was Sie vom ORM benötigen. Wenn Sie sehr schnell und einfach einrichten und verwenden möchten, sind Lightspeed, Subsonic und andere sehr nützlich. Wenn Sie einen vollständigen Funktionsumfang benötigen, sind Entity Framework und NHibernate gute Optionen.

8
Reed Copsey

Ich verwende Linq-to-SQL als Haupt-ORM beim Erstellen von C # -Anwendungen. Ich werde irgendwann zu Entity Framework übergehen, aber dieses ist vorerst sehr einfach und schnell zu bedienen.

2
Sergio Tapia

Ich würde @this zustimmen. __curious_geek, dass die Auswahl des richtigen ORM von Ihren Anforderungen abhängt.Nach der Arbeit mit Hibernate und Entity Framework ist letzteres meiner Meinung nach benutzerfreundlicher, da es sich um einen GUI-basierten Editor handelt. Im Hinblick auf die Funktionsvielfalt hat NHibernate den Vorteil, viele Datenbankanbieter zu unterstützen. Auch das Anpassen von NHibernate erwies sich als viel einfacher als das Anpassen des Entity Frameworks.

Unter der Annahme, dass die meisten Tools Ihre Kernanforderungen erfüllen, würde ich NHibernate vorziehen, da eine lebendige und einnehmende Benutzergemeinschaft ein großes Plus für jedes Tool darstellt.

1
Bharath K