Rapid Application Development. and Application Generation Tools. Walter Knesel



Similar documents
Migration and Developer Productivity Solutions Cloud, Mobile and Web Development Workshop

CrownPeak Java Web Hosting. Version 0.20

JAVA/J2EE DEVELOPER RESUME

This presentation is for informational purposes only and may not be incorporated into a contract or agreement.

Developing modular Java applications

Rapid Server Side Java Development Using Spring Roo. Christian Tzolov Technical Lead, TTSD, TomTom BV 12/05/2010

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

How To Write A Web Framework In Java

OXAGILE RESUMES SUMMARY OF QUALIFICATIONS TECHNICAL SKILLS SENIOR JAVA SOFTWARE ENGINEER

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

Dynamic website development using the Grails Platform. Joshua Davis Senior Architect Cognizant Technology Solutions

Grails: Accelerating J2EE Application Development

Framework Adoption for Java Enterprise Application Development

Agile Best Practices and Patterns for Success on an Agile Software development project.

OpenShift is FanPaaStic For Java EE. By Shekhar Gulati Promo Code JUDCON.IN

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

Portals, Portlets & Liferay Platform

Quick start. A project with SpagoBI 3.x

Grails - Rapid Web Application Development for the Java Platform

Enterprise Java Web Application Frameworks & Sample Stack Implementation

Migration and Developer Productivity Solutions Retargeting IT for Emerging Business Needs

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.

Build management & Continuous integration. with Maven & Hudson

Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation

Grails 1.1. Web Application. Development. Reclaiming Productivity for Faster. Java Web Development. Jon Dickinson PUBLISHING J MUMBAI BIRMINGHAM

Glassfish, JAVA EE, Servlets, JSP, EJB

<Insert Picture Here> GlassFish v3 - A Taste of a Next Generation Application Server

<Insert Picture Here> What's New in NetBeans IDE 7.2

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

This training is targeted at System Administrators and developers wanting to understand more about administering a WebLogic instance.

Java/J2EE or Web Developer. Formal Education. Technical knowledge. Spoken Languages

Java in Web 2.0. Alexis Roos Principal Field Technologist, CTO Office OEM SW Sales Sun Microsystems, Inc.

Enterprise Service Bus

DTWMS Required Software Engineers. 1. Senior Java Programmer (3 Positions) Responsibilities:

Requirements Design Implementation. Software Architectures. Components Software Component Architecture. DSSA: Domain-Specific Software Architectures

Enterprise Application Development In Java with AJAX and ORM

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

How to Easily Integrate BIRT Reports into your Web Application

Rich Web Applications in Server-side Java without Plug-ins or JavaScript

An introduction to creating JSF applications in Rational Application Developer Version 8.0

Customer Bank Account Management System Technical Specification Document

A Comparison of Open Source Application Development Frameworks for the Enterprise

Android Programming: Installation, Setup, and Getting Started

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

Preface. Motivation for this Book

JBoss JEE5 with EJB3.0 on NonStop. JAVA SIG, San Jose

Eclipse Web Tools Platform. Naci Dai (Eteration), WTP JST Lead

Accelerated Java EE Open Source Development with Eclipse CON1905

Jenkins User Conference Herzelia, July #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP

Design Approaches of Web Application with Efficient Performance in JAVA

NetBeans IDE Field Guide

ENGINEER - DEVELOPER ADVANCED JAVA. 28 years old - 7 years of experience

Web Application Frameworks. Robert M. Dondero, Ph.D. Princeton University

Building and Using Web Services With JDeveloper 11g

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Lessons learned from a large scale OSGi web app. Jago de Vreede Paul Bakker

APAC WebLogic Suite Workshop Oracle Parcel Service Overview. Jeffrey West Application Grid Product Management

Case Study. Web Application for Financial & Economic Data Analysis Brainvire Infotech Pvt. Ltd Page 1 of 1

What s new in Access 2013

HTML5. Turn this page to see Quick Guide of CTTC

Education Institute Year Graduated

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

The Oracle Fusion Development Platform

Tutorial on Building a web Application with Jdeveloper using EJB, JPA and Java Server Faces By Phaninder Surapaneni

Inside the Digital Commerce Engine. The architecture and deployment of the Elastic Path Digital Commerce Engine

EclipseLink. Solutions Guide for EclipseLink Release 2.5

WEB APPLICATION DEVELOPMENT. UNIT I J2EE Platform 9

IBM Rational Web Developer for WebSphere Software Version 6.0

<Insert Picture Here> Betting Big on JavaServer Faces: Components, Tools, and Tricks

GRAD Analytics Advanced price and promotional analysis interface. Reactive UI providing dimensional visibility to marketing analysis.

CURRICULUM VITAE / RESUME

QA AUTOMATION - DEVELOPER ADVANCED TESTING TOOLS. 30 years old - 6 years of experience

