10

Ora che Google consente Java su App Engine, mi chiedo quale effetto abbia questo effetto su una scelta di framework web per App Engine.Quale framework di sviluppo Web funziona meglio con Google App Engine?

  1. Mi rendo conto che Google fornisce l'infrastruttura web che è piuttosto barebone.
  2. E la versione .96 di django che è disponibile per App Engine è restrittiva.
  3. web2py brucia risorse, da quello che ho sentito.
  4. Rails (ora disponibile) non può utilizzare ActiveRecord, ActiveResource, restclient, rmagick.

C'è qualcosa che mi manca? Qualche framework funziona bene su App Engine?

risposta

5

Personalmente, ho trovato Python più divertente. Questo sono solo io. Tuttavia ci sono diversi sviluppatori Java impegnati che apprezzeranno il supporto Java in GAE. Inoltre, il supporto di Java è stata una buona scelta di Google in quanto consentirà alla piattaforma GAE di ospitare potenzialmente molte altre lingue. È ovviamente un po 'presto per aspettarsi che tutti i linguaggi basati su JVM funzionino su GAE, ma il futuro sembra promettente. Per ora possiamo guardare ciò che è e non funziona dando un'occhiata a this GAE Java Group Page.

Tornando a Python, penso che le piccole applicazioni Web funzioneranno perfettamente con il framework webapp integrato. Altre applicazioni beneficeranno maggiormente di Django 1.0. Date un'occhiata allo GAE articles nella sezione framework per alcune buone letture su questo. In ogni caso, avrai indubbiamente delle restrizioni in qualsiasi delle tue scelte dato che la maggior parte dei framework web sono progettati con database relazionali in mente ... quale datastore/bigtable non lo è. Inoltre, la piattaforma GAE deve essere sottoposta a sandbox per motivi di sicurezza che, in alcuni casi, vi restringono. Spero che questo ti aiuti.

+0

Ho compilato un elenco di App Engine Framework per Python qui: http://code.google.com/p/tipfy/wiki/AppEngineFrameworks – moraes

+0

@fuentesjr il link della pagina del gruppo GAE Java è guasto. – rahulserver

3

Prova Spring. Supporta JPA e JDO.

C'è anche un Python version per la primavera ora.

+0

Non mi è mai venuto in mente di utilizzare un framework Web Java. Ma questa è un'idea. Grazie. Speravo in qualcosa di più conciso di Java - Python, Ruby. – karl

+0

Probabilmente dovresti chiarire e specificare Spring MVC, Spring ha un grande portfolio di progetti. – Jon

+0

Ho intenzione di provare Java e Spring lì. È presto, ma questo è l'approccio migliore IMO. – duffymo

0

Se stai cercando Python, quindi Django sarebbe la soluzione migliore.

+0

Django su GAE sembra poco maneggevole. Mi piace molto il framework Django. Ma quando ho provato a integrare una delle mie app di Django in GAE, ho trascorso alcune settimane e non è andata da nessuna parte. hai avuto fortuna? – karl

+0

Prova Appengine Patch per Django: http://code.google.com/p/app-engine-patch/. È un progetto a singolo sviluppatore e aggiunge un po 'di overhead, ma è sicuramente il modo più semplice per usare qualsiasi Django a 0.96. –

0

Struts 2 è stato progettato per funzionare su Google App Engine (almeno in termini di applicazioni di esempio). Seguire questa discussione:

http://www.nabble.com/Google-App-Engine-support--td22972179.html

Sembra che ci sono alcuni problemi con SiteMesh in termini di template, ma se si sta utilizzando JSP si dovrebbe essere ok.

È una buona scelta come un framework per applicazioni web.

+0

Non sono aggiornato sul mondo Java ma pensavo che Struts fosse caduto in disgrazia: la primavera sembra più parlare della città in questi giorni. Pensi che questo sia ingiustificato? – karl

+0

Struts è praticamente un lascito, Struts 2 è il successore che è un'unione di Webwork e Struts. Avendo usato sia quello che Spring MVC commercialmente, direi che Struts 2 è molto più flessibile e avanzato per quanto riguarda il framework di un'applicazione web. – Jon

+0

