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 closedTag: CommonLibraries
In risposta a Questo thread postato oggi sul forum Microsoft C# in cui un utente vuole implementare una chat crittografata utilizzando il metodo AES e ha trovato delle difficoltà.
Rispondo pubblicando un esempio di codice con i metodi che utilizzo io per questo tipo di crittografia.
Comments closedIn 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 closedLa 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 closedIn questa breve serie di Post, utilizzeremo quanto finora sviluppato per iniziare a costruire un’interfaccia avanzata per la console del nostro servizio Windows, in modo da poter costruire i Job che gli faremo eseguire. In Questa prima parte porteremo in libreria il CloseableTabItem che abbiamo costruito nel precedente post e faremo un paio di modifiche interessanti, nel post successivo andremo a creare la User Interface per gestire i Job all’interno della console del servizio.
Comments closedUn 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 closedNel 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 closedIntroduzione
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 closedVediamo 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