How To Use An Informix System With A Computer System (For A Dba)

Crystal Reports for Eclipse

Windows 2000 / NT 4.0 / 95 / 98, MS-DOS, Suse Operating Systems

Ruby on Rails. Object Oriented Analysis & Design CSCI-5448 University of Colorado, Boulder. -Dheeraj Potlapally

ArcGIS Viewer for Silverlight An Introduction

Reporting and JSF. Possibilities, solutions, challenges. Slide 1. Copyright 2009, Andy Bosch,

Skillsoft Course Directory

Operations and Monitoring with Spring

SAP NetWeaver Opens SAP ERP world. Amedeo Prodi SAP Italia

tibbr Now, the Information Finds You.

SENIOR WEB DEVELOPER

How To Build A Web App

GlassFish. Developing an Application Server in Open Source

TIBCO Silver Fabric Continuity User s Guide

Web Development with the Eclipse Platform

Introduction to Ruby on Rails

DB2 Application Development and Migration Tools

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

Oracle Application Development Framework Overview

Nicholas S. Williams. wrox. A Wiley Brand

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

Maven 2 in the real world

WebSphere Application Server Developer Tools Anita Rass Wan, WAS Product Manager

This presentation will provide a brief introduction to Rational Application Developer V7.5.

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

Developing ASP.NET MVC 4 Web Applications MOC 20486

Resume of Victor Kachan (Web developer, Java developer)

Hands on exercise for

Transcription:

Rapid Application Development and Application Generation Tools Walter Knesel 5/2014

Java... A place where many, many ideas have been tried and discarded. A current problem is it's success: so many libraries, so many technologies, so many choices Or, You want to be a Java Full Stack Developer?

WEB Project DNA IDE (Eclipse, NetBeans, Jbuilder, IntelliJ,...) Build Tool (Maven, Ant, ) Unit testing (Arquillian, EasyMock, JUnit,...) App server (Tomcat, JBoss, WebLogic, WebSphere, Netty,...) UI framework (JSF, GWT, Spring MVC, Struts, Tapestry, ) CSS files, JavaScript files, Images, HTML files, SQL View JavaBeans, Business JavaBeans, WebService endpoints ORM, DAO (JPA, Hibernate, JDBC), WebService clients Database (SQL Server, Oracle, MySQL,...)

Java SE

Java takes too long: develop / compile / deploy / test cycle is long IDE / project integration mysteries download / config jars into IDE / app server XML configurations are tedious (older spring / hibernate) Technologies change every darn time!! Getting a new project started is hard!!

So what did we do about it? Rapid Application Development! As usual, there are many choices:

AppFuse 3.x open-source Java EE web app framework designed for quick, easy development start up Provides project skeleton and additional code features Maven 2 build automation Hibernate, ibatis or JPA as persistence frameworks compatible with JSF, Spring MVC, Struts 2 or Tapestry frameworks Uses Netty web server http://appfuse.org Some of the Code Features: User Management login, signup, remember E-Mail Templated Layout File Upload

AppFuse 3.x

Grails Re-use technologies like Hibernate and Spring under a single interface Templates using GSP (Groovy Server Pages) Dynamic tag libraries for creating web page components Customizable Ajax support sample applications that demonstrate the framework includes a web server and automatic reload of resources http://grails.org/ Features No XML configuration All required libraries present Automatically prepares the Java web environment for deployment provides dynamic methods (mixins) based on class type allows developers to perform operations without implements or extends Has an app generator, owned by Spring Source, works like Spring Roo

Grails

JSPX(-bay) asp.net like imitator, yet different Does not mix java into jspx pages Plain html use page tags convention over configuration stateful ui interface Data persistence exists, JPA not mentioned http://jspx.sourceforge.net/

JSPX(-bay)

OpenXava You write the code for data structure and business logic You do not have to write HTML, JavaScript, CSS, SQL, etc. Java EE user interface and the database logic are automatically provided Extend any part of the app later, if needed List mode (search) has paging, ordering, filtering, adding / removing / moving columns, PDF reports, export to Excel, etc. Detail mode (view) with tabs, frames, dialogs, editors for references and collections, etc.

OpenXava

Play 2.x Definite Scala web platform possibility Scala and Java, non Java EE heavily inspired by and similar to Ruby on Rails and Django, uses module concept Uses convention over configuration designed to be run using JBoss Netty web server Can package to war and run on EE app servers. Stateless: Play 2 is fully RESTful - there is no Java EE session per connection a persistence layer based on JPA Built in hot-reloading an embedded database full embedded testing framework http://www.playframework.com/

Play 2.x

