Prima di tutto, l'essenza del progetto che desidero creare è un motore wiki implementato come un'app web a pagina singola. Ho intenzione di avere una serie di funzionalità disponibili sin dall'inizio con molte aggiunte di funzionalità lungo la strada.
Caratteristiche di base
- creazione della pagina (crea sia l'articolo wiki che il forum di discussione per quell'articolo)
- markup e WYSIWYG ala markitup
- conversione al volo tra markup / html / WYSIWYG
- una barra laterale per navigare velocemente
- una barra degli strumenti superiore per la scelta di modifica / visualizzazione
Funzionalità avanzate
- barra laterale configurabile per navigare con metodi diversi
- barra degli strumenti configurabile (eventualmente aggiungere un linguaggio di markup preferito)
- tag
- cose da fare modificabili
- trascina e rilascia i caricamenti di file e gli allegati di immagini
Il motore originariamente consisteva nella creazione di pagine, markup, editing e salvataggio WYSIWYG più elementari. Alla fine vorrei estendere questo motore di base con il supporto di immagini drag and drop, caricamenti di file, grafici di dati in tempo reale e una barra laterale per la personalizzazione delle visualizzazioni.
Ho fatto una ricerca abbastanza ampia per un progetto decente da cui basare il mio progetto, ma a parte TiddlyWiki non sembra esserci alcun buon motore wiki basato su javascript. Ho anche considerato di applicare Jquery in cima ai motori wiki esistenti, ma credo che alla fine avrei finito per riscriverlo comunque (in più è solo più eccitante aggiungere le funzionalità che voglio mentre procedo). In ogni caso sono arrivato all'implementazione di questa bestia con una libreria javascript + framework.
So che non si possono davvero confrontare alcuni di questi quadri l'uno con l'altro in quanto non sono affatto mele rispetto alle mele. Ho provato a inquadrare eventuali commenti / domande di confronto con parti comparabili dei rispettivi framework, ma sono aperto a essere corretto.
Quindi eccoci qui:
Sulla base delle mie ricerche e delle mie opinioni, ho ristretto l'elenco agli elementi seguenti. Ho intenzionalmente omesso cose come SproutCore, corMVC, YUI e altri poiché, nella mia capacità limitata, pensavo che gli elementi seguenti sarebbero stati più adatti.
Le mie opzioni
jquery / UI + backbonejs
Complessivamente
Da quello che ho letto questa combinazione è usata e amata da molti ed è molto flessibile ed estensibile. La mia principale preoccupazione è che questa combinazione non è semplicemente il miglior punto di partenza per lo sviluppo dell'interfaccia utente più orientata al desktop.
UI
Sebbene jQueryUI o jqueryTools possano essere competitivi, certamente non sembrano essere alla pari con le capacità dell'interfaccia utente di altri framework. Nello specifico sembrano essere pesanti sugli effetti ma privi di un supporto decente per l'affettatura del layout.
javascriptMVC
Complessivamente
JavascriptMVC a me sembra che sia essenzialmente jquery + MVC (jqueryMX) estensioni, insieme ad alcune altre app per la documentazione (documentJS), i test funzionali (funcUnit) e la gestione del codice e delle dipendenze (stealJS). Al di là dei vantaggi del modulo aggiuntivo, penso che il dibattito funzionale si riduca davvero a backbonejs vs jqueryMX Ho ragione su questo e qualcuno ha lavorato con o confrontato entrambi?
- Caratteristiche: panoramica di giove (creatore di jMVC) delle loro caratteristiche
- Collegamento a jqueryMX
UI
JavascriptMVC aggiunge gli elementi MXUI in cima a tutto ciò che è disponibile per Jquery, quindi penso che sia almeno una leggera vittoria in quella categoria.
knockoutjs
Complessivamente
I miei pensieri e le mie preoccupazioni su questo su questo sono molto simili ai commenti di jquery + backbone. Entrambi sembrano offrire caratteristiche simili ma solo da una prospettiva diversa. Uno svantaggio spesso citato è che knockoutjs accoppia la logica di business e la presentazione troppo strettamente con il data-bind e che questo metodo di associazione può interrompersi per un'interazione complessa dell'interfaccia utente, ma mi piacerebbe sapere perché non è un problema.
- Discussione sui concetti di backbone vs knockoutJS
- Caratteristiche di knockoutjs
UI
Vuoto al momento
Dojo ed ExtJS
Complessivamente
Combinerò la discussione su Dojo ed ExtJS perché ne so poco e sembrano suonare quasi nello stesso spazio. La maggior parte delle informazioni sullo stackoverflow su questi due sembra essere obsoleta. Da quello che ho visto è che sono entrambi framework di grandi dimensioni che sono buoni per l'implementazione di app di calibro desktop. Dojo era stato rimproverato per scarsa documentazione, ma sembra che non sia più così. ExtJS ovviamente ha la licenza commerciale, ma è davvero ragionevole per quello che ottieni e non lo terrei troppo. I widget in ExtJS sembrano essere fatti un po 'più professionalmente di Dojo, ma potrei certamente essere corretto lì. Sarei interessato a sentire chiunque abbia esperienza in entrambi.
UI
Dojo ha la libreria dijit UI ExtJS ha funzionalità UI ma non sono nel core Ext. Ecco la documentazione e qui ci sono le loro demo
Cappuccino
Complessivamente
E poi c'è il cappuccino. Nessun CSS, nessun HTML, ma potrebbe anche essere difficile utilizzare le librerie javascript esistenti. Objective-J non sembra spaventoso, soprattutto considerando che sono in grado di scrivere anche javascript semplici. Le demo sono impressionanti e sembrano avvicinarsi da vicino alle esigenze dell'interfaccia utente per il motore wiki. L'API basata sul cacao è molto da accettare per qualcuno che non la conosce, ma forse ne vale la pena. Ho sentito che il motore di layout non è sempre facile da lavorare, ma una tecnologia giovane e forse dirompente come questa avrà sicuramente alcuni difetti.
UI
Vuoto al momento
Mi scuso per aver scritto così tanto ma hey, almeno non è una domanda ax vs y vs z sperando in tonnellate di risposte economiche. Allora, cosa ne pensate? Quale dovrebbe essere la base per il mio desktop come il motore wiki, che si spera diventerà più ricco di funzionalità (complesso di lettura) nel tempo?