Ich komme nach ein paar Jahren wieder in die .NET-Entwicklung zurück und es scheint, dass gerade jetzt, besonders bei LINQ, die Art, wie Sie auf Ihre Daten zugreifen, sich geändert hat und viel einfacher geworden ist. Zum Beispiel kann ich in einer ASP.NET MVC-Website:
Das sieht gut aus, aber wie real ist es?
Und wie mache ich alle neuen Technologien in diesem Raum sinnvoll, z. B.
funktioniert LINQ-to-Entities wie LINQ-to-SQL, d. h. automatisch generierte Klassen, aber nur mit mehr Optionen?
ist ADO.NET mit seinen DataTables und DataSets eine alte Technologie, die wir jetzt LINQ haben? Ist LINQ-to-ADO.NET sinnvoll?
Wo passt Azure, wo Sie nicht wirklich RDBMS haben
Nun, da wir so viele Optionen haben, könnten Sie, wenn Sie eine dieser Technologien für ein Projekt auswählen könnten, welche würden Sie wählen und warum?
Erste Antworten (hauptsächlich auf dem LINQ-Zeug):
Um Ihre letzte Frage zu beantworten, habe ich nicht genug über NHibernate oder andere gelernt, aber ich würde gerne LINQ to SQL für den grundlegenden Datenbankzugriff verwenden, aber ich habe angefangen, LINQ to Entities for my komplexere Sachen als die anderen - vor allem, weil ich die schönen Bilder mag.
Was SQLite betrifft: Ich habe dbLinq erfolgreich zum Erstellen von LINQ-Abfragen in einer SQLite-Datenbank verwendet. Es ist immer noch in den Kinderschuhen, also muss ich in den generierten Klassen etwas reparieren, aber es hat für meine Bedürfnisse funktioniert. Ich denke, 85% aller Dinge, die LinqToSql tun wird. Und es gibt viele Unit-Tests im Projekt, um Ihnen zu sagen, was sie wissen, dass sie versagen.
dbLinq unterstützt viele andere Datenbanken (MySQL, PostgreSQL, Firebird). Ich habe es für nichts anderes als SQLite verwendet.
Ich musste gerade die gleiche Frage für ein neues Projekt beantworten, das wir starten, und nach einem Vergleich der Alternativen, die wir für LLBLG weil:
ps. Ich sollte wahrscheinlich erwähnen, dass ich nicht an llblgen und / oder solutions design angeschlossen bin
Ich benutze auch linq2sql und es funktioniert großartig. Sobald Sie feststellen, dass die generierten Klassen partielle sind, können Sie benutzerdefinierten Code, Felder, was nicht dort. Ich habe meine Business-Klassen aus den generierten linq2sql-Klassen gemacht.
Eine Einschränkung: Ein varchar (1) wird standardmäßig in char konvertiert. Dies gab mir Probleme, weil varchar (1) "" sein kann, während char nicht ... Ein einfacher Wechsel zu einer Zeichenfolge im Eigenschaftsfenster löste dies jedoch.
Tags und Links .net linq data-access-layer