Programming Newbie. Vaadin where to start ?

Hi .

I am a management consultant by profession. However, keep reading about technology and recently came across Vaadin. I have fundamental questions, since I am new to programming, however I dabbled in java almost a decade back,while still in school. I would appreciate if you can answer few of my basic questions.

  1. How much of Java should I know since I have never done programming ?
    Can some share the roadmap to follow leading to programming in Vaadin. The web is flooded with so much information, is there method to madness. What should I read to be able to create a full fledged application in vaadin in shortest timeframe. I understand there are reasons why all these frameworks like EJB, JSP , Groovy and hibernate et al. are there. But, is there a straight line to create a working application with Vaadin UI, business logic, database .

  2. How can I stop going in circles ?
    I tried the basic tutorial , was excited to see the results. Then, started moving in circles , need to know JPA → hibernate or beans → EJB. What is the simplest stack to start and will appreciate the links or books to refer to develop level 2 understanding of Vaadin based application and could see some results. Vaadin documentation is very clear and well written, however to appreciate I have to bring myself upto speed with java backend. Is there a way to hit road and make it to the destination without going in circles.

Would really appreciate a response.

Hi, and welcome!

Glad you found your way to Vaadin. I’ll try to answer your questions.

  1. Vaadin is strictly a UI framework. You don’t need to know anything about backend stuff to use it. A good way to go about is to take the two cases as strictly separate. You can start with creating a backend that can run on it’s own without a frontend. Then you can create a front end with views. After that you can create an interface between these two in a way that the UI asks for data when it needs it, and gives commands like backend.storePerson(person); In that way, your UI is not at all dependent on what database you are using and other factors like that.

In that sense, all you need to know to use Vaadin is Java. There are no other requirements.

  1. Going to the backend of things, using JPA maybe a too big of chunk to bite when getting into creating your first application. Even when you grasp it, it is sometimes overkill for basic tasks. Do you know any SQL? I would suggest you stick to the basic until you have your first application, and then you can switch out parts to more advanced technologies
    if
    you need them.

The stack that I recommend for you to start out with is Vaadin view’s → service layer → JDBC → database. A good database to start with is in my opinion
H2
, because it can be used as a in memory or file database so you don’t have to install anything. If you already have a database like MySQL or Postgres installed, then use that - doesn’t matter that much.
JDBC
is the most simple way to straight out write SQL from Java to a database. I have a project up on
github
that uses pretty much this stack if you care to have a look. It’s written on top of an alpha version of Vaadin so the UI code might look a bit weird. When you master this stack, you can either specialize within the frontend or backend depending on what your needs are.

Also, don’t mix UI code with backend code. Even if you have everything within one project, try to separate them into separate packages and classes. Don’t put database queries into UI classes. This will make it a lot easier to maintain the code and, if needed, switch out parts of the implementation to other parts, for example JDBC for JPA or Vaadin for JSP.

The “too long; didn’t read” version is: just keep it simple. :slight_smile: