0

Ich habe von einigen gehört, dass LINQ to SQL gut für Lightweight-Apps ist. Aber dann sehe ich, dass LINQ to SQL für Stackoverflow verwendet wird, und eine Menge anderer .coms, die ich kenne (aus dem Interview mit ihnen).LINQ to SQL - Leichte O/RM?

Ok, stimmt das? Für eine E-Commerce-Website, die Millionen einbringt und normalerweise nur grundlegende CRUDs ausführt, mit Ausnahme eines gelegentlich gespeicherten Proc für etwas Komplexeres, ist LINQ to SQL vollständig genug und leistungsfähig genug oder in der Lage, dies zu tun auf eine E-Commerce-Site eingestellt werden? Ich habe gehört, dass Sie Leistung nur auf der DB-Seite optimieren müssen, wenn Sie LINQ to SQL für einen besseren Ansatz verwenden.

So gibt es wirklich zwei Fragen hier:

1) Bedeutung/Umfang/Definition einer "Leichtbau" O/RM-Lösung: Was zum Teufel bedeutet "leichte" bedeuten, wenn die Leute LINQ sagen SQL ist ein "leichtes O/RM" und ist das wahr ??? Wenn das so leicht ist, warum sehe ich dann eine Menge riesiger .coms?

Ist es gut genug, um große .coms laufen zu lassen (offensichtlich sieht es so aus) und was bestimmt, was der Kontext von "leichtgewichtig" ist ... es ist solch eine generische Aussage.

2) Leistung: Ich arbeite an meinem eigenen .com und erforsche verschiedene O/RMs. Ich schaue (noch) nicht wirklich auf das Entity Framework, ich möchte hier nur die Grundlagen von LINQ to SQL herausfinden und herausfinden, ob es für mich effizient genug ist. Das Problem, das ich denke, ist, Sie können nicht zwicken oder steuern die SQL generiert es ...

+0

Warum sollte ein "riesiges .com" nicht etwas "Leichtes" verwenden? –

+2

@CoffeeAddict: Leichtgewicht in diesem Kontext bedeutet Merkmal schlecht. LinqToSql ist im Vergleich zu Entity Framework, NHibernate und vielen anderen .NET-ORMs sehr funktionsarm. Eines der größten Risiken bei der Verwendung von LinqToSql besteht darin, dass Sie möglicherweise irgendwann aus dem System herauswachsen und es sehr teuer ist, ORMs nach der anfänglichen Verpflichtung zu wechseln. –

+0

Danke Michael. Ich dachte, das ist es, was es bedeutet. Gut für eine .com Ich sehe nicht, dass es entwachsen ist. Ich meine, ich habe für mehrere .coms gearbeitet und wir haben meistens nichts anderes als meistens einfache CRUDs. Ich mache mir nur Sorgen über die Tweak-Fähigkeit, die es für die LINQ-Leistung nicht gibt. – PositiveGuy

Antwort

2

Wenn Menschen beschreiben LINQ to SQL als leicht, ich denke, sie meinen, es ist gut genug, was es tut, aber es gibt eine Menge von Sachen, die es nicht einmal versucht. Ich denke, das ist eine gute Sache, weil all die zusätzlichen Sachen, die andere ORMs versuchen könnten zu tun, nicht wirklich benötigt werden, wenn Sie nur bereit sind, ein paar Opfer zu bringen.

Zum Beispiel, ich denke, es ist eine bewährte Methode zu versuchen, alle Anwendungsdaten in einer einzigen Datenbank zu halten. Dies ist die Art von Dingen, die LINQ to SQL erwartet, wenn Sie in der Lage sein wollen Joins und so weiter zu machen. Wenn Sie jedoch in einer Umgebung mit bürokratischen Schichten arbeiten, sind Sie möglicherweise nicht in der Lage, alle davon zu überzeugen, alte Daten zu verschieben oder auf eine einzige Art und Weise zu zentrieren. Am Ende benötigen Sie ein komplizierteres ORM und Sie haben mit einer unbestreitbaren Crapper-Software zu tun. Das ist nur ein Beispiel dafür, warum Sie diese Daten möglicherweise nicht so gestalten können, wie sie sein müssen.

Also ja, wenn große .com's bereit oder in der Lage sind, Dinge in einer konsistenten Weise zu tun und Best Practices zu folgen, gibt es keinen Grund, warum das ORM nicht so einfach wie nötig sein kann.

+0

cool ... macht Sinn. – PositiveGuy

+0

NHibernate ist vielleicht komplizierter zu erlernen und hat viel zu viel Out-of-the-Box, als ich wirklich für eine .com benötige. (Ich versuche herauszufinden, ob meine Annahme richtig ist, wenn ich mir ansehe, was das Ding kann ... was ist viel). Alles, was ich tue, sind einfache CRUDs, nichts extrem Komplexes in Bezug auf SQL-Aufrufe ... vielleicht ein gelegentlicher Proc, der etwas mehr als nur einen CRUD-Aufruf hat, aber das ist alles. – PositiveGuy

+0

Ich sage LINQ zu SQL versuchen. Ich denke, du wirst feststellen, dass es das tut, was du brauchst, und es ist wirklich schön, mit ihm zu arbeiten. Aus all den ORMs, mit denen ich gearbeitet habe, ist sicherlich einer meiner Favoriten. Wenn Sie mit gespeicherten Prozeduren arbeiten müssen, können Sie diese einfach Methodenaufrufen zuordnen und die Ausgabe Objekten zuordnen. –