Ho bisogno di aiuto per decidere tra silverlight / silverlight out-of-browser / wpf


10

Sono nella fase iniziale di pianificazione di un progetto di riscrittura e sto decidendo tra silverlight / silverlight oob / wpf. TL; DR alla fine.

È un'app LOB che gestisce lead / clienti / calendari di appuntamenti. Non troppo complicato. Sto cercando in modo indipendente queste opzioni altrove, ma ho pensato di chiedere in giro. Alcuni requisiti iniziali approssimativi / problemi prevedibili sono:

Devo essere in grado di chiamare un exe sul sistema con args a riga di comando (telefono sip).

Rende SL un problema

La base utenti è distribuita e voglio limitare il più possibile il traffico che passa attraverso il filo ed evitare alcuni problemi di concorrenza

Vedo che questo è un problema con WPF

La distribuzione / aggiornamento del software deve essere semplicissima . Alcuni utenti sono altamente non tecnici (vedi: 70 anni, per la prima volta su un computer)

Questo non è un grosso problema ora con l'app ClickOnce che stiamo sostituendo e ho il controllo sui computer su cui viene utilizzato. Tuttavia, è più semplice per gli utenti se non devono nemmeno fare clic sul pulsante "Installa" di clickonce. Non so come sia gestito con Silverlight OOB.

La società sta pianificando una forte espansione tra 12 mesi, quindi la distribuzione dell'hardware dovrebbe essere veloce / facile. L'idea è quella di ottenere una connessione Internet in una nuova posizione, collegare alcuni computer ed essere in grado di lavorare senza la necessità di personale IT dedicato o configurazione del server.

Rende attraente SL

L'integrazione con altri servizi (software finanziario, server asterix) non è un obiettivo immediato, ma è un obiettivo finale far parte del sistema. Ciò è reso molto più semplice / più efficiente se un singolo servizio è configurato per integrarsi con quei servizi secondari e non deve trasferire tutti quei dati via cavo

Rende attraente SL

Creare più "versioni" è fuori dalla finestra. Non so come sia mantenere una versione oob silverlight + silverlight (se ci sono problemi)

Potrebbe rendere WPF un'opzione migliore.

TL; DR: Dal mio punto di vista, un'app di Silverlight ha il senso migliore per il 90% degli utenti - l'altro 10% non può usarlo perché devono eseguire un exe. Silverlight OOB potrebbe essere un felice punto di riferimento, ma al momento non so come sia il modello di esecuzione (esiste ancora un concetto di codice lato server? In tal caso, sarebbe probabilmente l'ideale) e non lo so sapere come funziona la distribuzione / aggiornamento.


Perché vuoi sostituire l'applicazione ClickOnce in primo luogo? ClickOnce ha un'opzione per verificare e scaricare automaticamente un aggiornamento disponibile all'avvio dell'applicazione. L'ho fatto vedere replayer.codeplex.com
Marcel,

Risposte:


6

Bene - problema interessante. Hai dimenticato di menzionare che puoi avere un'applicazione di piena fiducia Silverlight a partire da SL4, quindi se stai pensando a WPF, potresti prendere in considerazione ciò. Dovrebbe essere installato (ClickOnce), ma sembra che tu ti stia allontanando da quello.

Non ho ancora fatto nulla con OOB, ma sono abbastanza sicuro che lo stesso binario possa essere utilizzato sia in broswer che fuori dal browser in quanto è un'impostazione di progetto piuttosto che un obiettivo di compilazione separato.

"Abilita l'esecuzione dell'applicazione dal browser"

nella scheda Silverlight del progetto Silverlight.

Quindi non ci sarebbero problemi di manutenzione separati lì.

È possibile creare una discreta quantità di codice nell'applicazione Web che ospita l'app Silverlight e comunicare utilizzando i servizi RIA WCF - di nuovo si dovrebbe andare con .NET 4 e SL 4 per ottenere la versione 1.0 di questo. .NET 3.5 e SL 4 supporta solo i servizi beta RIA WCF. Ciò ridurrebbe a) le dimensioni del download eb) la quantità di codice che dovrebbe essere eseguita sul client ma aumenterebbe il traffico di rete.

Su quel punto puoi dividere il tuo codice Silverlight in diversi assiemi e usando qualcosa come Prism puoi impostarli per caricarli su richiesta. Ciò significa che l'utente scarica solo quelle parti dell'applicazione che sta effettivamente utilizzando. Puoi ridurre ulteriormente l'importo scaricato controllando il

"Riduci le dimensioni XAP utilizzando la memorizzazione nella cache della libreria dell'applicazione"

opzione.

Se si dispone di un file "extmap" da associare a dll esterne (di terze parti o .NET), ciò significa che vengono raggruppati in un file zip e scaricati separatamente per essere condivisi tra tutti i file xap nel progetto. Ciò mantiene i singoli file xap alle loro dimensioni minime e garantisce di avere solo una copia di queste altre dll sul computer client.


1
+1: grazie per il tuo contributo @ChrisF. Vorrei solo conoscerti IRL in modo da poter scegliere il tuo cervello.
Steven Evers,

2

La tua analisi è molto buona.

L'unica altra cosa che vorrei menzionare è che non TUTTO il framework è disponibile in un'applicazione Silverlight. Tale restrizione PUO 'inclinare la tua scelta verso WPF, ma dovrai vedere come si applica o meno a quella richiesta.


L'app è principalmente un'app grezza, ad eccezione della necessità di chiamare un telefono SIP tramite exe + args, quindi non credo che mi mancherà nessuna delle parti mancanti del framework.
Steven Evers,

2

Solo un paio di cose veloci:

Distribuzione e "codice lato server": un'app Silverlight è un'app lato client, chiara e semplice. Non lasciare che il semplice fatto che venga consegnato tramite il browser ti confonda: quando esegui un'app SL nel browser, stai scaricando gli assembly per quell'app in un pacchetto zippato, estraendoli ed eseguendoli utilizzando il plug-in. Silverlight da solo non ha alcuna nozione di "codice lato server": se si desidera eseguire il codice su un server remoto, scrivere un servizio WCF.

Aggiornamento dell'app: questo è uno scenario comune per le app OOB e SL ha il supporto integrato. Google in giro per CheckAndDownloadUpdateAsync.

Modifica: dimenticato di menzionare: l'installazione dell'applicazione viene eseguita dall'interno dell'applicazione. Per impostazione predefinita, un'app SL installabile avrà un'azione del menu di scelta rapida per installarla. Tuttavia, l'installazione può essere eseguita anche a livello di codice in risposta all'utente facendo clic su un pulsante. Lo stato di installazione può anche essere rilevato a livello di codice, quindi quello che ho visto alcune app SL che sono destinate solo a eseguire OOB è innanzitutto rilevare se sono installate. In tal caso, esegui l'app. In caso contrario, mostra solo una schermata iniziale con un pulsante che installa l'app.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.