2010-03-03 10 views
6

Ho creato un eseguibile di Windows Form in .NET 3.5 che utilizza una DLL per comunicare con una macchina che esegue la scansione dei controlli. Alla fine avrò bisogno di passare da un eseguibile a un Web Form in grado di fare la stessa cosa. Ci vorranno mesi, ma volevo iniziare a fare la ricerca ora, perché non l'ho mai fatto prima. Avrò bisogno di usare ActiveX per comunicare con il dispositivo tramite un modulo Web. Anche io non l'ho fatto prima.Passaggio da Windows Form a Web Form

Mi piacerebbe mantenere la funzionalità del mio eseguibile esistente senza dover riscrivere la maggior parte di esso, anche se capisco che alcuni di essi dovranno essere riscritti. Ho fatto ricerche su ActiveX e su come usarlo, ma volevo sapere se qualcuno ha avuto una situazione simile come questa. Cosa hai fatto per convertire un exe in un programma web? Ci sono fonti buone e specifiche là fuori che sto trascurando che possono indicarmi la giusta direzione per questa situazione? C'è qualche consiglio che puoi dare dalle tue esperienze che può aiutarmi a ridurre gli errori? La compagnia per cui lavoro non ha nessun altro qui che l'ha già fatto prima, quindi devo insegnarmi tutto ciò che è necessario per fare questo.

Grazie in anticipo.

+0

puoi spiegare perché deve essere un modulo web? È un problema di implementazione/buzzword compliance/cross-platformness? –

+0

Questa non è una domanda semplice a cui è possibile rispondere senza conoscere la complessità del programma che hai già scritto. Indipendentemente da ciò, spero davvero che il tuo codice sia ben congegnato, dal momento che sembra che la gestione ti abbia portato questo requisito dopo che il progetto originale era stato completato, invece che all'inizio, quando sarebbe stato più utile sapere. –

+0

È improbabile che funzioni bene, a meno che non sia possibile collegare la macchina di controllo-scansione al server web. In caso contrario, inizia a studiare il modello di sicurezza di Javascript e Internet Explorer. –

risposta

5

Qui è dove la separazione di preoccupazioni e il design di livello n. Speriamo che il tuo livello di interfaccia utente sia liberamente collegato al tuo modello di dominio. Se questo è il caso, puoi codificare un secondo strato IU per il web. E non devi assolutamente cambiare il tuo modello di dominio. Quindi puoi compilare per ogni scenario.

* note - Nell'uso pratico, ho sempre dovuto estendere il mio dominio aziendale per tenere conto di alcuni problemi con la seconda interfaccia utente, ma quelle modifiche sono state di solito minori e ho indicato i punti in cui avevo accoppiato troppo strettamente.


Un'altra opzione che si può prendere in considerazione è la creazione di uno strato di servizi web sopra il vostro codice di dominio aziendale. E poi codifica un'applicazione web che comunica con il tuo modello di dominio tramite quelle chiamate di servizi web. Questo potrebbe avere implicazioni sul rendimento e non sarebbe il mio metodo preferito per realizzare questo. Sebbene tu possa trovarlo più gestibile se non hai un'applicazione ben progettata per iniziare.

0

Normalmente, la conversione di winform in webform è abbastanza possibile, sebbene in genere un processo di sviluppo lento. Anche se hai il livello di dominio più pulito al mondo, il fatto che oggetti nella tua pagina web vengano gettati via ogni volta significa che un livello di dominio web è normalmente scritto in modo molto diverso da un livello di dominio del desktop.

Tuttavia, nel tuo caso la comunicazione dispositivo-server sarà molto difficile.

Hai guardato xbap? È fondamentalmente un modo per distribuire applicazioni WPF in una pagina web. Richiede ai tuoi client di avere la giusta versione di .NET installata, ma sarà il percorso più semplice per te, specialmente considerando che puoi ospitare winform in WPF ...

+0

Guardo xbap, ma non credo che mi sarà consentito utilizzarlo nel nostro ambiente esistente. – Aaron

1

"Vorrei mantenere la funzionalità del mio file eseguibile esistente senza doverne riscrivere la maggior parte "

In generale, se si estrae il maggior numero possibile di logica nel proprio assembly/dll, è possibile riutilizzarlo da qualsiasi framework UI desiderato. Assicurati solo che non stai facendo qualcosa di specifico per l'interfaccia utente (facendo apparire finestre di dialogo, ecc.).

0

Si può dare un'occhiata a Silverlight 4,

http://silverlight.net/getstarted/silverlight-4-beta/

contiene molte caratteristiche che ASP.NET Web Forms no.

Se la tua squadra può accettare qualcosa come ActiveX, perché non Silverlight 4? L'unico svantaggio è che SL4 è ancora in beta.