Ho seguito alcuni tutorial in ASP.NET Core MVC e ho creato una piccola app (per esaminare i problemi nei vecchi esami) che ha un aspetto approssimativo come questo:
Solution
Project
...
Models
Exam.cs
Problem.cs
SubProblem.cs
Views
Exam
Index.cshtml
Problem.cshtml
Shared
Controllers
ExamController.cs
Data
ExamsContext.cs
DbInitializer.cs
Migrations
...
Ora ho posto la domanda Dove inserire i metodi in un'app Web .NET Core MVC e ottenere alcune risposte. Principalmente La logica aziendale dovrebbe essere nel modello solo perché questa logica è indipendente dalla tecnologia
Ora ho chiesto se questo significa che dovrei aggiungere metodi ai miei modelli ( Exam.cs
, Problem.cs
, ecc.). Dov'è stata fornita una spiegazione dei livelli, quali sono i livelli di accesso ai dati e il modello di business e a cosa servono.
Apparentemente, il DAL dovrebbe comunicare con il database e non contenere alcun metodo logico. In C #, queste classi hanno spesso la forma di un POCO. Inoltre, questo layer è parte del Modello (nel senso MVC).
Per me, questo suona molto simile alle classi che ho nella mia cartella Model, sono POCO senza metodi usati per comunicare con il database?
Il modello di business è apparentemente la cosa che dovrebbe riflettere la realtà aziendale. È qui che dovrei aggiungere la mia logica aziendale, disaccoppiata dal database e dall'interfaccia utente. Anche questo layer fa parte del Modello (nel senso MVC).
Per me questo suona quasi come le classi che ho nella mia cartella Model, anche se non sono realmente disaccoppiate dal database (sono loro). Voglio dire che si collegano al database tramite DbContext no?
Ancora non mi sento davvero di aver capito come implementare queste cose nella mia soluzione di cui sopra. Anche se non volevo gonfiare la mia domanda precedente con ripetute domande di follow-up, così ho pensato di fare nuove domande:
-
Come sono chiamati i modelli che ho nel mio progetto? Sono una qualche forma di "modello" connesso al DAL? Sono i miei "modelli di business"? Sono qualche terzo tipo di modello? Le esercitazioni lo descrivevano come se i modelli fossero solo rappresentazioni code-first delle tabelle nel mio database relazionale.
-
Come faccio ad implementare tutti questi livelli e altri modelli nella mia soluzione? Che aspetto potrebbe sembrare approssimativo?