Best practice for GAE, Printing

I am new in Vaadin and I would like to develop small business application on top of GAE (server side model type).

  1. Installation
    Is it recommended to install latest version of java, Eclipse, Vaalon and GAE? If not which you suggest?

  2. Developing cycle
    Is it better to start developing without GAE and when I need data persistence update/upgrade to GAE?
    Is issue with running Vaadin on GAE locally absolute (https://vaadin.com/old-forum/-/message_boards/view_message/2990842)? If not is any workaround?

  3. I guess that because of Vaadin server side model/framework type of application I can make data persistence directly in the code, without separate layer for RPC is this true?

  4. I would like to use datastore and Objectify on GAE. How to implement paging for tables? What class to extend, is any example somewhere that can help or just any direction where to start?

  5. Printing. What are suggestions? Probably, I will need something like iText for pdf generation?
    I need simple formatted reports with header and footer. Any suggestion what to use for printing/reporting?
    I would like more informations that this https://vaadin.com/book/-/page/advanced.printing.html :wink:

  6. What are GAE resource cost of Vaadin server side model application, if you try to compare it with classical servlet/GWT model for small business application? Such application probably consumes much more front end instance computation time, is Is it true?

Thanks

I would recommend considering some other cloud platform. GAE for Java is not really ideally suited for stateful applications as it serializes and deserializes sessions on every request etc. Thus, the performance is not very good, and I have also seen reliability issues with GAE in the past.

If you do decide to use GAE anyway, make sure you wait until 7.1.1 which is to be released soon - there are serious issues in the GAE support of 7.1.0 (and to some extent also 7.0) but I hope the most important fixes still make it to 7.1.1. See
#12208
and
#12209
for some more details. Also
#12213
might be relevant for you.

As for server side resource utilization, it depends a lot on your application. Apart from the serialization and deserialization overhead on GAE, a well designed Vaadin application can be fairly light, although a GWT application which only has some of the business logic on the server can of course be tuned to be lighter on the server. Memory usage and GAE performance of a Vaadin application will usually depend more on what data your application keeps in the session than on Vaadin overhead. Containers used for Tables etc. are one easy way in which an application can sometimes unintentionally hold onto large amounts of data.

For the other questions, maybe someone else can give better answers.

Thanks a lot!
I hope that Vaadin team will update documentation, that currently support for GAE is broken. When you start with new tool it is really hard when unexpected problems occurs.