Skip to main content

Classe C# per serializzare e deserializzare oggetti in XML e JSON in ASP.NET

A grande richiesta condivido un piccolo helper, realizzato ormai diversi anni orsono, che ancora utilizzo quando ho bisogno di effettuare operazioni di Serialize/Deserialize di oggetti POCO in C#: i formati supportati al momento sono XML e JSON, ovvero i più diffusi e utilizzati in ambito web, ma è possibile estenderla anche ad altri.

Come potrete vedere si tratta di una semplice classe statica che include una serie di “coppie di metodi” per la serializzazione e deserializzazione corrispondente: il primo elemento di ciascuna coppia – quello che si occupa della serializzazione di un oggetto T – è stato implementato in modo tale da poter essere utilizzato anche come  extension method, ovvero partendo direttamente dall’oggetto che si desidera serializzare. Può essere utilizzata all’interno di qualsiasi libreria di classi o anche direttamente inclusa in un progetto Web Forms, Windows Forms, MVC, WebAPI, .NET Core o di qualsiasi altro tipo.

Questo l’elenco dei metodi attualmente implementati:

  • SerializeObject / DeserializeObject
  • SerializeObjectUsingBinaryFormatter / DeserializeObjectUsingBinaryFormatter
  • SerializeToXML / DeserializeFromXML
  • SerializeToJson / DeserializeFromJson

(altro…)

 

Classe ASP.NET C# per il controllo e il calcolo formale del Codice Fiscale

Non c’è programmatore italiano (o che abbia lavorato in Italia) che non si sia dovuto cimentare almeno una volta con processi di verifica, calcolo e/o controllo formale del Codice Fiscale: si tratta di un evergreen dello sviluppo software del nostro paese, necessario in qualsiasi contesto che coinvolga la gestione dei dati personali di qualcuno: anagrafiche, flussi, gestionali, strumenti di calcolo economico/finanziario… I campi di applicazione sono pressoché infiniti e tutti, immancabilmente, richiedono prima o poi di svolgere una o più delle summenzionate operazioni.

Per questo motivo, ormai molti anni fa, ho sviluppato una classe in ASP.NET C# che consente di svolgere la maggior parte di queste operazioni. Poiché a distanza di molti anni continuo a utilizzarla moltissimo ritengo che possa essere utile condividerla, nella speranza che possa semplificare la vita di altri colleghi sviluppatori.

(altro…)

 

TimeTracker: una classe C# per misurare il tempo di esecuzione del codice

Una delle esigenze più sentite – e più importanti – quando si scrive codice è quella di trovare il modo di svolgere l’attività richiesta garantendo le migliori prestazioni possibili. Per far questo è indispensabile dotarsi di uno strumento che ci consentano di misurare il tempo di esecuzione di ciascuna operazione o blocco di operazioni, possibilmente in unità di tempo adeguate (millisecondi o nanosecondi) e con una precisione il più possibile accurata.

Ovviamente, tale strumento deve dare la possibilità di misurare più operazioni all’interno del medesimo contesto di esecuzione,  in modo che sia possibile definire vari lap e confrontarli tra loro: insomma, stiamo parlando in buona sostanza di qualcosa che fornisca le funzionalità tipiche di un comune cronometro.

Con questo obiettivo in mente alcuni anni fa ho sviluppato una classe che consente di fare esattamente questo. Il suo nome è TimeTracker e può essere utilizzata per creare un numero n di lap nel corso dell’esecuzione di un qualsiasi programma. Ciascun lap, una volta creato, può essere confrontato con qualsiasi altro lap sulla base di uno dei formati temporali disponibili: nanosecondi, microsecondi, millisecondi, secondi, minuti o ore.

(altro…)

 

Correggere l’orientamento delle foto scattate con iPhone e/o Android con .NET C#

Se siete degli sviluppatori di app e/o vi capita di lavorare spesso con immagini che contengono fotografie scattate da cellulari e/o tablet conoscerete senz’altro il classico problema delle foto “orientate male”, ovvero scattate con il dispositivo girato in una posizione particolare: la particolarità di queste foto è che tendono a visualizzarsi correttamente sul telefono e/o tablet, ma non sulla maggior parte degli applicativi e/o software desktop dove appaiono, per l’appunto, girate di 90, 180 o 270 gradi rispetto alla loro posizione ideale.

(altro…)

 

Custom DateTime Converter con Json.NET per gestire formati non-standard, empty string e valori null

La corretta gestione delle date e dei loro molteplici formati è da sempre una delle più grandi seccature per qualsiasi sviluppatore abituato a lavorare in un contesto multi-language, soprattutto quando si lavora con formati di interscambio dati basati su stringhe di testo come XML, CVS o Json. Fortunatamente per chi lavora in ambiente .NET esistono numerose librerie native e di terze parti che consentono di gestire in modo automatico la maggior parte di queste problematiche: per quanto riguarda Json la più nota – e a mio avviso la migliore – è senza ombra di dubbio Json.NET di Newtonsoft, che grazie ai suoi metodi SerializeObject e DeserializeObject consente di convertire intere classi in formato Json e viceversa senza alcuna fatica.

Per una guida all’utilizzo di quest’ottimo prodotto gratuito vi rimando alla documentazione ufficiale, ricca di esempi e demo di facile comprensione. In questo articolo, dando per scontato che sappiate già come utilizzare questo utilissimo strumento, tratterò una problematica specifica, ovvero come fare per de-serializzare correttamente una stringa di input in formato JSON contenente una o più date scritte in formati diversi tra loro, inserite come stringa vuota o comunque differenti rispetto ai formati standard.

(altro…)