Domanda

Ajax, Flettere E Silverlight sono alcuni modi per creare applicazioni web più interattive.Che tipo di fattori prenderesti in considerazione al momento di decidere quale utilizzare per una nuova applicazione web?

Qualcuno di loro offre migliore compatibilità multipiattaforma, prestazioni, strumenti di sviluppo o supporto della community?

È stato utile?

Soluzione

Ecco una rapida carrellata di ciascuna area (con molti collegamenti utili):

Compatibilità multipiattaforma

Ajax lavora dentro qualsiasi browser moderno che può funzionare JavaScript.Flex richiede Flash o qualsiasi altra cosa in grado di gestire SWFs ma, una volta installato, è a freeride totale per quanto riguarda la compatibilità.Silverlight lo è complicato e incompreso quindi considera attentamente il tuo base utente prima di intraprendere questa incursione della MS nella ricca corsa agli armamenti delle applicazioni web.Tieni inoltre presente che Silverlight è ancora in versione Beta, quindi potrebbe diventare più ampiamente utilizzato e installato in futuro man mano che verrà sviluppato.

Prestazione

Ho paura di fare troppe affermazioni sulle prestazioni perché dipende davvero da quanto sei disposto a ottimizzare e dall'esatta natura della tua applicazione.Inoltre, alcuni stack tecnologici non saranno mai molto veloci. Alcune persone là fuori hanno fatto paragoni, ma ancora una volta, dipende da moltissimi fattori (anche la versione del browser da cui stai testando!).Probabilmente è meglio scegliere in base ad altri fattori e ottimizzare una volta iniziato lo sviluppo.

Strumenti di sviluppo

Esistono gli strumenti di sviluppo "golden standard" per ciascuno dei tre:

  • Ajax ha opzioni sostanzialmente illimitate, a seconda del resto delle scelte tecnologiche e architettoniche.Le grandi domande che devi affrontare sono su quali biblioteche fare affidamento e Google ha espresso una risposta abbastanza ben adottata con cose come Kit di strumenti Web.Quando arrivi al dunque, sono solo XML e JavaScript, giusto?

  • Flex è di Adobe e, proprio come con lo sviluppo di Flash, faresti meglio a mantenerlo i loro strumenti fatti in casa perché... beh... stanno definendo gli standard man mano che procedono.

  • Microsoft ha posizionato le versioni 2.0 e 2.5 di Microsoft Expression Blend per la progettazione dell'interfaccia utente delle applicazioni Silverlight 1.0 e 2 rispettivamente.Visual Studio 2008 può essere utilizzato per sviluppare ed eseguire il debug di applicazioni Silverlight (daWikipedia).

Supporto comunitario

Esiste un supporto sia ufficiale che non ufficiale della comunità, aziendale e open source per tutte e tre le opzioni.Qualunque cosa tu sia già integrato e che ti faccia sentire più a tuo agio sono cose molto individuali, ma ti offrirò questo consiglio:resta fedele a ciò che sai.Se sei uno sviluppatore MS e hai MSDN come home page, probabilmente penserai che Documentazione Silverlight e i forum sono davvero utili.Flex ha una storia molto simile;i forum sono abbastanza buoni e se sei già un utente Flash, ti sentirai come a casa con i loro documentazione E comunità di utenti.

D'altra parte, Ajax è praticamente ovunque perché puoi implementare tanti modi diversi e usare tante librerie molto diverse.Ogni biblioteca può avere i propri forum da visitare e mailing list in cui nascondersi per trovare risposte.

Ancora una volta, tutti e tre hanno giganti aziendali che cercano di promuovere le loro comunità e di ottenere il miglior supporto possibile agli sviluppatori che darà loro una maggiore quota di mercato in futuro.

Altri suggerimenti

La scelta dovrebbe a mio avviso basarsi principalmente sulla natura dell'applicazione che realizzerai (ad esempio, se hai bisogno di manipolare la grafica vettoriale, Ajax è praticamente fuori), ma ecco alcune linee guida generali:

Ubiquità

  1. Ajax: supportato da tutti i browser moderni su più piattaforme
  2. Flex: Runtime (Flash Player) ha una base installata molto ampia per Windows, Mac OS, Linux.La versione Linux però presentava qualche bug l'ultima volta che ho controllato
  3. Silverlight: al momento Runtime ha una base installata piuttosto bassa (e nessun supporto Linux).

Scelta del linguaggio di programmazione

