myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Web-Technologien » Wo implementiere ich die Business-Logik im Drei-Schichten Modell bei ASP.Net MVC Anwendungen?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Wo implementiere ich die Business-Logik im Drei-Schichten Modell bei ASP.Net MVC Anwendungen?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Telefisch Telefisch ist männlich
myCSharp.de-Mitglied

Dabei seit: 28.04.2008
Beiträge: 372
Entwicklungsumgebung: VS2017


Telefisch ist offline

Wo implementiere ich die Business-Logik im Drei-Schichten Modell bei ASP.Net MVC Anwendungen?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Forum,
in einem anderen Threat hat man mich auf das Drei-Schichten Modell der Programmierung hingewiesen.
Nun dachte ich bisher, dass in ASP.NET MVC der Controller die Logik-Schicht ist, wobei offensichtlich wohl eher zur Präsentationsschicht gehört.

Meine Frage ist daher, wie bzw. wo implementiere ich die Businesslogik?

Derzeit besteht mein Projekt klassisch aus einer Datenbank, diversen Controllern und den zugehörigen Views.

Im Grunde wird ja ein Datensatz im Controller geladen und dem View übergeben:

C#-Code:
FunctionGroup functionGroup = db.FunctionGroups.Find(id);
return View(functionGroup);

Wie würde ich das denn mit einer zwischengeschalteten Logikschicht lösen?
Eine Trennung in drei Schichten macht schließlich nur Sinn, wenn ich sie konsequent überall einsetze.

Gruß Carsten
23.01.2019 12:03 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.926
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Richtig, ASP.NET ist eine Präsentationstechnologie wie auch WPF (nur eben auch mit der Runtime drum rum).

Business Logik wird immer technologieneutral entwickelt; meist eben in Bibliotheken.
Ein Beispiel dazu siehst Du hier (von mir auf GitHub, basierend auf IMediatR):  https://github.com/BenjaminAbt/2018-Talk...nApiDevelopment

Ansonsten auch ein immerhin fast 6 Jahre alter Blogartikel von mir:  ASP.NET MVC - Arbeiten mit View- und SubmitModels
23.01.2019 12:13 Beiträge des Benutzers | zu Buddylist hinzufügen
Telefisch Telefisch ist männlich
myCSharp.de-Mitglied

Dabei seit: 28.04.2008
Beiträge: 372
Entwicklungsumgebung: VS2017

Themenstarter Thema begonnen von Telefisch

Telefisch ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

danke, isch gugge...
23.01.2019 12:34 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.177
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Dein Controller (bzw. das ViewModel in MVVM) gehört schon zur Präsentationsschicht.

Die Verarbeitung der Daten sollte in der BL erfolgen, die ist wie schon gesagt, unabhängig von der verwendeten Benutzeroberfläche.

Das Laden und Speichern der Daten, also Zugriff auf den EF-Context, ist dann in der DAL.

Wenn man seine Projekte so strukturiert, ist man meistens schon auf dem richtigen Weg.
23.01.2019 13:25 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 7 Monate.
Der letzte Beitrag ist älter als 7 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 25.08.2019 18:29