ExpressUI 1.0.0 (CRUD Framework) Released

I just released the final version of
ExpressUI
1.0.0, a CRUD framework based on Vaadin, Spring and Hibernate.

My framework is designed to handle real-world enterprise requirements, with as minimal coding effort as possible. Feature areas that are particularly strong: searching, paging through results, form editing, validation, data formatting, managing entity relationships, internationalization and security (field-level permissions).

ExpressUI solves many technical challenges that come up frequently on these forums. I have tried hard to make ExpressUI “just work” by filling in feature gaps in the technology stack. One example would be binding to nested properties that contain may nulls in the object tree. Another would be paging and sorting arbitrarily large result sets.

Development can be done in a lightweight environment (Jetty and H2), although I’ve also tested deployment in production environments like JBoss, Weblogic, MySQL and Oracle.

See
www.expressui.com
for further information. I have added full JavaDoc as well as a code tutorial, FAQ and other development guides.

Please let me know what you think. Feedback is always welcome!

Juan

Played a bit with the add-on and it seems really well done!

Maybe there should be a better tutorial to give devs a more detailed understanding of the possibilities and how it works, but still it is pretty easy to use.
Also, there should be more possibilities to play with the application global layout (menubar, header, footer).

Anyway, good job!

Thanks for the feedback! Please feel free to post feature requests to
expressui.uservoice.com
so that others can vote on them.

Also, keep in mind that ExpressUI is designed for people who want to get the job done as quickly and as cheaply as possible and are less concerned about customizing the UI design. However, I can certainly see opportunities for improving flexibility without incurring much added complexity. So, I will think about the layout issue. If you have any specific ideas, just let me know.

And just so people are aware, ExpressUI is not really an add-on. It is an end-to-end framework that uses Vaadin in the same way that Vaadin uses GWT. So, to some extent, ExpressUI APIs are simplified facade on top of Vaadin APIs, although I made sure that programming directly to Vaadin APIs is possible and easy, whenever required.

In case anyone is interested, I have recently made a commercial license available, as an alternative to the open-source one. If you are using the open-source license, please feel free to send me a link to your application, e.g. in GitHub, etc. I see that some people are downloading my framework, but I would love to know more about how people are using it. :slight_smile:

Cool but…another framework, I’m losing my mind.

What, innovation should stop because of your finite brain capacity?

Seriously though, I designed ExpressUI expressly to minimize the impact on the brains of people such as yourself, who are tired of learning “yet another framework.” I sympathize. We all suffer from this syndrome to varying extents. However, simplicity is the highest priority behind ExpressUI, sometimes even at the expense of features and flexibility. These tradeoffs are what really set it apart from other frameworks. It is designed specifically for developing business, CRUD apps, where containing cost is more critical than creating a customized UI.

It is also leverages existing knowledge of Spring, Hibernate and Vaadin. So, it is more of a meta framework, similar to Grails, Seam, Roo, etc.

The other nice thing about ExpressUI, is that it actually works. There are many other frameworks and add-ons that have enough gaps and bugs to make real-world development quite painful. I have tried really hard to take the pain away. So, all I can say is try and see for yourself. I am open to any feedback that is specific and constructive.

I’m newby to ExpressUI and Vaadin in general. I just installed the starter application. Quick and easy!

I will use an Oracle 10g DB. So, in Oracle I created the same table Person that comes with the app and redirect the framework to that DB using the same PersonXXX classes. But, unfortunally, it doesn’t work. When trying to insert a new record I receive a message “SQLException: ORA-02289: sequence does not exist”. Is it something wrong about my Oracle table or is it about ExpressUI?

This is the DDL to generate the table in Oracle

CREATE TABLE “MANDY”.“PERSON”
(
“ID” NUMBER(,0) NOT NULL ENABLE,
“FIRST_NAME” VARCHAR2(32 BYTE) NOT NULL ENABLE,
“LAST_NAME” VARCHAR2(32 BYTE) NOT NULL ENABLE,
“VERSION” NUMBER(
,0),
“CREATED” TIMESTAMP (6) NOT NULL ENABLE,
“CREATED_BY” VARCHAR2(255 BYTE) NOT NULL ENABLE,
“LAST_MODIFIED” TIMESTAMP (6) NOT NULL ENABLE,
“MODIFIED_BY” VARCHAR2(255 BYTE) NOT NULL ENABLE,
“UUID” VARCHAR2(255 BYTE) NOT NULL ENABLE,
CONSTRAINT “PERSON_UK1” UNIQUE (“UUID”) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE “USERS” ENABLE
)
SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE
(
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT
)
TABLESPACE “USERS” ;
CREATE UNIQUE INDEX “MANDY”.“PERSON_UK1” ON “MANDY”.“PERSON”
(
“UUID”
)
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE
(
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT
)
TABLESPACE “USERS” ;
CREATE OR REPLACE TRIGGER “MANDY”.“PERSON_ID_TRG” BEFORE
INSERT ON Person FOR EACH ROW WHEN (NEW.id IS NULL) BEGIN
SELECT Person_id_SEQ.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
ALTER TRIGGER “MANDY”.“PERSON_ID_TRG” ENABLE;

Thanks in advance