Posts

Showing posts from 2016

Enterprise-app for Vaadin

Image
Some years ago I published the Enterprise-app add-on for Vaadin. The most awarded feature was the CrudComponent class that allowed you could add a CRUD-like interface to any Hibernate entity by writing one line of code. Enterprise-app was (and still is) available for Vaadin 6. I partially migrated it to Vaadin 7, but never really completed the task.

I'm not longer supporting the Enterprise-app add-on, but working in a set of new Vaadin add-ons to replace parts of its functionality. So far I have implemented the Crud UI add-on, with a less magical but much more flexible CrudComponent. A key difference with the old one is that it doesn't perform the actual CRUD operations, instead, it delegates the operations to a CrudListener with 4 methods that you have to implement (or alternatively, use 4 separte interfaces and lambda expressions or method references). This allows you to use any persistence technology you want.

Suppose you have a JavaBean like the following:

public class User…

Vaadin Video Tutorials

Image
Finally! After endless hours of rehearsal, screen recording, audio recording, film recording, audio-image synchronisation, editing work, and do it all over again, we have published the first 6 videos of the Vaadin Tutorial series. But don't get me wrong, working on these videos was a lot of fun and I'm looking forward to publish more video content.

Copy & Paste Based Development

Image
This is about Mr., W. J. a nice and friendly developer working for an IT company in a cosmopolitan city. He was in charge of five other developers. I was one of them.

It was probably my second day in the company, and he assigned a programming task to me. I was working on it, trying to figure out what the heck was that software I was going to help maintaining for the next months all about. Then, Mr. W. J. wanted to borrow my brain for a second. I wasn't using it, so I lent it. "Do you think this is a good implementation?" Mr. W. J. puzzled asked while looking at the screen, then to my face, back to the screen, then to the infinite. "Ummm... I'd say..." I managed to merely bubble when he interrupted. "I think I can also do this..." he said and immediately started to select a whole class with a hundred lines of code or more. He copied the code. He pasted the code. He pasted it in an empty file, slightly changed the name of the class, and made some m…