___ tag123aspnetmvc3 ___ ASP.NET MVC 3 ist die dritte Hauptversion der Model-View-Controller-Erweiterung für die Entwicklung von Webanwendungen in einem .NET-Framework.
___ tag123service ___ Ein Dienst ist eine ausführbare Datei mit langer Laufzeit, die bestimmte Funktionen ausführt und keine Benutzereingriffe erfordert.
___ qstnhdr ___ Controller - Service - Repository: Ordnet Service die Entity ViewModel zu?
___ answer11538755 ___
ViewModel enthält Daten, die für die Anzeige des Modells in der Ansicht erforderlich sind. Wenn Sie eine andere Ansicht verwenden (z. B. eine mobile Anwendung oder eine Desktopanwendung oder sogar einen Webdienst), benötigen Sie weitere Daten, die in der Ansicht angezeigt werden. Wenn Sie auf der Serviceebene Zuordnungen vornehmen, können Sie diese nicht mit einem anderen Anwendungstyp verwenden. Daher ist der Controller ein Ort, an dem Sie Domain-Daten zuordnen, um sie in der Ansicht anzuzeigen (unabhängig von der Art der Ansicht, die Sie haben).
___ tag123repositorymattern ___ Das Repository-Muster bietet eine Möglichkeit, eine Isolierung zwischen der Datenzugriffsebene Ihrer Anwendung und der Business-Schicht bereitzustellen
___ qstntxt ___
Ich habe MVC-App, mit "M" einschließlich Service-und Repository-Schichten.
Allerdings bin ich etwas verwirrt darüber, wo und wie man ein paar Dinge macht.
- Ein Service ruft zwei Repositories auf oder ruft ein eigenes Repository und einen anderen Service auf
z.B.
Ich habe einen ReferenceDataService, der die gesamte Logik für CRUD mit meinen Referenztabellen behandelt.
Dann in meinem "CustomerService" muss ich meine Referenzdaten "R", um z. Beschreibung statt Id. Also, rufe ich das ReferenceDataService oder ReferenceDataRepository auf?
- Auf einer Ebene möchte ich von Entity zu ViewModel mappen.
Tue ich dies in meiner Service-Schicht oder im Controller?
z.B. Führt mein ServiceLayer die Zuordnung / Logik von VM zu Entity und zurück?
Danke:)
___ answer11538649 ___
- Repositorys sprechen mit einer zugrunde liegenden Datenquelle.
- Serviceebene spricht mit Repositorys mit Domänenmodellen. Es akzeptiert / übergibt Domänenmodelle von / an die Repository-Schicht.
- Der Controller spricht mit der Serviceebene. Der Controller übernimmt / übergibt Domänenmodelle von / an die Serviceschicht.
- Der Controller ruft die Zuordnungsebene (falls vorhanden) auf, um zwischen den Domänenmodellen und den Ansichtsmodellen zu mappen. Wenn Sie keine Mapping-Ebene haben, können Sie die Zuordnung in Ihrem Controller vornehmen, was jedoch schnell umständlich werden könnte. In diesem Fall könnte AutoMapper bereitgestellt werden als eine sehr praktische Mapping-Schicht.
Ein noch einfacheres Szenario ist, wenn Sie keine Service-Schicht benötigen, was in kleineren Anwendungen oft der Fall ist. Eine Service-Schicht bringt keinen Nutzen. Der Controller spricht also direkt mit den Domänenmodellen mit den Repositories.
___