Press "Enter" to skip to content

Category: Classi di uso comune

17 – Lavorare con i dati – Classi di uso comune, un aggiornamento generale con cambio framework

Prima di utilizzare i Setting applicativi ed utente nell’applicazione UsersDb, devo aggiornare, verificare (e lucidare) le librerie di uso comune Dotnetwork, che ho iniziato a sviluppare nei primi post di questo blog e proseguito negli anni fino ad oggi. DotNetwork, le librerie di uso comune: Le librerie di uso comune…

Comments closed

Utility e User Experience in WPF

In questo progetto implementeremo una semplice utility per verificare la target platform delle Dll e degli Exe memorizzati su una cartella e ne approfitteremo per mostrare come utilizzare la classe AutoSettingsManager già  implementata nella console del MiniSqlAgent, per migliorare la User Experience. Inoltre, visto che è un utility che possiamo “utilizzare” creiamo anche il setup della stessa utilizzando InnoSetup e mostriamo come utilizzare Visual Studio per effettuare la build del setup grazie ai Post Build Events.

Comments closed

Common Libraries – Implementare una Window WPF con funzionalità estese

In questo post, vedremo come WPF ci permetta di derivare le proprie classi per permetterci di aggiungere funzionalità anche quando non vogliamo modificare l’aspetto visuale della classe WPF. In questo caso, avendo introdotto nel post precedente un sistema di memorizzazione di parametri di stato per la User Interface delle nostre applicazioni, vogliamo estendere la Window WPF e creare una nuova Window che sappia automaticamente come salvare la propria dimensione. Fatto questo, useremo questa nuova window come classe base per la MainWindow di MiniSqlAgentConsole.

Comments closed

Common Libraries – Una classe per memorizzare informazioni sullo stato della User Interface WPF

La dimensione delle finestre è ovviamente un esempio di ciò che si può fare con questo tipo di funzionalità, un’altra potrebbe essere quella di riaprire le finestre che erano aperte nell’ultima sessione di lavoro, ripopolare i parametri di filtro su una finestra dati, ed altre cose che rendono la vita dell’utente più semplice.

Non stiamo parlando di preferenze, ma di “stato” dell’applicazione.

Comments closed

Common Libraries – Un TabItem Chiudibile – Modificare un Template WPF

Un post che riporta ed estende un tutorial di csharpcorner e dimostra come modificare un controllo standard microsoft (il TabItem del TabControl) in modo da creare un interfaccia simile all’editor di visual studio, da utilizzare come bozza applicativa per le nostre interfacce WPF.

Comments closed

2 – Un sistema di messaggistica per molteplici usi – HTTP Sender e HTTP Listener – Il progetto di test

Nel post precedente abbiamo creato una libreria generica contenente le classi che implementano un HTTP listener ed un HTTP sender, in questo realizziamo una applicazione di test WPF che ci permette di verificare il corretto funzionamento delle due classi, in seguito proveremo ad inserire questi due oggetti in una applicazione reale, o meglio in due applicazioni, il servizio windows che abbiamo sviluppato e la sua console.

Comments closed

1 – Un sistema di messaggistica per molteplici usi – HTTP Sender e HTTP Listener – le librerie di base

Introduzione

Un servizio windows, per definizione non è dotato di interfaccia utente, è un po’ come una scatola nera con dei plug che riceve input e produce output ma senza alcuna interazione con l’utente.

Un servizio semplice, potrebbe avere bisogno esclusivamente di una console, come quella da noi costruita nei post precedenti, per configurarlo e per verificare che parte e si ferma. Potremmo anche aggiungere alla console creata un sistema veloce per consultare i log del servizio e fermarci qui.

Se il servizio è più complesso di quello che scrive dati su un file di testo che fin qui abbiamo sviluppato, l’amministratore potrebbe aver bisogno anche di valutarne il carico di lavoro, la funzionalità e quindi profilarne il funzionamento per potere ad esempio rispondere alla domanda: “Ma perché è così lento.” facendo un fine tuning della parametrizzazione del servizio.

Per fare questo abbiamo bisogno che il servizio sia in grado di essere monitorato in tempo reale, usando il log verboso che abbiamo introdotto nel primo sviluppo del servizio potremmo usare un file system watcher e monitorare il file di log, ma è un approccio un po’ troglodita, soprattutto se il log è massiccio.

A questo punto entrano in gioco gli oggetti che abbiamo inserito nel titolo di questo post. Un servizio può essere dotato di una interfaccia per comunicare con il mondo (in questo caso con il PC che lo ospita) utilizzando il protocollo HTTP, l’interfaccia può essere bidirezionale, quindi il servizio potrebbe ricevere dei comandi da un programma esterno e potrebbe trasmettere dati e richieste ad un programma esterno.

Ecco perché abbiamo deciso di sviluppare le classi necessarie a creare questo tipo di comunicazione.

Comments closed

Un Editor di tipo ComboBox Generato dinamicamente a Runtime

Vediamo come abbiamo modificato lo User Control che abbiamo implementato nel post Generazione di componenti da codice WPF per permettere di generare un Editor di tipo ComboBox implementando la possibilità di modificare dei parametri di configurazione di tipo enumerato.

Nel post precedente abbiamo già introdotto una modifica sostanziale a questo User Control determinata dalla verifica di possibili futuri problemi per implementare la logica applicativa. Abbiamo tolto a questo controllo le funzionalità di caricamento e salvataggio dei dati che saranno invece delegate al manager che lo utilizzerà nella user interface.

Comments closed

Librerie comuni – Un cambiamento strutturale ad una libreria di uso comune Note d’uso

Un articolo che illustra quello che spesso accade mentre sviluppiamo una applicazione, rileviamo un problema costruttivo e dobbiamo smontare qualcosa per ricostruire in un modo diverso. Credo che in edilizia si chiamino Varianti in corso d’opera, nello sviluppo di applicazioni sono esattamente la stessa cosa.

Dopo il  precedente post, che mostrava come creare un manager per i parametri di configurazione applicativi di un servizio, la prosecuzione logica dello sviluppo era quella di creare un progetto con un interfaccia utente per gestire questi parametri. Nei post precedenti abbiamo creato la struttura di base per trattare questo tipo di oggetti ed una interfaccia utente WPF che è in grado di gestirne una collezione creando dei controlli in modo dinamico in base al tipo di oggetto.

Comments closed