Come realizzare una procedura di aggiornamento automatico

lunedì 28 aprile 2008 - 09.40

Samb1985 Profilo | Junior Member

Ho una windows application che utilizza un database.
Ho bisogno di realizzare una procedura automatica che parte ogni giorno ad un'ora stabilita ed esegue una serie di inserimenti e aggiornamenti del database.
Come mi consigliate di farla ? E' possibile inserirla direttamente nell'applicazione ?

Lanello Profilo | Senior Member

metti un timer nella finestra principale della tua applicazione, che controlla l'ora di sistema...

e se l'ora è quella che vuoi tu per fare gli inserimenti, esegue il codice da te specificato.

-----------------------------------------------------
La ricompensa per una cosa ben fatta, è averla fatta.

schifidus Profilo | Junior Member

Ciao,
certo la soluzione sopra è fattibile ma non molto efficiente..
In questi casi solitamente di fa una bella console application schedulata (attraverso lo scheduler di windows) che ad una certa ora viene chiamata.
In questo modo eviti di avere un programma che occupa RAM inutilmente per tutto il giorno quando magari gira 5 min al giorno.
Mi raccomando un bel LOG che per applicazioni di questo tipo è fondamentale, magari integralo con l'event viewer di windows.
Ciao
Marco
Marco Farina
MCTS .NET Framework 2.0 Web Applications

allevaldo Profilo | Junior Member

beh un bel windows service no?

Samb1985 Profilo | Junior Member

Cos'è un windows service ? può spiegarti meglio ?

allevaldo Profilo | Junior Member

qualcosa che rimane in esecuzione anche indipendentemente dalla tua applicazione. tipo che ne no... l'aggiornamento dell'antivirus...
puoi definire un'orario, un giorno, o anche + volte al giorno e fargli eseguire determinate cose.
io ne ho implementato uno che a fine mese controlli che i dati nel db siano correttamente inseriti, giustamente secondo le specifiche del mio programma...

da VS esiste proprio un tipo di progretto windows service...

Lanello Profilo | Senior Member

allora cerchiamo di fare un po di chiarezza...

come ti abbiamo descritto i casi che puoi adottare sono 3:

---- Però le casistiche sono 2 -----

... Se la tua applicazione i controlli li deve fare mentre l'interfaccia utente principale è aperta ...
puoi fare come ti ho detto io con il timer nella finestra principale che lancia la procedura di controllo se l'ora è quella desiderata.

... Se invece vuoi che il controllo venga fatto anche se l'applicazione principale... è chiusa...

puoi fare una "console application" che altro non è che un progetto senza forms e quindi viene eseguito senza visualizzazione di form per l'utente, lanciata da un'operazione pianificata impostata manualmente dal proprietario del computer dove deve essere eseguita per essere appunto lanciata ad un orario da configurare in questa operazione pianificata.

altrimenti puoi fare un "windows service" che è un servizio che è sempre in esecuzione e che in pratica "aspetta" come il mio timer che l'ora sia quella giusta per poi eseguire il codice di controllo.

diciamo che la differenza tra questi ultimi due casi è che con il "windows service" una volta installato non devi fare configurazioni, ma se il tuo target è quello di minimizzare al massimo l'uso delle risorse di sistema, la soluzione migliore è sicuramente la console application!!! (sempre che non ti vada bene il primo caso )

spero di averti aiutato a decidere.

facci sapere.

-----------------------------------------------------
La ricompensa per una cosa ben fatta, è averla fatta.

Samb1985 Profilo | Junior Member

No nel mio caso non ho bisogno di un' interfaccia.
Si tratta di una procedura che ogni notte va ad aggiornare il database.

A questo punto sono indeciso tra la console application e il servizio windows.
Forse andrò verso la console application che mi sembra piu facile dal punto di vista di programmazione.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5