Programmazione Asincrona e void

Uno degli errori da evitare nella programmazione asincrona in c# (tramite async e await) è quello di creare metodi che restituiscono void.

L’utilizzo di metodi asincroni che ritornano uno void (async void) introducono due tipologie di problemi:

  • non è possibile determinare quando il task è stato completato
  • le eccezioni che vengono generate al suo interno producono come risultato la terminazione del processo

Continua a leggere Programmazione Asincrona e void

Programmazione Asincrona con Async e Await

L’introduzione di async e await consente di scrivere codice asincrono, come se si trattasse di codice sincrono

Non sempre però l’utilizzo della Programmazione Asincrona con Async e Await viene utilizzata in maniera appropriata: è necessario seguire alcune linee guida per evitare di incappare in problemi non sempre di facili risoluzione.

Nei prossimi articoli tratteremo alcuni errori tipici dovuti all’utilizzo non proprio appropriato delle keyword async-await.

Continua a leggere Programmazione Asincrona con Async e Await

C# – Tuple

Se da un metodo dobbiamo ritornare più di un valore possiamo utilizzare uno dei seguenti modi:

  • utilizzare un parametro con la parola chiave out (passaggio per riferimento)
  • ritornare una struttura dati o una classe
  • ritornare un tipo anonimo tramite un tipo dinamico (sconsigliato!)

La quarta soluzione possibile sono le tuple, introdotte all’interno del framework 4.0 e referenziate all’interno di System.Tuple.

Continua a leggere C# – Tuple

Javascript e refactoring

Mi è capitato di mettere mano a codice javascript scritto qualche anno fa: mi sono accorto che l’utilizzo di Typescript ha cambiato profondamente il mio modo di programmare. Nel corso degli anni mi sono ricreduto sull’utilizzo di javascript che si è dimostrato affidabile e universale, ma sicuramente (almeno per me) inizialmente ha comportato non pochi problemi. L’introduzione di Typescript mi ha consentito di scrivere codice javascript imponendomi delle regole: l’adozione di classi, metodi e di un metodo di programmazione più rigoroso mi ha consentito di ottenere senza dubbio numerosi benefici.

Continua a leggere Javascript e refactoring

Interfacce custom e generics

Nell’articolo precedente abbiamo introdotto i generics.  In questo nuovo articolo introduciamo le interfacce generiche.

Nulla di particolarmente complesso, è sufficiente definire nel modo tradizionale l’interfaccia, indicando però un parametro generico:

Continua a leggere Interfacce custom e generics