Avete un fantastico software che viene eseguito in console mode ??

Avete necessità di dotarlo di una progress bar per farlo sembrare "più figo" ??

Per quanto possa essere figa una Console App ovviamente......

Allora questo post fa per Voi !

Recentemente mi trovavo in una situazione simile, e dopo aver ricercato in rete ho trovato la seguente soluzione, elegante ed efficace, che desidero condividere con Voi.

Infatti è inutile inventarsi soluzioni esotiche e/o personalizzate: affidatevi senza timore al pacchetto NuGet ShellProgressBar: è semplice, gratuito (MIT License) e funziona perfettamente.

Vi assicuro di non centrare assolutamente nulla con l'autore del software oggetto di questo scritto (tra l'altro gratuito): semplicemente è un buona soluzione che intendo condividere.

Sono certo che in giro si trovano altre soluzione molto più articolate, ma questa che presente è realmente semplice e ritengo più che soddisfacente per la maggior parte degli usi.

Sottotitolo: Tutto quello che Vi serve sapere per creare un bel documento Microsoft Word da codice C#.

L'esigenza è semplice: ottenere dai dati gestiti dal nostro fantastico software un documento Microsoft Word che riporti un'analisi degli stessi.

Manco a dirlo il documento deve avere delle tabelle, con i dati presentati in modo sensato e graficamente convincente.

L'attività di per se è abbastanza semplice, ma ritengo non sia altrettanto semplice trovare tutte le informazioni necessarie.

Per esempio come mettere una tabella nell'header del documento in modo tale che lo stesso sia riportato in ogni pagina ?? Come annegare dentro questa un'immagine ?? Come porre dei testi in verticale ? Semplici domande e le cui risposte non sono facilmente rintracciabili.

Ci ho messo un pò a reperire tutte le dritte necessarie, per cui ho pensato di raggrupparle tutte insieme per aiutare altri che possano avere un'esigenza simile.

Per iniziare occorre dire che tutte le funzionalità qui presentate usano esclusivamente le API messe a disposizione da Microsof Office: è banale sottolinearlo, ma occorre che sia sulla macchina di sviluppo su cui andremo a implementare il codice, che sulla macchina destinataria dell'utilizzatore, il pacchetto office deve essere correttamente installato e funzionante.

Con il rischio di offenderVi ulteriormene devo anche dire che occorre anche aggiungere al progetto il riferimento a Microsft Office Object Library. Fatto questo avremo la possibilità di accedere a tutte le funzioni viste nel seguito.

Altrimenti..... No office... No party.....

In questi giorni mi è capitata la necessità di investigare le cause di un comportamento anomalo che occorreva in modo casuale in un software di nostra produzione, e che si appoggia su un'istanza di database di Sql Server.

Il punto incriminato era una stored procedure, che veniva eseguita all'interno di una transazione molto complessa, con diversi punti del codice e diversi alltri oggetti di Sql Server richiamati alla bisogna.

La cosa più ovvia è stata mettere un sistema che permettesse di eseguire il log degli eventuali errori in modo da eseguire in modo efficace l'Handling SQL Server Errors.

Dopo un pò di ricerche ho pensato di porre il codice incriminato un blocco try/catch, in modo da poter analizzare nel seguito le cause di questa malfunzione.

Ignorantemente non conscevo la possibilità di utilizzare in una stored procedure i blocchi try/cath, al fine di monitorare eventuali errori.

Chi si occupa di IT e di sicurezza in questi giorno ha avuto il suo bel daffare nel rispondere alle domande di molti utilizzatori di sistemi informativi terrorizzati di essere oggetto di un attacco da parte di Wannacry.

Grazie al cielo per la maggior parte delle volte si è trattato solo di questo: l'Italia questa volta ha subito questo nuova infezione in modo assolutamente trascurabile.

L'estensione del fenomeno, comunque, è su scala mondiale, e i numeri dei sistemi infettati è talmente alto che da giorni i giornali ne parlano: per questo vorrei scriverne un poco sul mio blog analizzando alcuni aspetti che possono essere sconosciuti a chi non si occupa giornalmente di IT.

Inziamo con il dire che wannacry fa parte della tipologia di virus chiamati ransomware: questa tipologia di attacco (che molti esperti affermano non far parte propriamente della categoria virus) nella pratica cripta i file e li rende inutilizzabili. Altri nomi dello stesso virus sono WannaCrypt WanaCrypt0r e Wanna Decryptor.

La genesi dell'attacco è il seguente.

Una mail o un messaggio spedito in chat dotato di un allegato in grado di diffondere questo attacco viene inviata a un destinatario che, in modo improvvido, apre l'allegato stesso. Questo file di solito ha l'aspetto di un normale documento pdf o anche excel, e nulla di nulla fa presagire il suo contenuto malevolo: in realtà, però, contiene un codice eseguibile capace di eseguire l'infezione.

Quindi quando si apre questo allegato in modo silente il codice prende possesso di tutti i file che possono essere raggiungibili dalla macchina (sia locali che posti sulle share di rete) e li cripta in modo da renderli inutilizzabili.