thick client migration to web based application

3

Questa query è correlata alla progettazione delle applicazioni della tecnologia che dovrei prendere in considerazione durante la migrazione. Lo scenario: ho un'applicazione C # .net Winform che comunica con un dispositivo. Una delle caratteristiche principali di questa applicazione è il monitoraggio dei dati ciclici (velocità 200 ms) inviati dal dispositivo all'applicazione. La richiesta di avviare i dati ciclici viene inviata solo una volta all'inizio e quindi l'applicazione inizia a ricevere i dati dal dispositivo fino a quando non invia una richiesta di arresto. Ora questa stessa applicazione deve essere distribuita sul web in una intranet. L'applicazione è composta da un livello di logica aziendale e uno strato di comunicazione che comunica con il dispositivo tramite le porte UDP.

Sto cercando di trovare una soluzione che mi consenta di avere una singola istanza dell'applicazione sul server in modo che il dispositivo pensi che sia connesso come al solito e quindi dal livello della logica aziendale posso gestire i client. Voglio riutilizzare il più possibile il codice del livello aziendale e del livello di comunicazione. Per favore fammi sapere se webserives / WCF / etc cosa dovrei considerare per progettare la migrazione.

Grazie in anticipo.

    
posta user1151597 16.01.2012 - 11:17
fonte

2 risposte

2

Personalmente sarei tentato di modificare il programma esistente e aggiungere ad esso un livello di gestione delle richieste web. L'applicazione dovrebbe quindi essere eseguita sul server e mantenere una connessione costante al dispositivo. È quindi possibile creare un sito Web che comunica con questa applicazione tramite AJAX / Json chiama ogni 200 ms per recuperare i dati più recenti dall'applicazione.

Sebbene la creazione di un servizio Web possa funzionare, essa verrebbe eseguita come istanza separata per richiesta dell'utente, a seconda di quanti utenti stanno provando a connettersi al dispositivo, questo potrebbe sovraccaricare il dispositivo con più connessioni.

Recentemente ho affrontato un dilemma simile con un'applicazione che ho sviluppato, ma la mia decisione è stata ulteriormente migliorata dal fatto che avevo bisogno di ricevere dati anche quando nessun utente era connesso. Inoltre avevo scritto in precedenza una DLL del server Web che potevo collegare direttamente.

    
risposta data 12.11.2012 - 15:08
fonte
1

WCF non viene fornito con un binding UDP out of the box. Puoi scrivere un'associazione UDP personalizzata utilizzando questo esempio come guida ma io ' sii cauto nel farlo. Il codice nel campione è più vicino al codice demo rispetto al comprovato codice di qualità della produzione. Detto questo, potresti voler andare con un servizio Windows che gestisce l'interazione UDP sfruttando il tuo codice esistente per popolare un data store appropriato. Quindi il servizio WCF potrebbe essere scritto come un servizio di interazione database convenzionale.

    
risposta data 16.01.2012 - 15:53
fonte

Leggi altre domande sui tag