Verwenden Sie niemals Modelle, sondern nur ViewModels


8

Ich starte ein neues MVC 5-Projekt von Grund auf neu. Ich verwende EF 6 (Database First) und Identity 2.0.

Meine Lösung besteht aus 3 verschiedenen Projekten: Daten (mit einem .edmx- und meinem DB-Kontext), Ressourcen (für Lokalisierungszwecke) und Web (das Webprojekt selbst).

Ich verwende standardmäßig ViewModels für alle meine Ansichten. Jedes Mal, wenn ich eine neue Ansicht erstelle, füge ich als erstes das ViewModel hinzu (wenn die ViewModels zwischen ihnen verbunden sind, behalte ich sie alle in derselben Datei; z. B. alle ViewModels, die sich auf Benutzerkonten beziehen, die ich in AccountViewModels behalte). . Bisher hat dies die Dinge sehr einfach gemacht und einige Probleme gelöst, die ich zuvor hatte.

Aber ich frage mich, macht es für mich überhaupt Sinn, Modelle zu verwenden? Die einzige, die ich derzeit verwende, ist die für Identität, die standardmäßig erstellt wird und den ApplicationUser und ApplicationDbContext enthält, die sowohl spezifisch als auch für die Identität erforderlich sind. Abgesehen davon ist alles ViewModels.

  • Würde mein Datenprojekt als "Modell" für meine Anwendung angesehen? Daher verwende ich tatsächlich ein Modell, nur dass es sich nicht um eine Reihe von Klassen handelt, die ich in Web \ Models behalte, sondern um ein separates Projekt, in dem die "Modelle" (von Entity erstellte BL-Objekte) gespeichert werden. Ich denke schon, aber ich bin mir nicht sicher.
  • Ist dies ein richtiger Ansatz oder könnte es später zu potenziellen Problemen kommen? Es ist meine erste Einstellung zur Webprogrammierung, daher würde ich mich über jeden Rat freuen.

Antworten:


9

Würde mein Datenprojekt als "Modell" für meine Anwendung angesehen?

Ja, genau das soll Model sein.

Ist das ein richtiger Ansatz?

Ich glaube es ist.

oder könnte es später potenzielle Probleme geben?

Es wird definitiv geben. Die Beschreibung Ihrer Architektur ist jedoch so vage, dass wir nur raten können, auf welche Probleme Sie stoßen werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.