10

Ahora que Google permite Java en App Engine, me pregunto qué efecto tendrá esto en una elección de framework web para App Engine.¿Qué marco de desarrollo web funciona mejor con Google App Engine?

  1. Me doy cuenta que Google proporciona el framework webappp que es bastante barebones.
  2. Y la versión .96 de django que es disponible para App Engine es restrictiva.
  3. web2py quema recursos, por lo que he escuchado.
  4. Rieles (ahora disponible) no se puede usar ActiveRecord, ActiveResource, restclient, rmagick.

¿Hay algo que me falta? ¿Funcionan bien los marcos en App Engine?

Respuesta

5

Personalmente, he encontrado que Python es más divertido. Así soy yo. Sin embargo, hay varios desarrolladores de Java comprometidos que apreciarán el soporte de Java en GAE. Además, admitir Java fue una buena opción para Google, ya que permitirá que la plataforma GAE aloje potencialmente muchos otros idiomas. Obviamente, es un poco pronto para esperar que todos los lenguajes basados ​​en JVM se ejecuten en GAE, pero el futuro parece prometedor. Por ahora podemos ver lo que está funcionando y lo que no funciona echando un vistazo a this GAE Java Group Page.

Volviendo a Python, creo que las aplicaciones web pequeñas funcionarán muy bien con el framework de aplicaciones web incorporado. Otras aplicaciones se beneficiarán más de Django 1.0. Eche un vistazo a GAE articles en la sección de marcos para obtener algunas buenas lecturas sobre esto. En cualquier caso, sin dudas tendrá restricciones en cualquiera de sus opciones, ya que la mayoría de los marcos web están diseñados con bases de datos relacionales en mente ... que no es el datastore/bigtable. Además, la plataforma GAE tiene que estar en la zona de pruebas por razones de seguridad que también lo restringen en cierta medida. Espero que esto ayude.

+0

He compilado una lista de marcos de App Engine para Python aquí: http://code.google.com/p/tipfy/wiki/AppEngineFrameworks – moraes

+0

@fuentesjr el enlace de la página del grupo GAE Java está muerto. – rahulserver

3

Probar Spring. Es compatible con JPA y JDO.

Incluso hay un Python version para la primavera ahora.

+0

Nunca se me ocurrió usar un marco web Java. Pero eso es una idea. Gracias. Esperaba algo más conciso que Java: Python, Ruby. – karl

+0

Probablemente debería aclarar y especificar Spring MVC, Spring tiene una gran cartera de proyectos. – Jon

+0

Planeo probar Java y Spring allí. Es temprano, pero ese es el mejor enfoque de la OMI. – duffymo

0

Si está buscando Python, entonces Django sería su mejor opción.

+0

Django en GAE parece difícil de manejar. Me gusta mucho el framework Django. Pero cuando traté de integrar una de mis aplicaciones Django en GAE pasé unas semanas y no llegó a ninguna parte. ¿Tuviste un poco de suerte? – karl

+0

Pruebe Appengine Patch para Django: http://code.google.com/p/app-engine-patch/. Es un proyecto de un solo desarrollador y agrega algunos gastos generales, pero definitivamente es la forma más sencilla de usar cualquier Django por encima de 0.96. –

0

Se dice que Struts 2 funciona en Google App Engine (al menos en términos de las aplicaciones de ejemplo). Siga este tema:

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

Parece que hay algunos problemas con SiteMesh en cuanto a la plantilla, pero si usted está utilizando JSP debe estar bien.

Es una buena opción como va el marco de aplicación web.

+0

No estoy actualizado en el mundo de Java pero pensé que Struts había caído en desgracia. La primavera parece más la comidilla de la ciudad en estos días. ¿Crees que esto no está justificado? – karl

+0

Struts es prácticamente un legado, Struts 2 es el sucesor que es una combinación de Webwork y Struts. Habiendo usado tanto eso como Spring MVC comercialmente, diría que Struts 2 es mucho más flexible y avanzado en lo que respecta al marco de aplicaciones web. – Jon

+0