(Non ordinato a causa della soggettività, ma tieni presente che Silverlight offre la scelta più ampia.Tieni inoltre presente che l'esperienza linguistica esistente degli sviluppatori nel tuo team dovrebbe essere presa in considerazione.)

  • Luce d'argento:Qualsiasi linguaggio .NET (C#, Visual Basic, IronPython(?), IronRuby(?)) (e XAML per la definizione dell'interfaccia utente)
  • Ajax:JavaScript (e XHTML per la definizione dell'interfaccia utente)
  • Flettere:ActionScript 3 (e MXML per la definizione dell'interfaccia utente)

Stabilità e compatibilità dell'API

  1. Flex: il runtime è lo stesso su tutte le piattaforme e i browser, al momento più maturo e stabile rispetto a Silverlight
  2. Silverlight: il runtime è lo stesso su tutte le piattaforme e i browser, meno maturo di Flex/Flash, la versione 2.0 è ancora in versione beta
  3. Ajax: problemi di compatibilità tra browser (potrebbero però essere mitigati tramite le librerie Ajax)

Integrazione web/browser

  1. Ajax: il contenuto è nativo all'interno del browser, in base agli standard:ricercabili dai crawler del browser e dei motori di ricerca, in base alle pratiche standard di interfaccia utente stabilite dal browser e dal sistema operativo
  2. Flex e Silverlight: contenuti non nativi del browser (ad es.funziona nel suo piccolo "sandbox/rettangolo"):non necessariamente soggetto alle pratiche di interfaccia utente stabilite per la piattaforma specifica

Strumenti di sviluppo

  1. Ajax: il tuo editor di codice, browser e toolkit di debug preferito per il browser
  2. Flex: Flex SDK è disponibile gratuitamente per Windows, Mac OS e Linux e può essere utilizzato con il tuo editor di codice preferito.È incluso un debugger da riga di comando, ma il profiler fornito da Adobe è disponibile solo nell'IDE commerciale Flex Builder
  3. Silverlight-- per quanto ne so, L'SDK è disponibile per Windows gratuitamente e può essere utilizzato con i tuoi strumenti di sviluppo .NET preferiti

I runtime web come Flex e Silverlight offrono tutti cose allettanti, ma comportano due grandi costi:

  • Vengono eseguiti solo all'interno di un rettangolo sulla pagina e non interagiscono con i normali widget Web
  • Sono disponibili solo per le persone che hanno installato il plug-in

Anche il quasi onnipresente Flash non è installato su tutti i browser Web, quindi scegliendo di utilizzare un runtime plug-in escludi parte del tuo pubblico.

Al contrario, JavaScript (o Ajax) è disponibile praticamente su tutti i browser e interagisce meglio con le normali pagine web, ma è un linguaggio più primitivo e restrittivo.Usarlo per animazioni complesse può essere complicato e dovrai testare le tue applicazioni in più versioni su più piattaforme per assicurarti che funzioni.

La compatibilità multipiattaforma non è più il problema di una volta, quindi il problema è questo: Guadagnerai di più nelle funzionalità di una libreria di plug-in di quanto perderai nel pubblico che escludi?

La mia risposta finora è sempre stata JavaScript/Ajax, ma lo rivaluterei in qualsiasi nuovo progetto.

Qual è il tuo pubblico:sito web pubblico o un'app aziendale Intranet?I tassi di adozione non sono rilevanti se hai un pubblico controllato che installerà ciò che è necessario per eseguire la tua app.Tuttavia, se hai bisogno del pubblico più vasto possibile per rendere la tua startup web un successo, allora potrebbe essere fondamentale.

Qual è il tuo obiettivo?Costruire qualcosa al minor costo?Imparare nuove tecnologie?

Puoi sfruttare le tue competenze esistenti?Se conosci già .NET, Silverlight ottiene una spinta.Learning Flex può essere interessante e utile, ma per te è più utile di una maggiore esperienza con le tecnologie .NET?Ricorda di considerare il costo opportunità di imparare qualcosa di totalmente nuovo.

Non vedo un chiaro vincitore tecnologico a questo punto, e probabilmente non ce ne sarà uno per molto tempo, quindi la scelta dipenderà da fattori abbastanza soggettivi.

Oltre a quanto già menzionato qui, un'altra cosa importante da considerare è quale sarà la tua interfaccia utente.

Se utilizzerai molti controlli avanzati dell'interfaccia utente come alberi, elenchi, controlli scheda, ecc., considera quanto segue:

  • JavaScript/HTML: nessun supporto nativo per nulla che vada oltre le semplici caselle a discesa, pulsanti e campi di testo.Se desideri qualcosa come un controllo ad albero o un controllo a schede, dovrai crearne uno tuo o trovare una libreria di terze parti.

  • Adobe ActionScript: supporto nativo per un'ampia gamma di controlli avanzati dell'interfaccia utente

  • Silverlight: la versione 1.0 aveva controlli dell'interfaccia utente molto limitati, ma la versione 2.0 ne aggiungerà molti altri e sono sicuro che continueremo a vedere controlli aggiunti nelle versioni future.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top