2012-10-12 7 views
5

Abbiamo uno strumento di terze parti legacy (sviluppato in C/C++). Lo strumento ha un componente server che esegue un server Windows che esegue lavori (query di database lunghe concatenate complesse). Ha anche un modulo client che viene installato su tutti i desktop degli utenti e gli utenti saranno in grado di aggiungere lavori, visualizzare i lavori in corso e i loro progressi, eliminare i lavori, ovvero gestire sostanzialmente i lavori. Vogliamo sviluppare un tale strumento in casa utilizzando le tecnologie .NET.Come configurare questa applicazione client/server in .NET?

Attualmente stiamo pensando a come progettare un tale strumento e sembra che manchino alcuni pezzi critici del puzzle.

Cliente: Abbiamo deciso l'applicazione desktop client ad essere sviluppato in WPF

Server: Al momento stiamo pensando di sviluppare come applicazione console, ma non del tutto sicuro di come architetto esso.

Le domande principali che abbiamo sono

Come può un'applicazione console del server esporre ASMX o WCF servizi web (in modo che i clienti ottengono WPF lo stato dei lavori), pur continuando a eseguire i processi?

Come trasferire gli aggiornamenti di avanzamento dal server ai client WPF quando si verifica un cambiamento?

Stiamo cercando di fare ricerche su come fare questo, ma non trovando nulla di pertinente all'argomento. Qualsiasi suggerimento su articoli/guida sarà di grande aiuto.

+0

Possibile duplicato: http://stackoverflow.com/questions/11170457/discussion-client-server-application-architecture –

+0

@MikeMcCaughan Il collegamento che hai menzionato sembra essere simile ma NON è, nel mio caso, il mio server ha un lungo lavoro da fare oltre a servire i clienti. – Aron

+0

Prova questo: http://dasunhegoda.com/architecture-products/1180/ – Techie

risposta

3

La confusione che si sta avendo presuppone che l'esecuzione del lavoro e l'endpoint WCF siano la stessa cosa. Vorrei dividerlo in tre elementi principali:

  1. Applicazione client con gli elementi dell'interfaccia utente per la gestione dei lavori.
  2. Punto finale del servizio WCF per recuperare le informazioni sul lavoro e inviare/eliminare richieste di lavoro.
  3. Applicazione che esegue i lavori.

applicazioni client di applicazione

Il client deve recuperare i dati di lavoro attraverso il servizio WCF.NServiceBus, BizTalk sono esempi di questo tipo di comunicazione.

+0

Grazie per la spiegazione dettagliata. Molto vicino a quello che sto cercando. Puoi spiegare perché preferisci il polling rispetto al server push? – Aron

+0

Ho ampliato la mia risposta con più pensieri. Da un livello elevato tendo a fare sondaggi a causa del comfort e della familiarità. Io lavoro principalmente su app web che si prestano al modello di risposta della richiesta. –

1

Sembra che tu stia chiedendo informazioni sulle opzioni di hosting per i servizi WCF. Ci sono quattro tali opzioni:

  1. self-hosting in un'applicazione gestita - vale a dire creare una console app, un altro WPF app ecc che crea quindi un servizio e mantiene in vita mentre (la console app) è vivo.
  2. Managed Services di Windows - crea un servizio di Windows che può essere avviato automaticamente da Windows quando inizia
  3. Internet Information Services (IIS) - ospitarlo in modo simile a un servizio di ASP.NET
  4. servizio Attivazione processo Windows (WAS) - nuovo servizio di attivazione, non l'ho usato personalmente.

Dettagli completi here.

Per rispondere completamente alla tua domanda, non utilizzerei i servizi ASMX. Per una buona lista di motivi, vedi this question.

Problemi correlati