Logica aziendale nei modelli?

3

Uso il modello di repository per la gestione dei dati.

Nella mia cartella DAL ho IUserRepository, UserRepository e UserContext. All'interno della cartella dei modelli ho una classe chiamata User come id , username etc.

Ho letto su internet che dovrei fare il meno possibile nel controller. Cosa intendono?

Voglio determinare dove mettere la logica di business Ad esempio voglio pagina una pagina di accesso. Cosa accadrebbe se inserissi la funzione di login accanto ai modelli?

using IndividueleOpdracht.Dal;

namespace IndividueleOpdracht.Models
{
    public class AccountModel
    {
        public void Login(string username, string password)
        {
            // Do something with the repositories?
        }
    }
}

E poi chiama il metodo AccountModel.Login nel controller?

    
posta yooouuri 28.11.2015 - 10:27
fonte

1 risposta

3

I read on the internet that I should do as less as possible in the controller. What do they mean?

Significano che il Controller è una parte dell'interfaccia utente. E dovresti fare solo cose relative alla UI al suo interno. Se hai bisogno di qualcosa con i tuoi dati di modello, collochi tali azioni in un altro livello (livello di business, livello logico, chiamalo come preferisci) e chiama quel livello dal controller.

I want to determine where to put the business logic For example I want to page a login page. What would happen if I put the login function alongside the models?

Devi seguire SRP quando determini dove mettere le cose. Il login non mi sembra un metodo del modello utente stesso. Più simile al modulo di autorizzazione / autenticazione del tuo livello aziendale. Ma tu decidi, naturalmente.

    
risposta data 04.12.2015 - 13:44
fonte

Leggi altre domande sui tag