2009-05-15 2 views
0

Ich beginne mit einem Projekt, das ASP.NET MVC mit einer Legacy-ODBC 2.0-kompatiblen Datenbank beteiligt. Ziel ist es, die aktuelle Systemfunktionalität über einen Zeitraum von vielleicht einem Jahr durch ein Web-Frontend zu ersetzen und dann das Backend mit SQL Server auszutauschen.Wie Sie mit ASP.NET MVC und ODBC 2.0 arbeiten

Der Plan wäre, gegen den SQL-Server zu kodieren und dann ein Shim in die Repository-Klassen einzufügen, um stattdessen ODBC zu verwenden. Ist das überhaupt möglich? Entity Framework unterstützt ODBC nicht.

Alle Gedanken oder Ratschläge würden geschätzt werden.

+1

Ich habe auch gerade diese Frage gefunden, die relevante Antworten enthält http://stackoverflow.com/questions/118248/good-net-orm-framework-that-supports-oledb-and-stored-procedures – Andiih

Antwort

1

Ich persönlich benutze NHibernate mit MVC. Ursprünglich nahm ich es auf, weil unsere Datenbank EF nicht unterstützt, aber genießen Sie es genug, dass, selbst wenn wir zu SQL Server umzogen, ich NHibernate behalten würde.

Die Lernkurve ist ein bisschen komisch. Es ist definitiv steil, ein Experte zu werden, aber es ist interessant, dass es ziemlich organisch ist, um es mehr und mehr von der Arbeit für Sie handhaben zu lassen, während Sie sich mit bestimmten Schichten vertraut machen.

Also für Ihren Fall unterstützt NHibernate wahrscheinlich Ihre Datenbank, kann als eine einfache Datenzugriffsschicht verwendet werden (nur DTOs zurückgeben), bietet eine Datenbank agnostic Schnittstelle und kann SQL Server unterstützen, wenn die Zeit kommt. Wenn Sie am Ende mehr von NHibernate wollen, ist es da, wenn die Zeit kommt.

+0

Würden Sie sagen, dass Nhibernate weniger Arbeit war (dh Kosten für den Kunden) als Codieren von Datenzugriff und Entitätsschichten und Austauschen von Daten mit EF? – Andiih

1

Es gibt nichts, was Sie daran hindert, Ihre eigene Datenzugriffsschicht zu schreiben, um die ODBC-Datenbank abzufragen. Sie können auch Ihre eigene Entity-Ebene erstellen, sodass das MVC-Modell Ihre Entitäten mithilfe der Datenebene füllen und diese Objekte an den Controller zurückgeben kann.

Grundsätzlich verfügen Sie über einen Datenzugriffs- und Entitätslayer unter Ihrer mvc-App. Sie können diese Entitäten dann zu einem späteren Zeitpunkt durch Entitätsframework- oder nhibernate-Entitäten ersetzen.

Diese Vorgehensweise bedeutet, dass Ihre MVC-Anwendung nicht wissen muss, welche Datenbank sie verwendet. Dies bedeutet auch, dass Sie eine einfache Zeit haben sollten, wenn Sie später eine Entität wechseln.