Tag: MiniSqlAgent
In quanto sviluppato fino ad ora per creare un servizio in grado di eseguire script SQL su un Sql Server in modo schedulato, abbiamo predisposto tutto quanto per una esecuzione molto semplice, lasciando al client ADO e alla configurazione del Server SQL il compito di decidere come eseguire gli script. In questo post, aggiungeremo un parametro di controllo fondamentale per i Jobs, ovvero la possibilità di decidere dopo quanto tempo la connessione andrà in timeout se non riuscirà a completare un Job.
Comments closedAlla distanza di 42 post dall’inizio della serie di quest’anno, arriviamo finalmente al post più importante per concludere lo sviluppo della versione 1.0 di MiniSqlAgent, un Servizio Windows in grado di eseguire in modo schedulato degli script SQL su qualsiasi SqlServer simulando in versione minimalista il Sql Server Agent. In questo post implementeremo quanto necessario ad effettuare le seguenti operazioni:
- Allo startup del servizio leggere tutti i Job memorizzati sulla cartella dati del servizio ed inserirli in una collection.
- Impostare un file system watcher che controlli se vengono aggiunti, cancellati, modificati dei Job sulla cartella dati riportando gli aggiornamenti sulla collection.
- Impostare il Loop di servizio in modo tale che controlli se vi sono Job da eseguire e li esegua.
In questo post andremo ad implementare il necessario a fare in modo che la finestra di base della MiniSqlAgentConsole non apra più di una volta l’interfaccia per la gestione dei Jobs. Per fare questo andremo ad implementare una classe entity Generic, una collection Generic, ed un metodo anonimo.
Comments closedIn questo post spieghiamo come fare in modo che uno User Control che si trova vari strati all’interno della user interface possa comunicare con la MainWindow dell’applicazione senza passare per l’ufficio complicazione affari semplici. Per farlo utilizzeremo i delegate e le Action.
Il problema
Nell’interfaccia della console del servizio MiniSqlAgent abbiamo iniziato ad implementare una User Interface complessa, che simula le Child Window di una MDI utilizzando il TabControl e gli user control. Gli User Control che gestiscono gli oggetti Job, possono trovarsi vari “strati” lontani dalla Window che li contiene, e non sapere nulla di tale window per il proprio funzionamento, ma sulla MainWindow abbiamo implementato una StatusBar, che ci mostra se il Servizio è attivo oppure no, e visto che abbiamo dello spazio, ci piacerebbe utilizzarla per dare dei messaggi di status all’utente. Come facciamo a fare arrivare alla MDI dei messaggi che arrivano dagli User Control senza complicarci troppo la vita?
Comments closedIn questo secondo post dedicato all’implementazione della User Interface per la gestione dei Job del nostro MiniSqlAgent, andremo a creare la porzione dell’interfaccia utente contenuta all’interno della finestra principale della console del servizio, per poi concludere con lo sviluppo della classe manager dei Job, in cui utilizzeremo lo User Control che abbiamo sviluppato nei post precedenti che potete leggere agli indirizzi qui sotto riportati.
- Uno User control per generare un Job per MiniSqlAgent
- User Control Fine Tuning – DateTimePicker, DateTimeUpDown, Combobox
In 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 closedFacciamo il fine tuning dello User Control disegnato nel post precedente a questo e disponibile QUI in questo articolo modificheremo le semplici textbox inserite per il primo test e aggiungeremo un DateTimePicker per la data della prossima esecuzione del Job, un DateTimeUpDown per l’ora della prossima esecuzione del job, in IntegerUpDown per la gestione dell’intervallo di esecuzione ed una combobox per selezionare le connessioni disponibili sul sistema per l’esecuzione dei job. Per fornire la lista alla combobox aggiungiamo ai parametri di configurazione del servizio e della sua console un file che conterrà tutte le stringhe di connessione valide a SQL Server che vogliamo memorizzare.
Comments closedIn questo post, proseguiamo lo sviluppo della console per il servizio MiniSqlAgent che stiamo sviluppando per dimostrare come costruire un servizio windows funzionante e non banale ed una applicazione WPF che ne gestisca l’amministrazione in tutti i suoi aspetti. Nel post precedente abbiamo generato una classe per definire un Job per il nostro servizio che contiene funzionalità minimali, adesso realizziamo uno User Control WPF per poter generare un Job e salvarlo su un file su disco, e testeremo lo User Control nella applicazione della nostra console.
Comments closedUn post per definire la classe entity che contiene i dati di base per costruire un Job che permetta di eseguire uno statement SQL ad intervalli regolari. Propedeutica allo sviluppo dell’interfaccia di gestione e del servizio Mini SQL Agent.
Comments closed