Hai due problemi separati:
- monitoraggio e copia dei dati
- notifica ai client
Monitoraggio : e copiare i dati nel database è un processo che si vorrebbe eseguire in background in modo da poterlo avviare e arrestare quando necessario indipendentemente dalla propria applicazione. Suggerisco di creare un servizio Windows che utilizza il watcher del filesystem . Prestare attenzione alla posizione dei file, l'applicazione di caricamento e il servizio devono entrambi accedere a tale posizione.
Un vecchio articolo su questo può essere trovato qui link (le cose sono cambiate dal 2007)
notifica della tua applicazione, è necessario essere in tempo reale? Quando l'applicazione si avvia ha bisogno di sapere che ci sono nuovi file in attesa?
Se l'applicazione deve controllare all'avvio, puoi semplicemente creare una tabella in cui il servizio tiene traccia dei file che ha elaborato e che l'app di Windows può interrogare per vedere se i file sono in attesa. Se la notifica non ha bisogno di essere in tempo reale, puoi attivare il controllo basato su un timer e avresti una soluzione piuttosto semplice.
Se la notifica deve essere in tempo reale, sono necessarie altre opzioni.
SignalR viene utilizzato principalmente nelle app Web, ma ho visto che funziona nelle app della console ed è piuttosto semplice da configurare e facile da usare. Se scarichi signalR link negli esempi, c'è un esempio di auto-hosting che potrebbe aiutarti ad accelerare. Rendi il tuo servizio messagehub e lascia che le applicazioni client si connettano all'avvio. SignalR è abbastanza nuovo e non ho visto molte persone usarlo al di fuori di un'app web, quindi potrebbe essere un rischio provarlo, ma dovrebbe essere divertente:)
Se non vuoi che signalR e stil abbiano bisogno di notifiche in tempo reale puoi guardare:
- ha una cartella di stato nella cartella dei dati, il tuo servizio scrive i file di stato in questa cartella e l'applicazione controlla questa cartella di stato tramite watcher di fileSystem , mi piace perché la tua app e il servizio utilizzano le stesse tecnologie ed è sempre una buona idea mantenere il numero di tecnologie e il numero di soluzioni diverse come basso come possibile.
- lascia che il servizio scriva in una coda di messaggi e chiedi alla tua app di monitorarlo (eccessivo nella mia mente)
- crea il tuo servizio e l'app di Windows come l'applicazione di chat usando i messaggi di trasmissione WCF. Un esempio per iniziare: link (molto lavoro nella mia mente)