Ist Codesmith ein tragfähige ORM-Tool (oder soll ich bleibe mit einem wahren ORM) [geschlossen]

StackOverflow https://stackoverflow.com/questions/583232

  •  06-09-2019
  •  | 
  •  

Frage

Ich suche ein ORM-Tool. Ich bin quälenden über den Kauf von beiden Codesmith (die mit einem erheblichen Abschlag zur Zeit verfügbar ist) im Vergleich zu einem ORM-Tool.

LINQ to SQL ist von meiner Liste; SubSonic 2.x ist von der Liste (ich weiß nicht in dieser Sackgasse investieren wollen wissen, dass SubSonic 3.0 kommt. NHibernate scheint übertrieben wie LLBLGen der Fall ist. Ich habe nur kurz ausgewertet EF aber nicht bekommen, schnell erhalten ein warmes und wohliges Gefühl von ihm.

Bin ich verrückt denken, dass Codesmith ist eine rationale Alternative zu off-the-shelf ORMs? Wird Codesmith für sich selbst auf andere Weise bezahlen?

Bitte beachten Sie, dass ich bin in keiner Weise zu irgendwelchen Anbietern bezogen und dies ist keine billige Schuss SO Frage, nur um Produkt Rauschen zu erzeugen! Ich suche ehrliche Beratung und Meinungen über Codesmith als ORM-Tool (mit seiner versehen, oder Community verfügbar) Vorlagen.

War es hilfreich?

Lösung

In der Tat, Hibernate ist ein gutes ORM-Tool. Aber es bleibt dort!

Code-smith-Funktionen können mehr sein als nur ein relationales Mapping Personal! Ich verwende Code smith einige UI Formulare, Business-Schichten (Templates), Datenzugriff Schichten, Muster und so weiter zu erzeugen. Aber mit dem Code Schmiede zu arbeiten, können Sie gute Erfahrungen mit Systemdesign benötigen oder ihre Vorlagen verwenden, die Ich mag es nicht zu benutzen, aber Ich mag als Beispiel.

Code-smith Ansatz hat einen besonderen Nachteil; Sie müssen Ihr System entwerfen zuerst die Datenbank-Implementierung unter Berücksichtigung. Heute in Objektanalyse Konzept, Erfolg Menschen bei der Umsetzung der Business-Logik & Einheiten kurz vor jeder Datenbank-Implementierung - sie vergessen, diese über

.

Entscheidung ist hart; Ich habe immer wieder wichtige Namen wie Scott W. Ambler, Kent Beck, Robert C. Martin und Menschen aus der Pragmatische Programmierer-Serie, die empfiehlt ORM-Tool zur Beschleunigung der Entwicklung lesen. Sie sagten, dass ORM-Tool-Entwickler beschäftigen sich mit allen Datenbankfragen (Pooling, Verbindungen, Datenbankanbieter Besonderheiten, etc.). Wenn wir also den Datenzugriff Schichten gestalten haben wir auch all diese Aspekte zu berücksichtigen.

Ich glaube, dass diese ORM-Tools mit einem Abraum kommen. Ich weiß noch nicht, wie diese Werkzeuge würden Verhalten in Low-Budget-Projekten (ich meine nicht guten Hosting-Server oder jede Art von gemeinsam genutzten Ressourcen). Ich habe unerfahrene Entwickler nicht gesehen dies zu berücksichtigen, da sie versuchen, ihre geliebten Werkzeuge zu evangelisieren. Aber in Java-Projekten, Hibernate ist bereits ein weit verbreitetes und bekanntes Werkzeug. Ich habe keinen Zweifel, die großen Projekte geliefert wurden mit dieser Technologie, aber ich habe niemanden gesehen und wieder Java-Entwickler müssen uns (NET-Entwickler) lehren, wie große Lösungen zu bauen. (Sorry, müssen wir zugeben.)

Das einzige, was ich empfehlen würde ist Ihr Kontext zu betrachten. Tun Sie ein neues System? Sie müssen in Mustern arbeiten? Haben Sie jemals versucht, einen solchen Code-Generator und ORM-Tools zusammen zu beachten?

ich Code smith bevorzugen, weil ich auf einmal ganze Lösungen erzeugen, nicht nur Datenzugriffsschicht. Code-Generierung ist sehr wichtig, und es ist nicht für weniger, dass Microsoft Code smith Ansatz in der visuellen studio.net 2008 und so weiter nachgeahmt hat.

Viel Glück

Andere Tipps

Code-Smith ist kein ORM, es ist nur ein Code-Generator IDE.

Sie können eine DAL generieren Datenbank mit Code smith basiert weg, aber das würde den Zweck vereiteln (einer) ein ORM zu verwenden, die im Grunde ist, dass es die DAL dynamisch erzeugt, so dass Sie den Code nicht schreiben müssen.

Wenn Sie wirklich versuchen, die beiden zu vergleichen, dann vielleicht könnten Sie einige Vorteile mit Code smith bekommen, weil Sie absolute Kontrolle über den Code haben würde, die erzeugt wird, aber ich bin nicht sicher, dass Nutzen den Nachteil outweight würde was könnte sich Monate zu verbringen Sie den Code smith Vorlagen schreiben eine DAL Ihre Datenbank basieren, zu erzeugen.

Und dann muss man überlegen, was passiert, wenn Sie eine Änderung an Ihrer Datenbank vornehmen, werden Sie wahrscheinlich haben, um Code smith laufen und bauen jedes Mal wenn Sie dies tun. Eine gute ORM können Sie Ihre Datenbankänderungen in Schema konfigurieren, und dann wird es dynamisch generieren, so dass Sie (so viel) keine Sorge haben, um über Änderungen an der Datenbank zu machen.

NHibernate ist der Weg zu gehen. Es ist eine Enterprise-Klasse ORM. Und mit der Konvention-basierten Auto-Konfiguration von dem FluentNHibernate Bibliothek, die Konfiguration ist lächerlich einfach, wenn Sie zu einer einzigen Konvention halten (Sie können die Konventionen angeben erhalten, oder es gibt Standardwerte).

Mit NHibernate, sind Ihre Domain-Objekte reine C # Objekte. Keine seltsamen Basisklassen. Keine codegenned Dateien, die jedes Mal bekommen aktualisiert müssen Sie entscheiden, eine Änderung vorzunehmen.

Ich benutze NetTiers täglich und lieben es. Dokumentation für sie saugt, aber es hat sich im Büro für mich eine solche Zeitersparnis gewesen. Viele Leute meckern über die Menge an Code es produziert, sondern von dem, was ich gesehen habe, erstellt der Code ist viel schneller als von Hand viel davon Codierung. Es erzeugt auch alle sprocs Sie für Ihre grundlegenden CRUD Sachen benötigen. Die Zugriffsmethoden es produziert sind ziemlich ebenso ehrfürchtig, durch alle Ihre eindeutige Schlüssel bekommen, Fremdschlüssel und Primärschlüssel.

Ich denke, die Verwendung von Codesmith lebensfähig ist. Aber Sie sollten in Frameworks suchen, die sie verwenden. Net Tiers ein Anwendungs-Framework, das auf eine gute DAL knock out gebaut werden kann.

Warum sollte so etwas wie LLBLGen zu viel des Guten? Wir verwenden es bei der Arbeit, und nach einer etwas steilen Lernkurve, es ist sehr schön :). Sie sollten zumindest geben, dass und nhibernate einen Versuch.

Nicht sicher, was diese allerdings mit Codesmith zu tun hat, das ist ein Codegenerator, könnten Sie Ihre eigene ORM rollen, aber da gibt es bereits gute da draußen, ich glaube nicht, dass es die Zeit und Mühe wert, wenn Sie es tun wollen zu Lernzwecken.

Gehen Sie mit NetTiers und .netMVP. NetTiers ist ein sehr schönes DAL und .netMVP ist ein Framework Ich habe gerade Abstraktion auf der UI-Ebene zu unterstützen. :)

http://community.codesmithtools.com/CodeSmith/m/templates /42499.aspx

habe ich LLBLGen vor einigen Jahren. Ich hoffe, was ich sah, wurde gefixt. Wir sahen uns an die in-line SQL, die produziert wurde und sah, denn mit dem Primärschlüssel übergeben eine Reihe von Daten auszuwählen, die in:

SELECT DISTINCT * FROM TABLE WHERE primark_key_id = @primarykey.

Wirklich, DISTINCT? Ich bat immer Speicher Procs statt zu tun, aber was vom Projektleiter abgeschossen. Ich bin nicht sicher, welche Zeit durch das Schreiben ineffizienten Code gespeichert wurde.

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