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…)

 

Come utilizzare DAO da Script VBA EXCEL quando MS Access non è installato o presente

Nonostante sia stato ufficialmente abolito già da diversi anni, l’interfaccia nota come Microsoft Jet Data Access Objects e meglio conosciuta come DAO è ad oggi tutt’altro che scomparsa, “nascondendosi” ancora di frequente in molti script VBA/VBS all’interno di file Excel, software scritto in VB6/VB2008, script di sistema e via dicendo. La presenza di DAO nel nostro sistema – o meglio, di applicativi che necessitano di una connessione basata su DAO – è particolarmente evidente se utilizziamo una versione di Windows successiva a Windows Vista, come ad esempio Windows 8 o Windows 10, poiché provoca inevitabilmente la comparsa di errori come questo:

DAO.DLL non trovato.
DAO.DLL not found.
Il file DAO.DLL è mancante.
The file DAO.DLL is missing.

O questo:

Quest’applicazione non è riuscita ad avviarsi perché dao360.dll non è stato trovato.
This application failed to start because DAO.DLL was not found. Re-installing the application may fix this problem.

O anche questo:

il provider ‘Microsoft.Jet.OLEDB.4.0’ non è registrato nel computer locale.
‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local machine.

(altro…)

 

Creare un Web Service SOAP con ASP.NET WCF, Visual Studio e IIS 8

Come abbiamo recentemente scritto qualche settimana fa in questo articolo, il modo più appropriato per creare un Web Service SOAP su ASP.NET è, ancora a fine 2016, quello di utilizzare il framework WCF (acronimo per Windows Communication Foundation): si tratta di una architettura che, nonostante gli anni comincino a farsi sentire, resta di gran lunga più versatile rispetto alle ormai più che obsolete pagine ASMX.

Nell’articolo precedente, oltre a risolvere un problema specifico legato alla configurazione di un servizio WCF su IIS8, abbiamo speso qualche minuto a ricordare le caratteristiche dell’architettura, presentata in pompa magna da Microsoft nell’ottobre 2008 e poi allontanata dai riflettori per lasciare spazio al paradigma Web API, adatto però solo ai Web Service REST. In questo articolo ci dedicheremo a riassumere i passaggi necessari per creare un Web Service SOAP partendo da zero utilizzando le ultime versioni degli strumenti necessari, ovvero: Visual Studio 2015 e Internet Information Services 8.

(altro…)

 

MySQL 5.6 – Come eseguire script da command-line senza password in chiaro con mysql_config_editor e Host Alias

Non c’è amministratore di sistema abituato a lavorare con MySQL che non abbia mai fatto uso di qualche console script per gestire backup, operazioni di manutenzione, allineamenti o altre procedure periodiche: nella maggior parte dei casi questi script vengono realizzati in PHP/bash (su OS Linux) oppure PHP/batch/Powershell (su OS Windows), quindi pianificati per una esecuzione periodica tramite cron job, operazioni pianificate, software di backup e via dicendo.

Si tratta di un approccio particolarmente efficace, specialmente per chi non ha intenzione di spendere soldi acquistando la licenza di altri software di gestione/automazione. Non è però un metodo esente da problemi, soprattutto in ottica di sicurezza: è infatti necessario inserire le credenziali dell’utente MySQL all’interno dello script e in modalità non criptata, mettendone quindi a rischio la password.

Consideriamo l’esempio seguente:

(altro…)

 

Eliminare i file di log di IIS più vecchi di una certa data con un file batch

I file di log di Internet Information Services costituiscono una risorsa irrinunciabile per qualsiasi amministratore di rete degno di questo nome, in quanto sono l’unico strumento che consente di tenere traccia in modo efficace di una serie di informazioni utilissime su chi visita i nostri siti e servizi web: per un elenco completo delle informazioni che sono in grado di memorizzare è possibile fare riferimento a questa pagina ufficiale che descrive il formato utilizzato, ovvero il W3C Extended Log File Format, al quale Microsoft ha scelto di uniformarsi a partire dalla versione 6 di IIS.

Premessa

Ovviamente la scelta su quali informazioni memorizzare e quali no dipende interamente dall’amministratore, il quale può optare per un livello di dettaglio più o meno approfondito tramite il pannello di gestione del servizio di pubblicazione web – anche noto come IIS Manager – facendo click sull’icona Logging, come è possibile vedere nella schermata di seguito:

iis-logging-screenshot

Come già detto poco sopra, attivare il logging del traffico dei propri siti è una scelta quasi obbligata per qualsiasi amministratore di rete. Oltre ad avere una indispensabile utilità statistica, si tratta di informazioni che è opportuno tenere anche per tutelarsi da una serie di potenziali problematiche di natura legale o penale: penetration attacks da parte di hacker o smanettoni in cerca di gloria, abuso dei servizi che vengono offerti al pubblico, e così via.

Si tratta di possibilità relativamente remote, ma attenzione a prenderle sotto gamba: qualsiasi servizio web che preveda la possibilità di effettuare un upload consente di fatto a un utente malintenzionato di caricare sul vostro sistema immagini, video, testi, brani musicale, software o altri file illegali che potrebbero prima o poi – se siete particolarmente sfortunati – essere oggetto di indagine da parte delle forze dell’ordine, con il conseguente obbligo di fornire tutti i log del caso. Ove mai un eventualità del genere venisse malauguratamente a verificarsi, la funzionalità di logging di IIS sarà una vera e propria manna dal cielo – ammesso che non l’abbiate disabilitata!

(altro…)