Press "Enter" to skip to content

Category: Intermediate

Mini tutorial sull’uso di Timer e Queues per temporizzare l’esecuzione di task

Questo mini progetto è stato creato in risposta ad una domanda posta sui forum Microsoft Italia, Questa in cui è stato chiesto come fare a ritardare la lettura di un file utilizzando un timer e poi, approfondendo la richiesta, come fare a non eseguire l’operazione, in questo caso lo spostamento…

Comments closed

Usare il ViewModel per il Binding di Controlli generati a runtime

Rispondo ad una domanda posta sui forum Microsoft da uno sviluppatore che sta generando una interfaccia utente WPF in cui vi sono dei controlli generati a Runtime con alcuni dati, che sono calcolati in base al valore impostato su uno dei controlli generati a runtime. In questo caso, il suo…

Comments closed

InnoSetupFilesGen – Automatizzare le operazioni manuali.

InnoSetupFilesGen, è una piccola utility per automatizzare la creazione della lista dei files di una applicazione per il compilatore di InnoSetup, questa operazione effettuata manualmente potrebbe portare ad errori, a dimenticarsi qualche file, a dimenticarsi di aggiornare un file quando si aggiunge un reference nuovo, pertanto automatizzarla ci aiuterà ad evitare errori non voluti quando creiamo un setup.

Si tratta di una applicazione molto semplice. Una applicazione Console a cui passare una serie di parametri che le permettono di produrre uno script con la lista dei files che compongono il setup di una applicazione.

Comments closed

1 – Multi Clock – Un applicazione in WPF

Qualche giorno fa, ero in ferie e ovviamente pioveva a dirotto, così ho deciso di fare una piccola applicazione che serve a me e ai miei colleghi in ufficio visto che lavoriamo quasi esclusivamente con aziende estere e più o meno tutte sono su fusi orari diversi dal nostro. Mentre sviluppavo la piccola applicazione che mi sono immaginata, mi sono resa conto che pure essendo semplice, potrebbe essere didatticamente interessante, pertanto, invece di farla divenire un progetto aziendale, l’ho fatta divenire un progetto DotNetwork, e la costruirò usando questo articolo, poi la modificherò aggiungendo nuove funzionalità e spiegando varie cose in alcuni articoli successivi.

L’applicazione verrà sviluppata in MVVM basico, cercando di far comprendere i concetti fondamentali del Binding e facendo vedere a chi si approccia alla programmazione C# XAML che non è difficile, che è potente e davvero ottima per creare applicazioni desktop.

La User Story

Partiamo indicando quali sono le richieste dei “clienti” in questo caso io e i miei colleghi. Spesso, ci troviamo ad organizzare video conferenze con i nostri clienti che si trovano su fuso orario diverso, pertanto se prima di chiamarli possiamo sapere che ore sono a casa loro evitiamo di svegliarli alle quattro del mattino, o di chiamarli mentre sono a pranzo o a cena. Per farlo, ci serve avere un orologio che possa mostrare l’ora di un diverso fuso orario. Ovviamente, l’appetito vien mangiando e la richiesta è divenuta, “Ma non potremmo avere un applicazione con una serie di orologi?”. Pertanto la storia è la seguente:

“Vorremmo un applicazione che ci mostri l’ora locale e l’ora di almeno due o tre diversi fusi orari, quelli che usiamo più spesso così è facile sapere come schedulare video conferenze, telefonate e anche appuntamenti.”

Comments closed

Creare una Dll .Net utilizzabile dal VBA di Excel

Un post in risposta ad un quesito posto sul Forum Microsoft in cui un Temerario che ha la necessità di utilizzare delle funzioni .Net da dentro Excel chiedeva come mai non riusciva a vedere una libreria .Net da dentro a Excel.

Credo che l’ultima volta che ho usato questa cosa sia stato il 2005, poi, per mia fortuna ho potuto evitare l’interoperabilità, anche perché sono sempre maggiori i paletti inseriti all’interno degli strumenti office per paura della creazione di virus che possano danneggiare i computer.

Ad ogni modo, ho creato una libreria esempio, seguendo quanto esposto da chi ha fatto la domanda e ho verificato tutti gli step necessari a poterla utilizzare dentro al VBA di Excel.

solution_01

Comments closed

Come creare un applicazione WPF che rimane in esecuzione mostrando icona e menu in Tray Area

