Originariamente inviata da
U235
Ciao,
Forse non ci siamo capiti, io ti suggerivo di non metterlo nella classe utente. In genere quando analizzo un problema scarto subito le soluzioni che risultano meno pratiche delle altre (immagino sia per tutti cos�
), ma questo non toglie che potrebbero anche essere corrette, da qui il mio: "potrebbe essere corretta".
Personalmente decido l'architettura in base allo scopo finale, per cui sarebbe sbagliato pensare di mettere un metodo prima di darli una precisa funzione all'interno del programma. Login vuol dire tutto e niente...
Comunque se vuoi provo a fare una forzatura.
Prova ad immaginare che voglia farmi un programmino in cui mantengo degli account fake o comunque diverse mie utenze web, potrei avere una classe base Utente in cui dichiaro il metodo login e questo magari agisce sul mio account gmail e scarica la posta. Successive derivazioni della classe potrebbero sovrascrivere il metodo login per farlo ad esempio sul sito di terzi. Prova ad immaginare una situazione in cui carico dinamicamente dei plugin esterni che derivano dalla mia classe base, io so solo che nel mio programma dovrò chiamare il metodo login utilizzando l'user e password di quella istanza (creata appunto tramite plugin in base alla discriminante del tipo), a me è trasparente cosa il plugin fa, per cui potrebbe essere molto utile avere un metodo login direttamente nella classe Utente. Ovviamente la stessa classe Utente pu� essere usata per serializzare i dati utente ad esempio con Entity Framework includendola come tipo DbSet in un proprietà di una classe che eredita da Da DbContext.
Invece tornando al motivo per cui ti suggerivo di non farlo, il punto � che dovresti evitare di mettere riferimenti ad uno o l'altro o gli altri ancora modi di serializzare i dati. Non metterei riferimenti a EF, metti caso che un bel momento decido di scrivere i dati in remoto al posto di usare EF, come potrei fare se ho delle dipendenze ad EF nelle mie classi? diventa un macello, sopratutto se condividi le stesse tra pi� piattaforme come ad esempio Android o IOS che a limite supportano EF con SQLITE, ma non � la stessa cosa...
Se poi nel tuo caso intendi non riutilizzare il codice, allora tutto ci� non ha molta importanza.