2015-10-01 27 views
5

Abbiamo bisogno di creare un'applicazione che può essere utilizzata tramite il browser ma che può essere utilizzata anche offline.Devo utilizzare ancora Silverlight/XBAP

La versione del browser verrà utilizzata dai nostri clienti per eseguire calcoli. Ogni cliente deve accedere all'applicazione con un nome utente e una password. La versione offline verrà utilizzata dai nostri dipendenti. Devono essere in grado di utilizzare questa versione pur non essendo connessi a una rete. I dati necessari per l'applicazione verranno archiviati in file XML.

Stiamo principalmente programmando con C# e .NET Framework. Abbiamo pensato di utilizzare WPF per la versione client. Ho letto che è possibile utilizzare Silverlight o XBAP per creare una versione del browser dell'applicazione WPF. AFAIK Silverlight è una tecnologia che muore. Che ne dici di XBAP? Investiresti ancora in questa tecnologia?

L'altra soluzione sarebbe quella di creare due applicazioni front-end: l'applicazione WPF come un'applicazione offline e un'applicazione Web (ad esempio ASP.NET MVC) come applicazione Web. Pensato, questo significherebbe che dovremmo creare due frontend (più lavoro).

C'è un'altra alternativa? Sarebbe meglio creare un'applicazione HTML/JavaScript (ad esempio con AngularJ o qualcosa di simile)?

risposta

7

Come un ex sviluppatore Silverlight, posso solo consigliare di non utilizzare Silverlight per lo sviluppo di nuove applicazioni. Microsoft ha sospeso l'ulteriore sviluppo di Silverlight e non si otterranno nuove funzionalità (solo correzioni di sicurezza). Mi è piaciuta molto la tecnologia e la somiglianza con WPF, ma per me è deprecata.

Anche alcuni browser (come Chrome) non supportano Silverlight più e avete bisogno di una soluzione per farlo funzionare (Vedi anche Chrome doesn't support silverlight anymore? How to solve this?)

Sviluppare un Backendsystem che fornisce una REST-API (utilizzando ASP.NET WebAPI come un esempio) per i tuoi clienti e sviluppare un'applicazione client Browser utilizzando i moderni framework HTML/CSS/JavaScript. Se necessario/richiesto un'applicazione desktop che utilizza WPF che utilizza l'API REST.

5

Silverlight potrebbe morire, ma ciò non significa che si dovrebbe evitare di usarlo. Silverlight è ancora una tecnologia valida che è possibile utilizzare, tuttavia le tendenze del browser sembrano eliminare gradualmente il supporto di Silverlight. Per quanto ne so, il browser Microsoft Edge Microsoft Edge non supporta più Silverlight, quindi sarà necessario utilizzare Internet Explorer. Questa non è la fine del mondo, ma è qualcosa a cui pensare.

Per quanto riguarda WPF, anche questo è essere sostituito da di Windows Apps universali, anche se lentamente. Tuttavia questo non è un problema in quanto le abilità apprese in WPF sono facilmente trasferibili. WPF non riceve molte nuove funzionalità come prima, si potrebbe dire che è terminato.

Non è sempre facile per tenere il passo con le ultime tendenze, e ci sarà sempre qualcosa di fresco e alla moda proprio dietro l'angolo, però una cosa è certa, la piattaforma .NET , tra cui il nuovo riscritta Le API delle app universali sono qui per restare e non lo saranno die in qualsiasi momento.

La tendenza attuale vede Web Technologies, come ASP.NET giocare un ruolo molto più grande di applicazioni desktop/tablet/telefono tradizionale. Direi che lo sviluppo per un browser Web è sicuramente una scelta popolare.

Detto questo, Windows Universal App è anche una buona scelta, infatti, qualsiasi tecnologia che faccia uso di .NET Framework è l'ideale.

quanto riguarda la mia raccomandazione, vorrei suggerire cercando in un'API ASP.NET applicazioni web oWeb a cui un'applicazione desktop, come ad esempio WPF (ancora una tecnologia valida per le applicazioni aziendali) o universale di Windows App può gancio in. Uno scenario ideale sarebbe che entrambe le applicazioni condividono lo stesso codice di back-end, il che è certamente possibile in quanto entrambi utilizzano .NET Framework.

Per le vostre esigenze, potrebbe anche essere possibile evitare di dover creare un'applicazione desktop del tutto, un'applicazione Web può essere ospitata su una macchina sulla rete locale e i client possono ancora utilizzare l'app Web. Ciò presuppone che questi client non abbiano accesso a Internet, naturalmente.

TL; DR: .NET è valido, utilizzare ASP.NET.