ASP.Net o WPF (C #)? [chiuso]

31

Il nostro team è diviso su questo e volevo ottenere pareri di terze parti.

Stiamo costruendo un'applicazione e non possiamo decidere se vogliamo utilizzare l'applicazione desktop WPF .Net con un server WCF o l'app web ASP.Net usando jQuery. Ho pensato di fare la domanda qui, con alcune specifiche, e vedere quali sarebbero i pro / contro dell'uso di entrambe le parti. Ho il mio preferito e sento di essere di parte.

Idealmente vogliamo costruire la versione iniziale del software il più velocemente possibile, quindi rallentare e prenderci del tempo per costruire le funzionalità / componenti aggiuntivi che vogliamo in seguito. Soprattutto vogliamo che il software sia veloce. Gli utenti passano i record tutto il giorno e i ritardi nel caricamento dei record o negli schermi di aggiornamento uccidono la loro produttività.

Dettagli applicazione:

  • Sto stimando circa 100 schermi diversi per la versione iniziale, con piani per l'aggiunta di molti altri schermi dopo la versione iniziale.
  • Stiamo cercando di utilizzare la comunicazione bidirezionale per i sistemi di promemoria ed eventi
  • Attualmente deve supportare circa 100 utenti, anche se ci è stato detto di consentire la crescita fino a 500 utenti
  • Abbiamo più posizioni

Elementi da considerare (forse non inizialmente in alcuni casi ma in versioni future):

  • Spazio per componenti aggiuntivi da aggiungere dopo la versione iniziale (ce ne sono molti ... forse funzionano qui rispetto all'applicazione iniziale)
  • Navigazione tramite tastiera
  • Le prestazioni sono obbligatorie
  • Velocità di produzione alla versione iniziale
  • Costi di manutenzione ridotti
  • Supporto futuro
  • Integrazione softphone / scanner

I nostri sviluppatori:

  • Abbiamo 1 programmatore che sta imparando WPF negli ultimi mesi ed è stato lui a suggerire di usare WPF per questo.
  • Abbiamo un secondo programmatore che ha familiarità con ASP.Net e che potrebbe essere d'aiuto per il progetto in futuro, anche se non ci lavorerà molto fino alla versione iniziale da quando il suo tempo è trascorso a mantenere il nostro software attuale.
  • Ci sono io, che ha lavorato con entrambi e mi sento a mio agio in
  • Abbiamo una società esterna che fa la gestione del progetto e sono una società ASP.Net.
  • Abbiamo in programma di assumere altre 1-2 persone, tuttavia è necessario sapere in quale direzione stiamo andando in primo piano

Ambiente:

  • Gli utenti generici si trovano sul server Windows 2003 con Servizi terminal. Si connettono utilizzando thin client WYSE su una connessione RDP. Il personale amministrativo ha i propri PC con XP o superiore. Agli utenti è consentito specificare la propria risoluzione sebbene siano limitati a utilizzare IE come browser Web.
  • Altre posizioni si connettono alla nostra rete tramite una connessione MPLS

In base a ciò, cosa sceglieresti e perché?

    
posta Rachel 18.11.2010 - 18:47
fonte

8 risposte

17

Sicuramente mi suona come un'app WPF, con molte interazioni con l'utente e potenzialmente con l'interazione con l'hardware. Puoi consegnare l'app tramite Click-Once in modo che la distribuzione sia principalmente un problema. La tua app WPF può accedere a un servizio WCF e fornire i dati come binari, in modo che la performance sia eccellente. Vorrei iniziare a leggere su WPF e familiarizzare con esso il più presto possibile.

    
risposta data 18.11.2010 - 19:26
fonte
15

Risposta marginale di Lunatic: entrambi. Ottieni il livello di servizio giusto, è facile avere un client spesso che faccia tutto (WPF) e un client web veloce per fare le cose più comuni (ASP.NET). Lascia la porta aperta al client mobile, ecc. Lungo la strada.

    
risposta data 23.11.2010 - 16:21
fonte
8

Se hai un solo programmatore che sta imparando WPF e stai pensando di fare in modo che la tua squadra passi al WPF, allora perché non usare Silverlight? Otterrai molti dei vantaggi di WPF ma manterrai comunque la possibilità di lasciare il tuo progetto come app web. Dato che stai pensando di avere un grande progetto modulare, avrebbe senso usare PRISM con WPF o Silverlight per rendere MVVM più semplice.

Il mio team ha recentemente fatto la scelta di usare Silverlight su asp.net. È stata una scelta fantastica per noi. Inizialmente avevamo solo un singolo sviluppatore che conosceva qualsiasi Silverlight. Poi abbiamo fatto tutti un corso di formazione di una settimana che era per lo più inutile, ma almeno ci siamo bagnati i piedi. Alla fine abbiamo dovuto assumere due appaltatori per aiutarci a creare il grosso del nostro framework UI. La maggior parte della nostra squadra non è ancora sicura delle proprie capacità Silverlight. Io, il membro del team iniziale con conoscenza di Silverlight, e i due appaltatori sono quelli che fanno la maggior parte dello sviluppo di SL. Successivamente, abbiamo due membri back-end dedicati. Direi che ci sono voluti circa 2 mesi dopo aver preso la decisione di passare a Silverlight che avevamo davvero qualcosa di concreto messo insieme. Tuttavia, ora abbiamo un prodotto meraviglioso che sembra molto simile a un'applicazione client che gira all'interno di un browser web e che non è installata su alcun computer localmente. Lo sviluppo è stato sotto un anno in totale e siamo quasi pronti per il rilascio o il primo rilascio del candidato.

Alcune cose da considerare:

  • WPF o silverlight, a seconda di quale sceglierai, ci sarà una buona dose che i tuoi sviluppatori dovranno imparare.

  • Silverlight può esaurire il browser, se necessario. Se lo fai, è piuttosto facile configurarlo in modo tale che se si stende una nuova versione, il programma SL installato dal browser si aggiornerà automaticamente.

  • Silverlight non include tutti i controlli di cui dispone WPF.

La mia nota finale è che se vuoi sfornare il codice il più velocemente possibile, è piuttosto ovvio che tu debba andare con ASP.NET. Il mio problema principale con ASP è che, a meno che non si disciplina il proprio team, è facile che un progetto ASP.NET diventi disordinato e disordinato. Se pensate di essere in grado di affrontare il sovraccarico iniziale di essere al passo con le tecnologie, Silverlight o WPF vi offriranno molte possibilità meravigliose.

    
risposta data 18.11.2010 - 19:06
fonte
7

Questa parte è abbastanza preoccupante:

General users are on Windows 2003 server with Terminal Services. They connect using WYSE thin-clients over an RDP connection. Admin staff has their own PCs with XP or higher. Users are allowed to specify their own resolution although they are limited to using IE as the web browser.

WPF non è eccezionale sulle connessioni Remote Desktop / Thin Client. Le animazioni non saranno fluide e qualsiasi immagine complessa (anche i gradienti) rallenterà la risposta dell'interfaccia utente fino a una scansione. Lo staff di amministrazione con le tipiche macchine retro XP avrà probabilmente anche problemi di prestazioni con applicazioni WPF complesse (a causa di piccole quantità di RAM e GPU difettose).

Se segui la rotta WPF per una grafica ricca, preparati agli hacker delle prestazioni dell'ultimo minuto quando scopri che le macchine di destinazione hanno dieci anni. Attenersi alle schermate statiche e utilizzare .NET 4.0 poiché le prestazioni WPF sono migliorate notevolmente dal 3.5.

    
risposta data 26.11.2010 - 07:46
fonte
2

Tecnicamente, credo che la combinazione WPF / WCF sia la soluzione migliore.

Tuttavia, non sono convinto che il tuo programmatore WPF esistente abbia davvero l'esperienza per questo progetto. Il WPF è un bel cambiamento nella programmazione dei processi di pensiero dalla programmazione Winform e quindi dovrai pensare a lungo e duramente di avere davvero competenze sufficienti nel team per fornire questo percorso.

    
risposta data 25.11.2010 - 23:15
fonte
1

Interessante. Sembra straordinariamente familiare a un'app che abbiamo solo iniziato nella mia azienda (sorseggiare integrazione di telefono e scanner e tutto).

Abbiamo scelto silverlight concentrandoci su SOA in modo che un'app WPF potesse essere creata successivamente in caso di necessità.

Room for additional components to be added after initial release (there are a lot of of these... perhaps work here than the initial application)

Utilizziamo MEF nel livello di servizio e costruendo punti di estensione (interfacce plugin che descrivono determinati punti in cui pianifichiamo l'estensibilità o l'integrazione con altri sistemi)

Keyboard navigation

Non è un problema.

Performance is a must

Che tipo di performance? Prestazioni percepite (snappy-ness) o prestazioni di crunch numerico? Quest'ultimo potrebbe essere un problema con un'app web / silverlight. Per il primo, la nostra app passa attraverso un sacco di record, come il tuo, ma siamo in grado di prevederli e pre-recuperare i record mentre gli utenti stanno lavorando su quelli correnti. I tempi di caricamento sono zero per quella sezione della nostra app.

Production Speed to initial version

Dipende dallo skillset. Ma realisticamente, tutti vogliono sempre arrivare al mercato il più velocemente possibile, quindi è un non-argomento.

Low maintenance overhead

Come la velocità di produzione, è anche un argomento non scontato e si ridurrà alle pratiche di progettazione e codifica. Se parli in termini di manutenzione dell'hardware, potresti voler utilizzare un'app cloud.

Future support

Non sono sicuro di cosa significhi.

Softphone/Scanner integration

Silverlight 4 consente ora l'accesso a webcam / microfono (speriamo di fare videoconferenze tra applicazioni e l'integrazione sorseggiare), quindi se stai utilizzando un server telefonico, puoi scriverne uno da solo. Non so di quelli esistenti, ma questo potrebbe aiutare.

Altrimenti potresti dover fare un brutto hacking (non avere più riferimenti all'articolo / s, scusami) o non hai altra scelta che avere un'app WPF in grado di interagire con il file system. SL4 può andare fuori dal browser, ma può accedere solo a determinate parti del file system. Probabilmente nessuna di queste parti sarà necessaria per interagire con un sip phone.

Vuoi dire, scanner documenti? Non ne sono sicuro. Utilizziamo scanner a mano / codice a barre e funzionano come qualsiasi altro dispositivo di input e non sono un problema.

    
risposta data 23.11.2010 - 23:44
fonte
1

hai bisogno di un'applicazione altamente reattiva per le persone da usare tutto il giorno? usa WPF ; troverai più facile riutilizzare i componenti della GUI in WPF su ASP / MVC anche (IMHO)

sì, jquery et al sono fantastici, silverlight è bello, ma le app desktop sono ancora più efficienti

per il back-end, WCF va bene

    
risposta data 27.11.2010 - 18:16
fonte
0

Dovrò raccomandarti di usare WCF per il tuo livello di servizio a causa della scalabilità e della sicurezza. Per il livello di presentazione è possibile utilizzare Silverlight o ASP.NET, Silverlight è come Flash, ma è difficile da comprendere e ha una curva di apprendimento elevata all'inizio, soprattutto quando si lavora con i dati. ASP.NET è più facile da usare ma avrai bisogno di molto tweaking e javascript per usarlo in modo efficiente.

    
risposta data 23.11.2010 - 19:23
fonte

Leggi altre domande sui tag