Gwt create2013 Frankfurt: How we built a million dollar business with GWT

Preview:

DESCRIPTION

QAFE stands for Quality Application Framework for Enterprises. It was developed by Java and Oracle engineers to modernize Oracle Forms, and at the same time to create a modern platform for new business application development. QAFE separated the business logic from the presentation layer. Therefore, as the web evolves, developers do not have to rewrite their applications: because the QAFE engine, with the help of GWT and other toolkits, renders their logic to any frontend. http://gwtcreate.com/#agenda-eu_room1_event10 http://www.qafe.com

Citation preview

QAFE• Quality Application Framework for

Enterprises.

• Created by Developers for Developers

• Makes sure you focus on business and not nitty-gritty of building applications

QAFE ArchitectureFLEX HTML5

Presentation Framework (QPF)

Business Framework(QBF)

Java

“Third Parties”

OthersFront-end Technologies

Back-end Technologies

GWTQA

FE

DatabaseWebService

Mobile

QAFE ArchitectureFLEX HTML5

Presentation Framework (QPF)

Business Framework(QBF)

Java

“Third Parties”

OthersFront-end Technologies

Back-end Technologies

GWTQA

FE

DatabaseWebService

Mobile

How do we do that ?QAML,

QAFE’s Markup Language

Design considerations• Shorter compilation times (fast development cycle)

• Any application with same size Javascript

• Easy for any developer, accessible for newbies

• Use the power of GWT under the hood

• We like Single Page Applications (SPAs)

• Use of Maven and other standards (web overlay)

Callbacks service.getShapes(dbName, new AsyncCallback() {

public void onSuccess(Shape[] result) {

}

public void onFailure(Throwable caught) {

} catch (IncompatibleRemoteServiceException e) {

// this client is not compatible with the server; cleanup and refresh the

// browser

} catch (InvocationException e) {

// the call didn't complete cleanly

} catch (Throwable e) {

// last resort -- a very unexpected exception

}

CSS & Dom• Reading from IE8, from com.google.gwt.user.client.DOM class

public static java.lang.String getStyleAttribute(Element elem,java.lang.String attr)

• Put “background” in the DOM and get “BACKGROUND” back.

• We use LessCSS for clever CSS

Dependency Third-party Libraries

• gwt-mosaic

• gwt-incubator

• Wasn’t rebuilt by Google, had to make explicit request for that

• Wrapper of JS Libraries were hard!

• Still using gquery though!

Future roadmap• From the first build until now a super solid solution!

• Cross Browser (even the older ones)

• Tuning in Javascript is immense!

• Continue to work with GWT

Future roadmap• From the first build until now a super solid solution!

• Cross Browser (even the older ones)

• Tuning in Javascript is immense!

• Continue to work with GWT

Future roadmap• From the first build until now a super solid solution!

• Cross Browser (even the older ones)

• Tuning in Javascript is immense!

• Continue to work with GWT

Future roadmap• From the first build until now a super solid solution!

• Cross Browser (even the older ones)

• Tuning in Javascript is immense!

• Continue to work with GWT

• Focus on clean HTML output (Web Components!)

Future roadmap• From the first build until now a super solid solution!

• Cross Browser (even the older ones)

• Tuning in Javascript is immense!

• Continue to work with GWT

• Focus on clean HTML output (Web Components!)

• Open Sourcing the QAFE Engine

Future roadmap• From the first build until now a super solid solution!

• Cross Browser (even the older ones)

• Tuning in Javascript is immense!

• Continue to work with GWT

• Focus on clean HTML output (Web Components!)

• Open Sourcing the QAFE Engine

• Debugging using what we learned at “Compiler Deep Dive”

Future roadmap• From the first build until now a super solid solution!

• Cross Browser (even the older ones)

• Tuning in Javascript is immense!

• Continue to work with GWT

• Focus on clean HTML output (Web Components!)

• Open Sourcing the QAFE Engine

• Debugging using what we learned at “Compiler Deep Dive”