Ist es ratsam, ein Web-Programm als Schnittstelle zu einer Datenbank-agnostisch Schicht zu machen?
-
28-09-2019 - |
Frage
Ich bin ein WinForms-Programmierer vor; Ich habe immer Partition Programme, die ich in zwei Teilen zu schreiben, das Front-End (WinForms) und die mittlere Ebene (erleichtert durch Remoting / WCF)
An diesem Ansatz wird die Front-End-Code kann nicht auf die Linq oder System.Data.SqlClient. Aber das den Vorteil hat, dass die mittlere Ebene ist ein Instant-SOA-Bürger (serviceorientierte Architektur) kann in B2B-Szenarien verwendet wird, Datenbank-agnostisch und Internet-fähig, auch ist es nur eine WinForms-Anwendung.
Jetzt lerne ich Web-Fähigkeiten. Unter Verwendung des SportsStore Projektes aus dem Buch Pro ASP.NET MVC, ist es unvermeidlich, dass ich meinen alten vergleichen würde (?) Ansatz (die mittlere Ebene) und den Repository-Ansatz auf diesem Buch. Der Repository Ansatz setzt den Datenzugriffsmechanismus (Linq to SQL) direkt am Front-End (SportsStore.WubUI). Mit dem Repository-Ansatz hat der SportsStore.WebUI noch eine direkte Verbindung zur Datenbank.
Die Frage ist, auf Web-Programmen, soll ich die Front-End-aspire macht nur als Schnittstelle zu einer mittleren Ebene (so die Front-End-Datenbank-agnostisch sein kann und das Middle-Tier ist ein Instant-SOA-Bürger), oder soll ich die Datenbank direkt (mittels Repository Ansatz, ORM, oder ähnliches) auf Front-End?
Lösung
Ich bin sicher, dass das Buch einige Best Practices für die der Kürze halber verletzt hat. Autoren haben zu balancieren „wie bekomme ich meinen Punkt über“ versus „was ist der richtige Weg, es zu tun“; sie in der Regel entscheidet sich für das erstere. (wie sie sollten - dies ist ein Buch über Web-Entwicklung, nicht um Architektur, rechts)
Sie sollten unbedingt weiterhin n-Tier-Architekturen verwenden. Der springende Punkt der n-Tier-Architektur ist es, Sie zu ermöglichen (mehr) leicht Swap aus den Schichten -. Schalter Datenbanken, Schalter Benutzeroberflächen (ersetzen WinForms mit ASP.NET, zum Beispiel)