Top Banner
AUFaculty – Developer’s Guide Akdeniz University Faculty Information System Development Project ORÇUN DAYIBAŞ JULY, 2014 AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014
17
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: AUFaculty: A Case Study for Responsive GWT Application Development

AUFaculty – Developer’s GuideAkdeniz University Faculty Information System Development Project

ORÇUN DAYIBAŞ

JULY, 2014

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 2: AUFaculty: A Case Study for Responsive GWT Application Development

Outline Development Environment

GWT Framework

General (Non-functional) Requirements

UiBinder

GWT-Bootstrap

EventBus

MyBatis

Big Picture

Project Life-cycle

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 3: AUFaculty: A Case Study for Responsive GWT Application Development

GWT Framework Compiles your Java UI codes into optimized JavaScript ones.

Resulting code is HTML+JavaScript+CSS. Thus, very easy to deploy.

GUI components are very close to Java Swing specification; smoothlearning curve.

Ultimate goal: integrating Java developers from diverse areas toweb application development domain.

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 4: AUFaculty: A Case Study for Responsive GWT Application Development

Development EnvironmentJDK 1.7u55

Eclipse 4.3.2

Maven 3.2.1 (External)

m2e 1.4.0

Subversive SVN 1.1.3 (SVN Kit 1.6)

Google Plugin for Eclipse 3.5.1

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 5: AUFaculty: A Case Study for Responsive GWT Application Development

Development Environment Thanks to Maven; developers are free to use different Operating Systems.

1: Deployment scripts (Win: deploy.bat, Linux: deploy.sh)

2: Maven definition of the project (SVN repository does not include Eclipse/NetBeans project; they are local and private for each developers).

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 6: AUFaculty: A Case Study for Responsive GWT Application Development

General (Non-functional) Requirements GWT Application (The executives’ decision).

Software architecture shall be very modular (The development team is subject to heavily change).

DBMS is MS SQL Server (Huge legacy data and hard to migrate).

Mobile and Desktop uses are equality important.

Good UX (User Experience) design is very important (Diverse user groups).

DB schema is subject to change.

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 7: AUFaculty: A Case Study for Responsive GWT Application Development

UiBinder A solution to support modularity by separating UI and Business Logic codes.

Almost de facto for modern GWT applications.

Each View consists of two parts:AbcView.ui.xml: Declarative user interface code.

AbcView.java: Business logic of concerning user interface.

More info: http://www.gwtproject.org/doc/latest/DevGuideUiBinder.html

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 8: AUFaculty: A Case Study for Responsive GWT Application Development

UiBinder

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 9: AUFaculty: A Case Study for Responsive GWT Application Development

GWT-Bootstrap Out of the box GWT widgets lack of responsive UX (Mobile performance of these widgets are still in question).

Twitter Bootstrap is a de facto solution in responsive web application development.

GWT-Bootstrap wraps the twitter bootstrap components as GWT widgets.

Additional namespaces to UiBinder: b, bb.

More info: http://gwtbootstrap.github.io/

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 10: AUFaculty: A Case Study for Responsive GWT Application Development

EventBus Supports modularity by decreasing boilerplate codes (also makes easier inter-object communication in the software).

Based on Google Guava EventBus framework.

LOC and complexity decrease dramatically.

Sniffing (to debug) object interactions is easy.

EventBus in GWT Sample: http://www.youtube.com/watch?v=2939gdrNymg

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 11: AUFaculty: A Case Study for Responsive GWT Application Development

MyBatis An ORM solution to abstract DB layer from the other layers of application.

Based on iBatis (the developers are also same).

Unlike the other common ORM solutions, MyBatis maps the methods to queries.

More info: https://code.google.com/p/mybatis/

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 12: AUFaculty: A Case Study for Responsive GWT Application Development

Big Picture

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 13: AUFaculty: A Case Study for Responsive GWT Application Development

Project Life-cycle Trac is configured and deployed as a project management tool (SVN repo is integrated).

Pilot project is AUFaculty but it’s ready to be used in other projects too.

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 14: AUFaculty: A Case Study for Responsive GWT Application Development

Project Life-cycle Jenkins CI server is configured and deployed as a build server.

Defect/task management, release planning, etc…

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 15: AUFaculty: A Case Study for Responsive GWT Application Development

Project Life-cycle JavaDoc is also generated after each built and resulting documents are at the disposal of the development team.

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 16: AUFaculty: A Case Study for Responsive GWT Application Development

Project Life-cycle The project is built at 23:00 every day.If it’s successful, it is also

deployed to the application server.

Lets the developers know any broken build with a notification e-mail.

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014

Page 17: AUFaculty: A Case Study for Responsive GWT Application Development

Thank you…

AUFACULTY PROJECT: DEVELOPER’S GUIDE / ORÇUN DAYIBAŞ / JULY, 2014