Frage

Zur Zeit ich NetTiers bin mit meiner Datenzugriffsschicht und Service-Layer zu erzeugen. Ich habe mit NetTiers seit mehr als 2 Jahren und habe es sehr nützlich erwiesen. Irgendwann muss ich bei LINQ to sehen so meine Fragen ...

  1. Hat jemand von NetTiers zu LINQ to SQL gegangen?
  2. War diese Schalter über eine gute oder schlechte Sache?
  3. Gibt es etwas, das ich bewusst sein sollten?
  4. Würden Sie diesen Schalter?

Im Grunde würde ich alle Gedanken gern gesehen .

War es hilfreich?

Lösung

  1. Nein
  2. Siehe # 1
  3. Sie sollten von Standard Abstraktion Kopf in Acht nehmen. Auch ist es sehr SQL Server basierte in seinen aktuellen Zustand.
  4. Sind Sie SQL Server verwenden, dann vielleicht. Wenn Sie LINQ für andere Dinge verwenden jetzt wie zu XML-Daten (gut), Objektdaten, Datensammlungen, dann ja, sollten Sie könnten schalten eine einheitliche Datensyntax für alle von ihnen zu haben. Wie lagerdalek erwähnt, wenn es nicht kaputt ist nicht repariere es. Vom kurzen Blick auf .netTiers Application Framework, würde ich sagen, wenn Sie bereits eine Investition mit dieser Lösung haben es scheint, Sie zu geben viel mehr als eine einfache Access Layer Daten und Sie sollten dabei bleiben.

Aus meiner Erfahrung LINQ to SQL eine gute Lösung für kleine bis mittelgroße Projekte ist. Es ist ein ORM, die eine gute Möglichkeit ist, die Produktivität zu steigern. Es ist auch sollte geben Sie eine weitere Ebene der Abstraktion, dass Sie die darunter liegende Schicht für etwas anderes zu ändern out erlaubt zu. Der Designer in Visual Studio (und ich glaube VS Express auch) ist sehr leicht und einfach zu bedienen. Es gibt Ihnen die gemeinsamen Drag & Drop und eigenschaftsbasierte Bearbeitung der Objektzuordnungen.

Jason Jackson - Der Designer hat Sie lassen Eigenschaften hinzufügen von Hand, aber Sie die Attribute für diese Eigenschaft angeben müssen, aber Sie dies einmal tun, es 3 Minuten dauern kann länger als das anfängliche Ziehen der Tabelle in die Designer, aber es ist nur einmal notwendig, pro Änderung in der Datenbank selbst. Das ist nicht allzu verschieden von anderen ORMs, aber Sie richtig sind, dass sie dies viel einfacher machen könnte, und nur diese Eigenschaften finden, die sich geändert haben, oder sogar eine Art von Refactoring-Tool für solche Bedürfnisse umzusetzen.

Ressourcen:

Beachten Sie, dass Parallel LINQ wird für viel zu ermöglichen, entwickelt mehr Leistung auf Multi-Core-Maschinen.

Andere Tipps

Ich habe versucht, Linq zu verwenden, um auf einem kleinen Projekt SQL und dachte, dass ich etwas wollte ich schnell erzeugen könnte. Ich lief in eine Menge Probleme in den Designer. Zum Beispiel müssen, wann immer Sie eine Spalte in einer Tabelle hinzuzufügen, müssen Sie im Grunde entfernen und erneut hinzufügen, die Tabellendefinition im Designer. Wenn Sie Eigenschaften auf dem Tisch gesetzt haben, dann müssen Sie setzen wieder diese Eigenschaften. Für mich ist das verlangsamte wirklich den Entwicklungsprozess nach unten.

LINQ to SQL selbst ist schön. Ich mag die Erweiterbarkeit. Wenn sie den Designer verbessern kann ich es vielleicht noch einmal versuchen. Ich denke, dass der Rahmen aus wenig mehr Funktionalität in einem getrennten Modell wie Web-Entwicklung ausgerichtet profitieren würde.

Check out LINQ Scott Guthrie Serie Blog-Beiträge für einige große Beispiele dafür, wie es in SQL zu verwenden.

NetTiers ist sehr gut für einen schweren und robusten DAL zu erzeugen, und wir verwenden es intern für Core-Bibliotheken und Frameworks.

Wie ich es sehe, LINQ (in all seinen Inkarnationen, aber speziell, wie ich glaube, du bist zu SQL fragst) ist fantastisch für die schnellen Datenzugriff, und wir verwenden es in der Regel für agile Fälle.

Beide Technologien recht unflexibel sind ohne Regenerierung des Codes oder DBML Schicht zu ändern.

