Buongiorno a tutti, scrivo perché avrei bisogno dei vostri consigli ed esperienze. Perdonate eventuali inesattezze o ingenuità ma sono da poco su RoR per cui chiedo venia :) Arrivo al dunque: vorrei realizzare un'app per approfondire i miei studi e "sporcarmi un pò le mani" anche per quanto riguarda il layout, il mio obiettivo è quello di arrivare ad un'app per la gestione di commesse di lavoro in cui sulla sinistra della schermata ho una sidebar di navigazione treeview con elementi padre-figlio (drag&drop per modificarne l'ordinamento) e, cliccando sulle singole voci, nel riquadro di destra avere il dettaglio del record. In buona sostanza vorrei ottenere un risultato simile a quello proposto in questa demo: demo.netzke.org Per quanto riguarda il core RoR non penso avrò problemi, l'integrazione con javascript/jquery invece mi è più criptica Avete già realizzato soluzioni simili? Con che tools? Consigli per implementazione della parte js? Ringrazio tutti in anticipo Jonathan
on 2012-08-28 16:22
on 2012-08-28 16:45
Ciao, in realt credo dipenda molto dal livello di complessit che vuoi raggiungere. Sicuramente se vuoi costruire un'app identica alla demo che hai linkato, la cosa migliore al momento usare un framework js tipo: http://backbonejs.org http://spinejs.com http://emberjs.com http://sproutcore.com http://cappuccino.org I primi tre tendono ad essere leggeri, gli ultimi sono pesanti ma dovresti avere a disposizione tutti i widget necessari a realizzare un'app come quella che hai linkato. Per quanto riguarda l'integrazione, se scegli la via del framework client side, avviene al 100% via API (che dovrai implementare lato Rails con librerie tipo https://github.com/nesquena/rabl). La tendenza quella di usare json. Per il resto il codice lo puoi tenere sia completamente separato (consigliato in caso l'app javascript diventi molto grossa) sia conservarlo dentro una delle directory assets di rails. Generalmente se usi backbone o spine il secondo tipo di integrazione la puoi fare facilmente tramite diverse gem (tipo https://github.com/meleyal/backbone-on-rails) altrimenti se usi sproutcore o cappuccino, dato che sono pi complessi e strutturati, ti consiglio da subito il primo approccio. Per precisare, cappuccino non esattamente un framework js ma sicuramente ti pu aiutare a costruire un'interfaccia simile a quella che vuoi realizzare. -- Matteo Latini http://nebulab.it/ Il giorno 28/ago/2012, alle ore 16:22, Jonathan Lecchi <jonathan@zzjona.it> ha scritto:
on 2012-08-30 11:10
Ciao Matteo, grazie per la tua dettagliata risposta! Ho iniziato a dare un'occhiata alle soluzioni da te proposte e credo che mi orienterò verso sproutcore o emberjs, ma la scelta merita un approfondimento da parte mia. Perdona la domanda ma quando scrivi "Per il resto il codice lo puoi tenere sia completamente separato (consigliato in caso l'app javascript diventi molto grossa) sia conservarlo dentro una delle directory assets di rails" ho capito la gestione nelle assets ma non l'integrazione in una dir separata. Puoi farmi gentilmente un esempio? Ti ringrazio in anticipo Jonathan
on 2012-08-30 11:42
Intanto ci tengo a precisare, visto che ti sei orientato verso sproutcore/emberjs che la struttura e la comunit di questi due framework (emberjs e' derivato da sproutcore) da considerare sicuramente pi "acerba" rispetto a quella di backbone. Ci non necessariamente un male (sproutcore il framework alla base di icloud.com), diciamo solo che troverai sicuramente maggiori intoppi nella documentazione. Inoltre, una delle feature pi interessanti di sproutcore/ember anche il suo pi grande punto debole. Il model/view binding gestito dal framework stesso al contrario di backbone/spine dove devi fare tutto a manella. Puoi vederne una demo qui: http://jsfiddle.net/ntMdB/119/ A mio avviso il model/view binding di sproutcore indica anche, da parte degli sviluppatori, la volont di creare un framework pi simile a rails rispetto a backbone che ha optato per un approccio completamente nuovo. Ogni cosa ha pro e contro, volevo solo avvertirti per scaricare la mia responsabilit :D Per quanto riguarda l'integrazione, non ho esempi particolari da farti. Probabilmente se non ti chiaro vuol dire che devi capire meglio come funzionano le applicazioni scritte completamente in js. Mentre in un app rails "classica" il lavoro sporco lo fa sempre il server e hai un certo numero di script js che ti aiutano a presentare i dati sul frontend, con un app js il lavoro sporco lo fa quasi esclusivamente il browser dell'utente tramite il framework che usi. L'unica cosa a cui il server prende parte e' immagazzinare e rendere disponibili i dati. I dati vengono gestiti solitamente tramite un'interfaccia RESTful in formato xml o json. A questo punto da una parte avrai un server rails (o altro framework di sorta) che comunica con un'applicazione javascript tramite chiamate RESTful che ritornano json o xml (quindi senza diretta interazione con l'utente finale). Una volta che hai queste due componenti, non ha pi senso tenerle insieme. Potresti avere due repository distinti con un'app rails ed un app sproutcore e decidere tu come debbano interagire queste due entit. A sto punto ti consiglio un bel libro: http://www.amazon.it/dp/144930351X E' dell'autore di spine.js e spiega proprio tutti questi concetti. C'e' anche un capitolo sull'interazione con rails. -- Matteo Latini http://nebulab.it/
on 2012-08-30 12:19
Ciao Matteo, grazie per la risposta e per i tuoi consigli, anche per quanto riguarda la scelta del framework. La spiegazione che mi hai dato circa la gestione delle app js che dialogano in RESTful con l'app server-side, a livello teorico la conoscevo già, ma praticamente non ho mai sviluppato soluzioni simili, per cui hai dedotto bene e da qui le mie lacune... anche elementari! In ogni caso sono aperto a consigli e critiche, nonchè grato di ricevere suggerimenti per approfondire le mie conoscenze, come il libro che mi hai segnalato su Amazon :) Sei hai altre indicazioni da darmi, consigli su manualistica o risorse online, anche per quanto riguarda RoR, sono "tutto orecchi"! Grazie ancora per la tua disponibilità Jonathan
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.