Leichte Alternativen zu NHibernate
NHibernate ist nicht wirklich eine gute Passform für unsere Umwelt durch alle Abhängigkeiten. (Burg, log4net etc.)
Ist es eine gute leichte alternative?
Unterstützung für einfache Datei-basierten Datenbanken wie Access/SQLite/VistaDB ist unerlässlich.
Ideal, etwas in einer einzigen Baugruppe, die nur Verweise .NET-Assemblys. Wenn es nur verlangt .NET framework 2.0 oder 3.0, das ist ein bonus.
InformationsquelleAutor der Frage Andreas | 2008-09-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Generell für Ihre Datenbank-backend zu arbeiten .net benötigen Sie eine ADO.Net Anbieter für Sie.
Für MS Access (Jet), der Anbieter ist im Lieferumfang .net.
Für SQLite, es ist ein eigenständiges ADO.Net Anbieter.
Als für die data-access-layer-lib, wenn Sie möchten, dass einige Abstraktion ADO.Net:
iBatis.Net(War im Ruhestanddie von der Apache Foundation 2010) MyBatis.netAlle diejenigen, die gut arbeiten, beginnend mit framework 2.0 und.
Grundsätzlich Sie wählen (und es gibt eine Menge von Möglichkeiten)
InformationsquelleAutor der Antwort RHeitzmann
Massiv - https://github.com/robconery/massive
oder
PetaPoco - https://github.com/toptensoftware/petapoco
Beide sind single .cs-Datei ohne Abhängigkeiten, außer das, was in der GAC.
(vollständige Offenlegung, PetaPoco ist etwas, was ich schrieb)
InformationsquelleAutor der Antwort Brad Robinson
Für ein leichtes ORM, die funktioniert gut und erfordert nur eine einzige Versammlung, warum nicht versuchen, Lightspeed von Mindscape. Es ist nicht open source, aber Quelle ist vorhanden und es ist preiswert - das Risiko mit den meisten ORM ' s, die nicht gut angenommen, ist selbstverständlich die Qualität und das Niveau der Unterstützung, und es gibt nur sehr wenige andere open-source-ORM lohnt sich die Mühe mit der .Net Raum im moment.
Wegen Ihrer Abneigung gegen NHibernate Abhängigkeiten es klingt wie Sie nicht haben ein Bedürfnis nach einem logging-framework oder einen der Schloss-Projekt Facetten d.h. IoC, Monorail etc. Hast du überlegt, vielleicht einfach nur das absolute minimum von NHibernate Anforderungen (log4net und das Iesi Sammlungen ich glaube, und dynamischen proxy aus dem Schloss-Projekt?) und ILMerge läuft, über Sie zu festigen und Sie in eine einzelne assembly - könnte ein bisschen Gefummel, aber es ist nicht zu schwer - oder Sie können einfach ziehen Sie den source-code für jedes dieser Projekte in einem benutzerdefinierten build von NHibernate Sie erhalten für Ihre Organisation, trimmt sich die Funktionen nicht erforderlich, die von Ihrem Projekt/Ihrer Organisation - es ist nicht so schwer/akward wie es klingt, und ich habe getan etwas entlang diesen Linien für ein Projekt, wo wir wollten, profitieren von einem ORM, aber notwendig, um die Größe zu reduzieren, werden die verteilten Dateien/installer.
Auch - sind Sie vielleicht in der Lage zu erklären, was Sie fühlen, ist zu "schwer" über einen Nhibernate-basierte Lösung ... in meiner Erfahrung, die Ihr ein einigermaßen leichtes ORM-framework im Vergleich zu einigen.
InformationsquelleAutor der Antwort Bittercoder
Hinzufügen zu dieser Liste, könnten Sie auch einen Blick auf Dapper (geschrieben für und von StackOverflow selbst).
InformationsquelleAutor der Antwort Richard Banks
einige der alternativen:
- ActiveRecord - es nutzt nhibernate.dll im hintergrund, aber die Konfiguration erfolgt über Attribute. Es ist wie die lite-version von nhibernate
- Subsonic
- CoolStorage.NET - Ich habe es sehr mit kleinen Projekten. Funktioniert gut mit der Anzahl der dbs
InformationsquelleAutor der Antwort Hrvoje Hudo
Hier ein große Liste alternativen, die ich empfehlen würde:
Diese 4 sind die leichtesten diejenigen. Subsonic, ActiveRecord und andere sind gezielt auf große Systeme. Sie funktionieren auf kleinere Systeme, aber (wenigstens für ActiveRecord) kommen Sie mit einer riesigen Liste von Abhängigkeiten und overkill für ein kleines system. Ich gehe mit Lightspeed und sagen, alles unter 8 Objekte ist ein kleines system, und einfach mit NHibernate, weil es weit verbreitet ist, ist gut für die Skalierung aber in der kurzen Frist macht keinen Sinn - und eine Schicht zwischen ORM und Ihre Kunden können das umgehen, sowieso.
InformationsquelleAutor der Antwort Chris S
LINQ to SQL könnte eine gute alternative zu "hieven" ORM-Systeme, wenn Sie es richtig verwenden.
InformationsquelleAutor der Antwort dimarzionist
Wenn Sie nicht brauchen, voll funktionsfähige ORM und nur eine schnelle Datenbank-unabhängige Schicht über Daten ADO.NET probieren Sie open-source -NI.Daten-Bibliothek (V2). Es ist sehr leicht (nur eine kleine Montage, keine anderen Abhängigkeiten), bietet alle standard-Daten-layer infrastructure:
Its main component (DALC) initialisiert nur mit einer Zeile code:
das ist alles.
Wenn Sie brauchen .NET 2.0 runtime-Unterstützung können Sie versuchen, zu kompilieren entweder die Letzte V2 version unter 2.0 Laufzeit oder verwenden Sie den vorherigen legacy-version (NI.Daten.Dalc, V1).
InformationsquelleAutor der Antwort Vitaliy Fedorchenko