Domain Driven Design Nello sviluppo di un software è fondamentale definire un buon design consente di definire l’architettura in maniera comprensibile e spesso facilmente estendibile. Nello sviluppo di applicazioni complesse, infatti, non sempre il codice viene scritto per essere facilmente compreso e soprattutto esteso. I fattori di complessità di un software sono tipicamente di carattere tecnico, ma molto […]
Unit Test, un pò di confusione Inizierò questo post parlando di quello che non è Unit Test. Questo perchè molto spesso mi trovo a “lottare” con codice che NON è uno Unit Test. Se stiamo scrivendo del codice che scrive dati all’interno di un database, o che legge dati da qualche dispositivo I/O, non siamo in presenza di Unit Test. Gli […]
AspNet Core – Autenticazione basata su Claims Durante l’accesso ad un applicazione ASPNET distinguiamo le due fasi distinte: autenticazione: in questa fase viene verificato se l’utente esiste effettivamente all’interno del sistema, e quindi può accedere. autorizzazione: una volta effettuata l’autenticazione, per poter accedere ad una risorsa all’utente deve essere associata la relativa autorizzazione. All’interno di ASPNET Core 3.0 per abilitare il processi […]
Two Factor Authentication con Microsoft Authenticator Aggiungere un ulteriore componente nel flusso di autenticazione, basato solitamente su username e password, è spesso un requisito fondamentale. Questo tipo di approccio prende il nome di Autenticazione a due fattori (2FA) e solitamente fa uso di un elemento esterno che fornisce un pin, da inserire in fase di autenticazione, dopo l’inserimento della password.
C# 8.0 – Streams Asincroni Nell versioni precedenti di C# era già presente il supporto a iteratori e metodi asincroni. Una delle novità, molto utili, presenti in C# 8.0 è la combinazione dei due, per la creazione di streams asincroni. Questa funzioanalità è possibile, perchè sono state introdotte le versioni asincrone delle interfacce IEnumerable e IEnumerator : public interface IAsyncEnumerable<out […]