Due altre app Web includono Stripes, che è piuttosto popolare al momento, e Grails: ho appena iniziato con questo su Google App Engine, ma non ho ancora ottenuto molto ... – Jon

1

Non so esattamente la gamma completa di opzioni, ma posso dirvi un paio di cose fuori del blocco ...

  • Google Apps è costruito in cima/Django.
  • Django è praticamente ciò che Google Apps incoraggia e supporta, quindi mi aspetterei che si integrasse con Google Apps meglio di altri.
  • Google Apps ha delle restrizioni incorporate nel fatto che è non possibile aggirare (o non dovrebbe). Queste limitazioni non sono correlate a nessun particolare framework, ma sono incorporate nel tessuto di Apps, per così dire.
  • Non mi preoccuperei molto delle prestazioni del framework - prova a migliorare il tuo design/struttura, sarà sicuramente più conveniente.
  • Google passerà infine a Django 1.0 e versioni successive, oltre a aggiornare anche Google Apps.
  • Usano memcache (o un equivalente) in modo da tenerne conto e utilizzarlo.
+0

Penso che tu abbia torto sul fatto che App Engine sia stato costruito con/su Django. Hai qualche link per supportare questa affermazione? – karl

+0

La prestazione del framework è ovviamente una preoccupazione: nel caso di web2py, potrebbe causare il superamento delle quote per il giorno. – karl

+0

Google Apps non è uguale a Google App Engine. – karl

0

Si consiglia di web.py se si utilizza Python.

1

Dipende davvero da cosa si vuole fare. Nella mia esperienza, qualcosa di piccolo fatto su Webob è davvero buono per un'API. Ma per i siti completi che necessitano di template/sessioni/routing/caching complessi, il django è difficile da battere.

Prendere in considerazione che se si dispone di enormi framework (come django 1.0), la prima richiesta richiede sempre circa 3 secondi per caricare tutto in memoria e tenerlo lì fino a 15 secondi dopo tale richiesta.

E mentre fai acquisti in giro per quadri di tenere conto che:

  • ORM non si applicano alla piattaforma in modo sostanzialmente non importa.
  • I modelli veloci (come il Cheetah) non saranno veloci (o addirittura funzionanti) in quanto non possono utilizzare le estensioni c.
  • Il caching potrebbe essere la cosa più importante per rendere tutto veloce.
+0

Bene, il framework webapp di Google ha oggetti di richiesta/risposta quindi non sono sicuro del motivo per cui utilizzeresti Webob. Punto interessante su ORM, ma non sono sicuro di cosa intendi che non si applicano. web2py utilizza un ORM e funziona con GAE anche se devi essere consapevole del carattere unico di BigTable. – karl

+0

@karl Il framework webzapp di Google utilizza effettivamente Webob per la richiesta e una semplice classe basata su StringIO per la risposta. – moraes

8

In realtà web2py è molto leggero e poiché ~ 1.50 su GAE, memorizza nella cache tutti i modelli/viste/controllori compilati dal codice byte.

Tuttavia, è necessario considerare che per impostazione predefinita sono presenti sessioni basate su datastore e questo può aggiungere un sovraccarico rispetto al framework che non ha sessioni di lavoro su GAE (almeno non di default).

Lo stesso DAL web2py non aggiunge un sovraccarico significativo rispetto alle API di datastore Google originali.

+0

web2py DAL non gestisce transazioni e riferimenti con antenati.Ho passato solo un paio di minuti a guardarlo, quindi non conosco altri problemi, ma questi sono abbastanza brutti. – moraes

+2

Non sono sicuro dei riferimenti con gli antenati ma gestisce le transazioni nella misura in cui GAE gestisce le transazioni. Puoi infatti inserire il codice DAL in GAE run_in_transcation (...) – mdipierro

0

Io uso nuovo quadroGAE framework. Questo è simile a Django, ma funziona su AppEngine.

Cordiali saluti!

0

Per Python utilizzare webapp2 (fornito di serie con il motore app)

0

Se si vuole costruire l'applicazione su larga scala e hanno bisogno di quadro più flessibile, allora si può dare un'occhiata a Pyramid Python Framework. In precedenza è chiamato come piloni. Ci sono molte buone aziende che usano questa struttura.

Problemi correlati