Ich beginne ein neues ASP.Net MVC-Projekt und frage mich, was der beste Model-Ansatz ist.
Die meisten Demos empfehlen LinqToSQL, aber ich weiß, dass Microsoft dieses Produkt nicht wirklich verbessert und sich mehr auf das Entity Framework konzentriert.
Ich mag den Subsonic-Ansatz, aber ich dachte, dass dieser mit MVC mit Version 3 integriert werden würde, aber es gab keine Neuigkeiten über die Entwicklungsphase dieses Projekts, daher bin ich ein wenig skeptisch, Version 2 zu verwenden bald eine neue Version sein.
Ich habe von NHibernate und Castle Record gehört, aber ich habe noch keine Erfahrung mit diesen und habe viele Vorteile / Nachteile für beide gehört.
Jede Hilfe wäre sehr zu empfehlen!
Für SubSonic gibt Rob gerade eine neue MVC-Vorlage frei, mit der man ein neues Projekt starten kann, das viele gute Sachen in ein neues MVC-Projekt einbindet, einschließlich einer Vorabversion von SubSonic 3. Detais sind in Rob Conery's Blog verfügbar .
nHibernate Lernkurve ist höher, aber es lohnt sich. Verwenden Sie Fluent nHibernate, um den Schmerz etwas zu lindern. nHibernate ist weniger visuell als einige ORMs, aber das ist wirklich nur ein Problem, wenn Sie beginnen, und sobald Sie Erfahrung damit haben, ist das Fehlen von visuellen Designer ein Vorteil IMO.
LLBLGenPro funktioniert gut für mich. Es ist das beste .net ORM da draußen. Ich würde Linq zu Sql vermeiden, weil Sie Probleme haben werden, sobald das Projekt wächst und es in den Eigenschaften ziemlich schwach ist (neben den offensichtlichen Nachteilen, Arbeiten wie nur mit SQL-Server, etc.)
Ich benutze linq2sql und ich denke, es funktioniert absolut großartig, wenn Sie MSSQL als Ihre Datenbank verwenden (es funktioniert auch in anderen Datenbanken, erfordert aber einige Drittanbieter-Tools). Ja, Microsoft hat seine Entwicklung "eingestellt", aber es ist reif genug für das durchschnittliche Projekt. Ich bezweifle, dass du in irgendwelche Wände rennen wirst. Wenn Sie ein großes Projekt starten, das Sie jahrelang unterstützen müssen, ist das Entity Framework möglicherweise besser geeignet.
Ich persönlich habe nicht zuvor NHibernate und Subsonic benutzt, aber wie Craig sagt, ist die Lernkurve von NHibernate ein bisschen steiler, obwohl es ein toller Rahmen sein soll (alles von was?) Ich hörte oder las).
Wenn Sie bereit sind, etwas Geld auszugeben oder ein kleineres Projekt zu haben, würde ich ausprobieren Lichtgeschwindigkeit . Ich habe Schmerzpunkte mit ORM, die ich jemals ausprobiert habe, gefunden und verwende LINQ to SQL selbst.
LightSpeed ist ziemlich funktionsreich, obwohl die LINQ-Unterstützung einige Funktionen nicht vermisst, die nicht umgangen werden können. Es ist ziemlich ähnlich wie LINQ to SQL und LINQ to Entities, hat aber ein paar mehr Funktionen wie die Volltextsuche.
Castle ActiveRecord funktioniert wirklich gut für kleine bis mittlere Projekte, die auf MVC basieren - ich benutze es auf ein paar Projekten im Moment und finde es sehr gut mit ASP.NET MVC.
Es ist eine Implementierung des aktiven Datensatzmusters , das NHibernate unter der Haube verwendet - mit anderen Worten, solange Sie es tun Es macht Spaß, eine Klasse pro Datenbanktabelle zu haben. Es erledigt den Großteil der NHibernate-Konfiguration für Sie, so dass Sie Code schreiben können wie:
%Vor%mit sehr wenig expliziter NHibernate-Konfiguration (vorausgesetzt, Sie haben natürlich Kunden-, Rechnungs- und Produkttabellen in Ihrer DB)
Da es NHibernate unter der Haube ist, sollte die Migration zu NHibernate einfach sein - Sie werden bereits alle erforderlichen Referenzen und Bibliotheken haben. Es gibt einige Aspekte des NHibernate-Verhaltens, die Sie nicht ignorieren können (wie Session Scopes und Flushing ) - aber es ist nicht schwer herauszufinden, was damit passiert, und wenn Sie sie in ActiveRecord verwenden, erhalten Sie einen guten Start, wenn Sie direkt zu NHibernate wechseln müssen.
Wir verwenden Fluent + NHibernate hier, es funktioniert ziemlich gut. Einige Alternativen, die gut ineinandergreifen, sind SubSonic, Entity Framework und Linq to SQL. Ich denke, gerade NHibernate ist ein bisschen mühsamer als es wert ist, aber ist eine große zugrunde liegende Schicht mit Castle ActiveRecord und mit Fluent.
Ich habe mit einem Produkt namens netTiers ( Ссылка ) an einem Projekt gearbeitet und das hat sehr gut funktioniert. Es ist ein CodeSmith-Skript, das Geschäftsobjekte aus Ihren Datenbanktabellen, Ansichten und gespeicherten Prozeduren generiert.
Wenn es kein riesiges Projekt ist, würde ich Linq To SQL verwenden. Wenn Sie all die Schnickschnack brauchen, knochen auf nHibernate und haben es. Ich glaube nicht, dass Sie auf die eine oder andere Art in ernsthafte Probleme geraten würden.
Tags und Links asp.net-mvc orm