Porting di un'applicazione Silverligtht per applicazioni Web con Asp.net e HTML 5

2

Lavoro come sviluppatore di software interno. Abbiamo utilizzato Silverlight per creare la nostra applicazione, ma ci è stato chiesto di iniziare a prendere in considerazione la loro sostituzione.

Attualmente il nostro set-up è:

  • Applicazione Silverlight per lato client.
  • Servizio web sapone Asp.Net. Distribuito in due server con un carico bilanciatore.
  • MS SQL server 2008. Anche distribuito su due server con un carico bilanciatore.

La nostra applicazione come una sorta di suite, che svolge diverse funzioni, inclusa ma non limitata a:

  • Reporting.
  • Analisi dei dati.
  • Front-end per diverse tabelle di database che vengono utilizzate sia per altri processi nell'applicazione e per altre applicazioni nel società.

I nostri vincoli:

Risorse di sviluppo limitate: Siamo un piccolo team, una dozzina circa di sviluppatori e, mentre abbiamo già assunto più persone per essere in grado di far fronte a un carico di lavoro crescente, è improbabile ottenere più rinforzi . Anche il tempo è limitato, poiché nuovi progetti, correzioni di errori, richieste di nuove funzionalità nell'applicazione esistente e cambiamenti nella logica di business sono piuttosto frequenti.

Aggiornamento tecnologico lento: la nostra azienda è passata da Windows XP a Windows 7 l'anno scorso e solo perché il supporto è terminato. Abbiamo iniziato a considerare di aggiornare i server di database a SQL Server 2010 di recente. Il browser ufficiale è Internet Explorer 9 e Chrome. Nuovi server, licenze e strumenti possono essere richiesti, ma spesso richiedono tempo.

Dati grandi e lenti: alcuni dei nostri dati provengono da tabelle grandi e goffe con milioni di righe e molte colonne, con solo l'indice minimo, perché vengono aggiornate frequentemente. Abbiamo un controllo limitato su quei tavoli grandi specifici perché sono feed da altri sistemi e la richiesta di modifiche in questi feed è possibile, ma, come prima, ci vuole tempo.

Mentalità dell'utente: i gestori apprezzano le interfacce e i cruscotti elaborati da mostrare nelle riunioni. Tutti gli utenti apprezzano la reattività e la scorrevolezza generale dell'interfaccia utente. Inoltre, molti dei nostri utenti provengono da uno sfondo di Excel, il che significa che sono abituati a prendere grandi quantità di dati e filtrarli, eseguire analisi, creare statistiche, generare grafici, ecc. E si aspettano di essere in grado di farlo applicazione anche.

La nostra esperienza: molti dei nostri sviluppatori hanno sfondi relativi a .net, asp.net, Windows Form e Silverlight. Solo alcuni di noi hanno esperienza Java (non Android). Solo pochi di noi hanno esperienza con le applicazioni web oltre a piccoli progetti.

Il nostro passato: La prima iterazione della nostra applicazione è stata un'applicazione di moduli Windows che ha subito un grave problema di gonfiore dell'installatore. Alcuni responsabili IT hanno deciso di risolverlo trasformandolo in un'applicazione web. Dato che questo era prima di HTML5 e stavamo ancora utilizzando IE6 come browser ufficiale, abbiamo deciso di utilizzare Silverlight poiché ci offriva il miglior compromesso.

I nostri vantaggi:

Hardware omogeneizzato: molti utenti usano esattamente lo stesso tipo di laptop con le stesse specifiche. L'intervallo di dimensioni dello schermo disponibile non è molto ampio, quindi non dovremmo avere a che fare con risoluzioni diverse.

Intranet: Lavoriamo in un ambiente controllato.

Budget ragionevole: la maggior parte delle richieste di server, licenze e simili verranno approvate se viene fornita una motivazione sufficiente.