aber sagen, dass sie ordnungsgemäß verwendet wurden 2 LINQ SQL ist eine sehr robuste Lösung, und Sie vielleicht sogar beginnen, es für die zukünftige Entwicklung unter Verwendung aufgrund seiner Benutzerfreundlichkeit, aber ich würde Ihre aktuelle DAL für sie nicht wegwerfen - wenn es aint brach ...

Meine Erfahrung sagt mir, dass durch die Verwendung von Linq verwenden, können Sie die Dinge schneller erledigen, aber die tatsächlichen Aktionen in der Datenbank sind langsamer.

Also ... wenn Sie eine kleine Datenbank haben, sagen, dass ich für ihn gehen werde. Wenn nicht, ich für einige Verbesserungen warten würde vor dem Ändern

Ich bin mit LINQ jetzt auf ziemlich großes Projekt in SQL (ca. 150 Tabellen) und es funktioniert sehr gut für mich aus. Die letzte ORM verwenden ich war iBatis und es hat gut funktioniert, aber nahm eine Menge Lauferei Ihre Zuordnungen zu erledigen. LINQ to SQL führt sehr gut für mich und hat bisher erwies sich als sehr einfach aus der Box zu verwenden. Es gibt auf jeden Fall einige Unterschiede, die Sie im Übergang zu überwinden, aber ich würde empfehlen, es ist Gebrauch.

Side Note, habe ich nie über NetTiers verwendet oder lesen, damit ich nicht diskontieren wird es Wirksamkeit, aber LINQ im Allgemeinen SQL hat sich als äußerst tragfähige ORM sein.

Unser Team verwendet NetTiers zu verwenden und fand es nützlich zu sein. ABER ... je mehr wir es verwendet wird, desto mehr fanden wir Kopfschmerzen und Schmerzpunkte mit ihm. Zum Beispiel, immer wenn Sie eine Änderung an der Datenbank vornehmen, müssen Sie die DAL mit Codesmith erneut zu erzeugen, die beteiligt sind:

  • re-Erzeugung Tausende von Codezeilen in drei separaten Projekten
  • re-Erzeugung Hunderte von Stored Procedures

Vielleicht gibt es andere Möglichkeiten, es zu tun, aber das ist, was wir tun mussten. Die Re-gen des Quellcodes war ok, beängstigend, aber ok. Das eigentliche Problem kam mit den gespeicherten Prozeduren. Es nicht sauber alle nicht verwendete gespeicherten Prozeduren so, wenn Sie eine Tabelle aus Ihrem Schema und wieder entfernen Gened Ihre DAL, die gespeicherten Prozeduren für diese Tabelle nicht entfernt bekommen. Auch wurde dies ein ganz Kopfschmerzen für Datenbank Change Scripts, wo wir die alte Datenbankstruktur auf den neuen zu vergleichen hatten und eine Änderung Skript erstellen Client-Installationen zu aktualisieren. Dieses Skript könnte in die Zehntausende von Zeilen von SQL-Code ausführen und wenn es ein Problem war es ausführt, was es immer war, es war eine ziemliche Schmerzen, es zu lösen.

Dann kam das Licht auf, NHibernate als ORM. Es hat sicherlich eine Anlaufzeit, um es, aber es ist es wert. Es gibt eine Tonne von Unterstützung für ihn so, wenn es etwas, das Sie brauchen getan, mehr als wahrscheinlich, es vorher getan worden ist. Es ist extrem flexibel und ermöglicht es Ihnen, jeden Aspekt davon zu steuern, und dann einige. Es ist auch immer leichter und einfacher zu bedienen. Fluent NHibernate ist und kommt als eine gute Möglichkeit der XML-Mapping-Dateien, um loszuwerden, die erforderlich sind, und NHibernate Profiler bietet eine hervorragende Schnittstelle zu sehen, was hinter den Kulissen vor sich geht die Effizienz zu erhöhen und entfernen Redundanz.

Der Umzug von NetTiers zu NHibernate war schmerzhaft, aber in einem guten Weg. Es hat uns gezwungen, in eine bessere Architektur zu bewegen und neu bewerten funktionale Anforderungen. NetTiers Tonnen Datenzugriffscode zur Verfügung gestellt, diese Einheit durch seine ID erhalten, diese andere Einheit, die von dem Fremdschlüssel erhalten, einen tlist und vlist von diesem und jenen, aber das meiste davon war unnötig und ungenutzt. NHibernate mit einer generischen Repository und benutzerdefinierten Repositories, wo nur reduzierte Tonnen nicht verwendeten Code und wirklich erhöhten die Lesbarkeit und Zuverlässigkeit erforderlich ist.

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