A seguito di una richiesta effettuata sul forum italiano Microsoft, esattamente Questo Thread ho deciso che oltre all’articolo che mostra come usare la Notify Icon di Windows forms per mostrare la sua icona nella Tray Area di scrivere anche lo stesso progetto per WPF, pertanto sono andata a cercare il componente corrispondente nel framework WPF. Sfortunatamente, come per altri controlli, non esiste un controllo standard del framework che permetta di fare tutto ciò. La soluzione più semplicemente suggerita è quella di utilizzare il controllo Windows Forms oppure un controllo di terze parti.

Se volete utilizzare un controllo avanazato scritto da un “code addict” e disponibile gratuitamente, ecco il link al blog di Philipp Sumi dove potete trovare il controllo WPF Notify Icon, e se mi scappa magari farò un post utilizzandolo.

Io invece, faccio l’esempio da pigrizia totale e utilizzerò il controllo Windows Forms, anche perché serve a dimostrare l’interoperabilità fra Windows Forms e WPF.

solution_01

Comments closed

Come creare un applicazione Windows forms che rimane in esecuzione mostrando icona e menu in Tray Area

A seguito di una richiesta effettuata sul forum italiano Microsoft, esattamente Questo Thread ho deciso di scrivere un piccolo progetto che dimostra come utilizzare la Notify Icon di Windows Forms per creare un applicazione che non si chiude quando chiudiamo la sua finestra principale ma rimane in esecuzione in Tray Area dove ha un menu contestuale per richiamare la finestra o fare altri tipi di  operazione.

solution_01

Comments closed

Creare, attivare, disattivare controlli a runtime

In risposta ad una domanda posta su Stack overflow  dove un utente chiedeva come creare dei controlli a runtime che simulino una ShowDialog, visto che mi sembrava una richiesta interessante a cui rispondere ho creato un piccolo esempio che effettua esattamente questo. Vediamo come ho fatto.

mainwindow_01

La main window simula un programma con varie funzionalità sulla finestra principale. Lo spazio vuoto è destinato ad accogliere gli user control generati a runtime. Le textbox ed i bottoni sulla sinistra non hanno alcuna funzionalità, mentre i tre bottoni in basso creano i controlli “showdialog”.

Comments closed

Convertire un file XML o JSON in un foglio di Excel

Visto che ho postato come fare il contrario, e visto che la documentazione su EpPlus è davvero scarsa, ho deciso di postare anche l’esempio contrario, ovvero come generare un foglio di Excel elaborando una collection che abbiamo recuperato leggendo un file XML oppure un file JSON. Ovviamente mi limiterò alle basi, ma EpPlus è in grado di aiutarci a produrre dei fogli excel anche molto complessi e contenenti non solo semplici dati tabellari ma grafici, pivot e molto altro.

Ho pubblicato qualche post fa un esempio d’uso degli oggetti di stampa di .Net per windows forms, ma normalmente, gli output dei miei programmi sono più spesso dei fogli di Excel, principalmente perché lavorando su progetti che riguardano l’analisi e la trasformazione di dati grezzi in dati di qualità, quello che io produco solitamente viene ulteriormente elaborato da chi riceve gli output. E’ comunque buona cosa per chiunque faccia programmi per il mondo delle aziende pensare di inserire in modo standard la possibilità di effettuare un output dei dati che elaboriamo su un foglio di Excel.

mainwindow_01

Comments closed

Come Usare due diverse liste per pilotare un singolo dettaglio

Questo esempio è stato creato in risposta ad un thread sul forum Microsoft che riguardava Un problema sull’assegnare il focus su una maschera con due liste in realtà il problema non è il focus sulle Liste, ma un problema un po’ più “tricky” più complicato e legato alla gestione del databinding.

Questo esempio mostra come aggirare questo tipo di problema, ma poi mostro anche come approccerei in modo diverso l’interfaccia per evitare il problema, vediamo intanto cosa abbiamo creato e come funziona e poi discuteremo una possibile alternativa allo scenario.

mainwindow_01

Da quanto indicato da chi ha posto il quesito sul forum, la sua interfaccia per la messaggistica interna all’azienda ha una finestra con due liste, messaggi IN e messaggi OUT, al click di un messaggio, il suo contenuto viene visualizzato nella parte di dettaglio.  Il problema segnalato è che quando l’utente passa da una lista all’altra il messaggio selezionato non cambia sempre e quindi l’utente non comprende cosa sta guardando.

Vediamo come abbiamo implementato la parte XAML.

Comments closed