2009-05-08 5 views
1

Meiner bescheidenen Meinung nach ändert Microsoft die Regeln für die Datenbankverwaltung alle vier oder fünf Jahre. Ich erinnere mich an die alten Zeiten, als RDO die Lösung war, um sich mit SQL Server zu verbinden. Ich habe mein Wissen aktualisiert, um ADO zu verwenden, da RDO veraltet ist. ADO war sehr gut und effektiv, aber vor nicht allzu langer Zeit habe ich mich selbst programmiert und habe mein Wissen für ADO.NET wieder aufgefrischt. Jetzt arbeite ich in meinem ersten Projekt mit LINQ.Zuerst war RDO, später ADO und später ADO.NET, jetzt LINQ. Ist LINQ der nächste Standard oder ich sollte warten?

Was ist Ihre Meinung? Ist LINQ bereit, der nächste Standard zu sein, oder sollte ich warten und weiterhin ADO.NET wie in .NET 2.0 verwenden? Ich muss aus eigener Erfahrung wissen, ob der Wechsel zu LINQ im Vergleich zu den Vorteilen nicht zu teuer ist.

Antwort

6

Sollten Sie auf was warten? Wenn Sie darüber nachdenken, würde jeder Code, den Sie in der Vergangenheit geschrieben hätten, heute genauso gut funktionieren wie damals. Ist LINQ produktiver als die meisten dieser früheren Methoden? Meiner Meinung nach, ja, aber dann mag ich LINQ wirklich. Ist Linq Entities besser? Nein, es ist einfach anders und um ehrlich zu sein, in vielen Fällen ist es ein bisschen mehr gearbeitet. Der IJW (es funktioniert einfach!) Faktor von LINQ ist wirklich unglaublich, es ist eine der elegantesten Technologien, die Microsoft seit langem herausgebracht hat. Wird es in Zukunft etwas besseres geben? Höchstwahrscheinlich. Aber wir leben und kodieren in der Gegenwart und warten auf die Zukunft ist ein Idiot, denn es gibt immer etwas Besseres über den Horizont.

Das heißt, das ist ein gutes Argument für die Abstraktion. Wenn Sie Ihre Klassen entwerfen, fragen Sie sich, könnte ich X (Linq, ADO.Net, usw.) in meiner Datenschicht ersetzen, ohne den Rest meiner Anwendung zu unterbrechen? Wenn Sie ja antworten können, haben Sie wahrscheinlich ein ziemlich gutes Design. Eine richtige Datenschicht zu erstellen, ist wirklich nicht so schwer und erlaubt Ihnen die Flexibilität, von Linq zu jedem anderen ORM (Link zu Entities, nHibernate, etc ...) zu wechseln oder sogar zu einem komplett anderen Backend zu wechseln Web Services oder was auch immer die nächste große Sache ist.

Auch, wenn es Ihren Geist beruhigt, geht LINQ nirgendwohin. Sein Teil der Sprache wird in Mono implementiert und mehr Linq-Anbieter werden hinzugefügt. Selbst wenn Microsoft zu einer anderen Technologie wechselt, sehen Sie immer noch, dass Benutzer Linq verwenden und unterstützen. Zur Hölle, es ist bereits zu einem gewissen Grad mit Linq zu Entities geschehen und du siehst immer noch, dass die meisten Entwickler, die Linq verwenden, L2E größtenteils ignorieren. Der einzige große Nachteil von LINQ heute ist das Fehlen eines soliden MySQL/PostOgre-Linq-Providers, der frei verfügbar ist, aber es sind einige in Arbeit.

2

Wenn klargestellt wird, dass ado zum Abrufen von Daten verwendet wird, ist linq eine Abfragesprache, Sie müssen beide verwenden, sie sind nicht identisch. Linq to Sql bietet Ihnen eine Datenzugriffsschicht, worüber Sie vielleicht sprechen, aber Microsoft hat bereits angekündigt, die Unterstützung dafür zu streichen und mit Linq zu Entities zu gehen. Sollten Sie warten, Nein. Sie werden nur mit LinqToEntitiesADO.NET # morgen kommen!

2

LINQ ist nur zufällig über Datenbanken. Es ist wirklich Microsofts Idee einer umfassenderen Abstraktion für den strukturierten Datenzugriff im Allgemeinen. Aber da es sich bei LINQ-to-SQL um die erste Manifestation handelte, war dies die erste Wahrnehmung, die Menschen hatten. Und natürlich haben Entwickler, vor allem diejenigen, die nicht mit SQL vertraut sind, es geliebt.

Aber ich würde es eher eine Alternative zu SQL als zu den anderen Elementen, die Sie erwähnten, betrachten.

Sollten Sie LINQ verwenden? Ich würde sagen, lesen Sie zuerst die Microsoft-Website-Informationen und sehen Sie, ob Sie damit konzeptionell einverstanden sind. Ich denke, es ist eine gute konzeptionelle Idee, Microsoft hat helle Leute, die daran arbeiten, und es gibt nicht viel Konkurrenz. Solange Sie als .NET-Organisation fest an Bord sind, werden Sie es wahrscheinlich mögen. Es gibt Anzeichen dafür, dass auch die Nicht-Microsoft-Welt mit unbestimmten Zeitpunkten beitreten wird.

2

LINQ als Sprachfunktion wird "nie" (niemals nie richtig sagen) weggehen, also lerne es. Sie können möglicherweise beliebige Datenstrukturen abfragen. d. h. Sie können LINQ verwenden, um LINQtoSQL-Entitäten, XML, DataSets usw. abzufragen.

Wenn Sie jedoch über LINQ zu SQL sprechen, dann stimme ich Ihnen irgendwie zu.

Vor weniger als 2 Jahren war LINQ to SQL hier, um zu bleiben. Jetzt wurde es zugunsten des Entity Framework aufgegeben.

Nun ja, sie haben gesagt, dass viele LINQ to SQL Features in das Entity Framework integriert werden, aber LINQ to SQL, wie so viele angenommen haben, wurde fallen gelassen, und es gab sicherlich noch eine viel Raum für Verbesserungen.

Überprüfen Sie die Kommentare here für ähnliche Anliegen.

Verwandte Themen