Otras dos aplicaciones web incluyen Stripes, que es bastante popular en este momento, y Grails: acabo de comenzar con esto en Google App Engine, pero aún no he llegado muy lejos ... – Jon

1

No sé exactamente toda la gama de opciones, pero te puedo decir un par de cosas en el bate ...

  • Google Apps se construye encima de/usando Django.
  • Django es más o menos lo que Google Apps anima y apoya, por lo que espero que se integre con Google Apps mejor que otros.
  • Google Apps tiene restricciones integradas que usted no puede circumvent (o no debería). Estas limitaciones no están relacionadas con ningún marco particular, sino que están integradas en el tejido de las aplicaciones, por así decirlo.
  • No me preocuparía demasiado el rendimiento del marco: trate de mejorar su diseño/estructura, sin duda será más rentable.
  • Google eventualmente se moverá a Django 1.0 y más reciente, además de que también están actualizando Google Apps.
  • Utilizan memcache (o un equivalente) así que tenlo en cuenta y úsala.
+0

Creo que está equivocado sobre la creación de App Engine con/encima de Django. ¿Tiene algún enlace para apoyar esa declaración? – karl

+0

El rendimiento del marco es obviamente una preocupación: en el caso de web2py, puede hacer que exceda sus cuotas del día. – karl

+0

Google Apps no es lo mismo que Google App Engine. – karl

0

Recomiendo web.py si está utilizando Python.

1

Realmente depende de lo que quieras hacer. En mi experiencia, algo pequeño hecho a mano encima de Webob es realmente bueno para una API. Pero para los sitios completos que necesitan plantillas/sesiones/enrutamiento complejo/caché, django es difícil de superar.

Tenga en cuenta que si usa frameworks grandes (como django 1.0) la primera solicitud siempre demora alrededor de 3 segundos para cargar todo en la memoria y lo mantiene allí hasta 15 segundos después de esa solicitud.

Y mientras que darse una vuelta por los marcos de tener en cuenta que:

  • ORM no se aplican a la plataforma, así que básicamente no tienen importancia.
  • Las plantillas rápidas (como Cheetah) no serán rápidas (ni siquiera funcionarán) ya que no pueden usar extensiones c.
  • El almacenamiento en caché puede ser lo más importante para que todo sea rápido.
+0

Bueno, el framework webapp de Google tiene objetos de respuesta/respuesta, por lo que no estoy seguro de por qué usaría Webob. Punto interesante sobre los ORM, pero no estoy seguro de lo que quiere decir que no se aplican. web2py utiliza un ORM y funciona con GAE, aunque debe tener en cuenta el carácter único de BigTable. – karl

+0

@karl El marco webzapp de Google realmente usa Webob para la solicitud, y una clase simple basada en StringIO para la respuesta. – moraes

8

Actualmente web2py es muy liviano y desde ~ 1.50 en GAE, almacena en caché todos los modelos/vistas/controladores compilados por código de bytes.

Sin embargo, debe tener en cuenta que de forma predeterminada tiene sesiones basadas en el almacén de datos y esto puede agregar algo de sobrecarga en comparación con el marco que no tiene sesiones trabajando en GAE (al menos no de forma predeterminada).

El web2py DAL no agrega una sobrecarga significativa en comparación con las ingenuas API del almacén de datos de Google.

+0

web2py DAL no maneja transacciones y referencias con antepasados.Solo pasé un par de minutos mirándolo, así que no sé sobre otros problemas, pero estos ya son lo suficientemente malos. – moraes

+2

No estoy seguro acerca de las referencias con antepasados, pero maneja las transacciones en la medida en que GAE maneje las transacciones. De hecho, puede poner el código DAL en GAE run_in_transcation (...) – mdipierro

0

Yo uso nuevo marcoGAE framework. Esto es similar con Django, pero trabaja en App Engine.

¡Un cordial saludo!

0

de Python para usar webapp2 (viene incluido con el motor de aplicación)

0

Si usted quiere construir aplicación a gran escala y la necesidad marco más flexible, entonces usted puede echar un vistazo a Pyramid Python Framework. Anteriormente se llama como Pilones. Hay muchas buenas compañías que usan este marco.