WaveMaker 6.x Automatic generation of Hibernate mapping, queries from database schema import Automatic creation of Enterprise Data Widgets based on schema import Edit form implements create, update, delete functions automatically Visual, drag & drop assembly of web applications Developer sees live application data within the studio (LiveLayout) one-touch deployment to Tomcat, Websphere, Weblogic, Jboss Browser-based WaveMaker studio can be bundled Deploys a standard Java.war file effectively an open source alternative to Force.com http://www.wavemaker.com

WaveMaker 6.x

Others not covered Jrapid, not free, cloud based, DRY http://www.jrapid.org/ Stripes, not specifically RAD http://www.stripesframework.org Vaadin, not specifically RAD https://vaadin.com Wicket, not RAD, plain html, components http://wicket.apache.org/

Common Features Project skeletons and some feature code Convention over configuration and Annotations Maven get / configure / deploy jars Maven standard project config, operations light-weight frameworks, scripting langs DRY (don't repeat yourself) pattern code generation or support of some layers

Another Approach Please? I don't really want to give up my environment for another The technology changed again and I don't want to jump to yet another environment to catch up I'd like to just push a button...

Application Generation Tools Not as easy as pushing a button Does not generate a production application DOES generate a deployable running application A good start, delete what you don't want Grails Maven archetypes Spring Roo Seam / JBoss Forge

Maven Archetypes Many choices, will likely find one for your desired environment and version. Built a demo with jboss-javaee6-webapp-archetype 7.1.3 Final Command line: mvn archetype:generate Eclipse new maven project Produces a maven project skeleton http://maven.apache.org

Jboss EE6 Blank Project

Jboss EE6 non blank Project

Maven Archetypes Pros Part of Maven, instant Maven project Light, quick, easy to run No other external software to install Freedom to build app your way Many, many archetypes to work with Cons Produces a skeleton only Blank is truly minimal (pom, libraries, persistence.xml)

Spring Roo Is a separate (commandline) generator Has to be installed (unzipped) Install oracle driver into internal osgi Reversing a database worked first try! Had to build database tables first http://projects.spring.io/spring-roo/

Roo shell

Roo commands project --toplevelpackage org.cchmc.bmi.psysoc.pvp jpa setup --provider HIBERNATE --database ORACLE dependency remove --groupid com.oracle --artifactid ojdbc14 --version 10.2.0.2 dependency add --groupid com.oracle --artifactid ojdbc6 --version 11.2.0 database properties set --key database.driverclassname --value oracle.jdbc.oracledriver database properties set --key database.url --value jdbc:oracle:thin:@localhost:1521:xe database properties set --key database.username --value myid database properties set --key database.password --value mypass ### all tables at once database reverse engineer --schema PSYSOCPVP --package ~.models web jsf setup --implementation ORACLE_MOJARRA --library PRIMEFACES --theme BLUESKY ### build them all web jsf all --package ~.beans

Roo Generated: a PrimeFaces JSF UI Non EE AspectJ Spring beans and models heavy use annotation and injection Models use JPA Some internationalization provided Simple CRUD app, runs in Tomcat

Roo Project

Roo App

Roo Pros Little investment More capabilities than shown Database schema reversal works Spring, JPA, JSF, PrimeFaces Cons Non EE AspectJ bean generation Roo Specific Annotations Does not drop in to Jboss servers

Seam 2 Marry JSF 1.2 w/ JPA and make it work My first app generation encounter Installed Seam external to IDE Defined schema in reveng.xml Built an EE 5 CRUD app MPM admin tool started this way http://www.seamframework.org/seam2/home

Seam 3 Java EE 6 and CDI Seam 2 had to become Seam 3 Seam 3 introduced JBoss forge Seam 3 has stopped (see Apache DeltaSpike, others) http://www.seamframework.org/seam3

Jboss Forge 1.4x Is a separate (commandline) generator Has to be installed (unzipped, Eclipse) Reversing a database - miserable failure Did it their way, inside out http://forge.jboss.org/

Forge Shell

Forge Commands New-project; scaffold setup --scaffoldtype faces; beans setup; entity --named Customer --package ~.domain; field string --named firstname; field string --named lastname; field temporal --type DATE --named birthdate; @/* Generate the UI for all */; scaffold from-entity ~.domain.* --scaffoldtype faces overwrite; @/* create rest WebService CRUD endpoints */; rest setup; rest endpoint-from-entity ~.domain.*; build;

Forge Generated: JSF UI Domain beans, EE criteria query view beans heavy use annotation and injection views use JPA Simple CRUD app, runs in Jboss 7

Forge Project

Forge App

Forge Pros More function, for free J2EE 6 Annotated, JBoss compatible, what we use JSF, JPA, criteria queries already built if desired Large table paging is built in. Cons Multiple injected entity managers Extended conversations More pages, clicks to navigate Want DB reverse engineering to work View beans are too dense

Conclusions Generally good starts or short cuts Use what works, delete what doesn't May show new ideas, techniques, APIs Build multiple projects, cannibalize them Don't be afraid to modify / extend