Recentemente, i rialzi hanno iniziato a temere che il supporto di Silverlight possa finire bruscamente. E hanno suggerito di aggiornare l'applicazione a una tecnologia più stabile, suggerendo che HTML5 sarebbe una buona idea. Ci hanno chiesto quanto sarebbe fattibile e quanto tempo ci sarebbe voluto. Abbiamo circa 0 esperienze in questo tipo di progetti, quindi stiamo cercando un po 'di dare una risposta. Questa è la mia domanda:

Data questa situazione e il set-up, sarebbe fattibile portare questo tipo di applicazione a un'applicazione web con HTML5 e asp.net mantenendo la maggior parte delle sue funzionalità?

Se no, perché? Quale dei precedenti dovrebbe essere modificato per renderlo possibile?.

    
posta MACN 17.04.2015 - 00:50
fonte

1 risposta

2

Prima regola empirica - non ricominciare mai se puoi evitarlo. Questa è una regola Joel Spolsky dello sviluppo del software. Quindi questo è automaticamente un avvertimento per riscrivere la tua app in HTML5. Fortunatamente, devi solo riscrivere il client. È possibile aggiornare l'app del server in modo incrementale, ma non è necessario sostituirlo all'ingrosso.

Tuttavia, passare da Silverlight a HTML5 non è certo uno schianto. Ho scritto app Flex per alcuni anni prima di passare a JavaScript come front-end delle mie app. Come la maggior parte delle persone, avevo scritto una quantità discreta di JavaScript, ma mai un'app end-to-end come un'app Silverlight, e mi ci è voluto un po 'di rieducazione per aggiornarmi. Ecco cosa ho imparato in nessun ordine particolare.

  1. JavaScript / HTML5 sta solo arrivando al punto in cui Flex era nel 2010. Forse gli sviluppatori JavaScript più vecchi sostengono questo punto con me, ma secondo la mia esperienza, gli strumenti, le librerie, gli elementi dell'interfaccia utente, ecc. abbiamo impiegato un bel po 'di tempo per capire cosa Flex / Silverlight potesse offrire fuori dalla scatola. In questo senso mi manca ancora la facilità con cui certe cose, come l'associazione dei dati e i gestori di viste dei componenti personalizzati, sono in Flex.

  2. A differenza di Flex / Silverlight, in cui esiste un piccolo ecosistema di strumenti, librerie, ecc. ben studiati, l'ecosistema JavaScript è gigantesco, dispersivo e non facile da navigare. Gituhub, npm e bower aiutano ad organizzare le cose in una certa misura, ma ci sono letteralmente centinaia di migliaia di progetti in JavaScript registrati e chissà quale di loro si applicherà a ciò di cui hai bisogno.

  3. jQuery / jQueryUI sono tuoi amici. jQuery prende molto del vecchio incubo cross-browser da JavaScript sul client. jQueryUI fornisce una base di elementi dell'interfaccia utente tra cui scegliere.

  4. Non conosco le tue esigenze specifiche, ma ci sono librerie JavaScript commerciali per la creazione di grafici / grafici che potresti essere molto consigliabile utilizzare.

  5. I framework in JavaScript sono come albe - ce n'è uno nuovo ogni giorno. Scegli un framework mainstream che ti piace e seguilo.

Quindi, è possibile, riscrivendo la tua app? Questo dipende dalla funzionalità del progetto, dai tempi e dai limiti di risorse. Ti suggerisco di guardare i pacchetti di visualizzazione disponibili in JavaScript per vedere se rispondono alle tue esigenze. Dato che hai bisogno di funzionalità avanzate, trovare una corrispondenza sarà la tua più grande sfida. Regalati un mese: cerca pacchetti disponibili, magari prova ad implementare un paio di elementi funzionali e vedi dove sono le tue lacune. Questo ti darà un senso di ciò che stai affrontando. Quindi puoi prendere una decisione informata sul fatto che gli strumenti esistano (ancora) per raggiungere i tuoi obiettivi in tempi ragionevoli. Se la risposta è no, rivedi il problema in un altro anno per vedere come sono andate le cose.

    
risposta data 17.04.2015 - 02:00
fonte

Leggi altre domande sui tag