mt ag - kass - keep apex stupid simple

26
| KASS: Keep APEX Stupid Simple or “How to create maintainable APEX pages” Niels de Bruijn, Business Unit Manager APEX Ratingen, 23/06/2014

Upload: niels-de-bruijn

Post on 25-May-2015

404 views

Category:

Technology


1 download

DESCRIPTION

How to maintain your

TRANSCRIPT

Page 1: MT AG - KASS - Keep APEX Stupid Simple

|

KASS: Keep APEX Stupid Simpleor “How to create maintainable APEX pages”

Niels de Bruijn, Business Unit Manager APEX

Ratingen, 23/06/2014

Page 2: MT AG - KASS - Keep APEX Stupid Simple

|

MT AG

LEGAL STATUS AG (CORPORATION)

HEAD OFFICE RATINGEN, GERMANY

FOUNDING YEAR 1994

EMPLOYEES 190

HOLDING MT-IFS GMBH (RATINGEN), MT-IFS SARL (LUXEMBURG)

business by integration

BUSINESSINTELLIGENCE SOLUTIONS

SOCIAL BUSINESS SOLUTIONS

MOBILESOLUTIONS

APPLICATION DEVELOPMENT

INTEGRATION SERVICES

IT SYSTEM SERVICES

Page 3: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple3

About me

Niels de Bruijn, Business Unit Manager APEX

Born in 1977, married, two daughters

Started career in 2001 at Oracle in the Netherlands

Since 12/2003 employed at MT AG in Ratingen

Working with APEX since its inception back in 2004

Responsible for sales/marketing/delivery of all kinds of APEX projects

- https://apex.mt-ag.com & http://www.apexsolutions.de

As DOAG representative, responsible for the APEX community in Germany

You can find me here:

- Online: Skype, Xing, LinkedIn, Twitter, Facebook

- Offline: DOAG Conference, DOAG Development Conference, ODTUG Kaleidoscope, Regional APEX UserGroup (Meetup)

Page 4: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple4

My first APEX app in 2004Easy understandable, right?

Lessons Learned:Standards, standards, standards

Page 5: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple5

APEX Guidelines

How to enforce guidelines:

- See presentation of Oliver Lemm

- “The APEX QA Plugin”

- Tue 24-JUN, 08:30 am - 09:30 am

Packaged App: Standards Tracker

Page 6: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple6

1.Rapid Prototyping

APEX/FOEXWizards

2. Rapid

Application Development

APEX+(PL/)SQL+jQuery

3. Rapid

Rich Internet Application

DevelopmentAPEX

+(PL/)SQL+FOEX Plugins

Classification of modules in APEX projects

Complexity of module

End-user time spent each day

with the module

b.Mockup

APEX/FOEX Wizards

Use Case For example

“Access Replacement”

Use CaseFor example

“Forms Replacement”

a.Draft

Flipchart/ Balsamiq

Requirements Engineering

For which implementation method am I going for?

Implementation Phase

Page 7: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple7

Definition of a module

One APEX application may consist of multiple modules

A module covers certain business functionality and is used by a specific group of end users

A module normally has multiple APEX pages, for example:

- The module „User Maintenance“ consists of two APEX pages(IR-page + SRU-page) und its target audience are administrators.

Page 8: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple8

How do you define „complex“?

Not easy to define, but some elements of a complex module could be:

- that it writes data to multiple tables

- that there is (complex) business logic to respect

- that it contains client side behavior and dependencies between fields

- the page layout has multiple areas

- that the page can‘t be created by using APEX wizards

- that it is AJAX driven

Page 9: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple9

Some remarks

The number of end users doesn‘t matter

Chosen the wrong implementation method may lead to massive maintenance costs!

For each module, rethink your implementation method

Page 10: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple10

1.Rapid Prototyping

APEX/FOEXWizards

2. Rapid

Application Development

APEX+(PL/)SQL+jQuery

3. Rapid

Rich Internet Application

DevelopmentAPEX

+(PL/)SQL+FOEX Plugins

Classification of modules in APEX projects

Complexity of module

End-user time spent each day

with the module

b.Mockup

APEX/FOEX Wizards

a.Draft

Flipchart/ Balsamiq

Requirements Engineering

For which implementation method am I going for?

Implementation Phase

Page 11: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple11

Requirements Engineering: Draft

Key features:

Shows how the application or page may look like

Can even be created during your conversation with the customer

Page 12: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple12

1.Rapid Prototyping

APEX/FOEXWizards

2. Rapid

Application Development

APEX+(PL/)SQL+jQuery

3. Rapid

Rich Internet Application

DevelopmentAPEX

+(PL/)SQL+FOEX Plugins

Classification of modules in APEX projects

Complexity of module

End-user time spent each day

with the module

b.Mockup

APEX/FOEX Wizards

a.Draft

Flipchart/ Balsamiq

Requirements Engineering

For which implementation method am I going for?

Implementation Phase

Page 13: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple13

Requirements Engineering: Mockup

Key features:

Shows how the application or page may look like

Enables end users to interact with the UI

May have selected business processes implemented

The result is thrown away

- Clear focus on speed versus maintainability (1-2 PT)

- Operates directly on the tables (no view-layer)

Page 14: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple14

1.Rapid Prototyping

APEX/FOEXWizards

2. Rapid

Application Development

APEX+(PL/)SQL+jQuery

3. Rapid

Rich Internet Application

DevelopmentAPEX

+(PL/)SQL+FOEX Plugins

Classification of modules in APEX projects

Complexity of module

End-user time spent each day

with the module

a.Draft

Flipchart/ Balsamiq

Requirements Engineering

For which implementation method am I going for?

Implementation Phase

b.Mockup

APEX/FOEX Wizards

Page 15: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple15

1: „Rapid Prototyping“

Key features:

Requirements are known, but not written down

Features of APEX/FOEX are unknown

Iterative development (daily alignment with the customer)

Just like with MS Access, development could be done by the business

Team: 1 developer, optionally 1 requirements engineer

Complexity: live with the standard functionality

Very Short “Time to Market“ (approx. 3 months)

Applications normally targeted for usage by a small group of end users

View/Package-layer between APEX and the tables should be established

Single combined technical/functional spec. is authored during development

Page 16: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple16

1: „Rapid Prototyping“

Items

Buttons

Fetch Data Process Data

Dynamic Actions

Redirect

Page 17: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple17

1.Rapid Prototyping

APEX/FOEXWizards

2. Rapid

Application Development

APEX+(PL/)SQL+jQuery

3. Rapid

Rich Internet Application

DevelopmentAPEX

+(PL/)SQL+FOEX Plugins

Classification of modules in APEX projects

Complexity of module

End-user time spent each day

with the module

b.Mockup

APEX/FOEX Wizards

a.Draft

Flipchart/ Balsamiq

Requirements Engineering

For which implementation method am I going for?

Implementation Phase

Page 18: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple18

2: „Rapid Application Development“ (RAD)

Key features:

Requirements are known and mostly a functional specification is available

Development done by IT

- Multiple developers are involved (“Enterprise APEX”)

(architects/(different kind of) developers/QA/PL/delivery manager)

- “Scrum” method with sprints during development

Complexity of a module ranges from medium to complex

- The sky is the limit: „What works in the web, also works in APEX“

Shift business logic from APEX to the database

View/Package-layer between APEX and the tables

Approach valid both for desktop apps as well as mobile apps

Page 19: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple19

2: RAD with custom fetch/save processes

Items

Fetch Data Process Data

Buttons

Dynamic Actions

Redirect

Page 20: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple20

2: RAD – Example of a non-standard APEX pageThings you can do with jQuery

Page 21: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple21

1.Rapid Prototyping

APEX/FOEXWizards

2. Rapid

Application Development

APEX+(PL/)SQL+jQuery

3. Rapid

Rich Internet Application

DevelopmentAPEX

+(PL/)SQL+FOEX Plugins

Classification of modules in APEX projects

Complexity of module

End-user time spent each day

with the module

b.Mockup

APEX/FOEX Wizards

a.Draft

Flipchart/ Balsamiq

Requirements Engineering

For which implementation method am I going for?

Implementation Phase

Page 22: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple22

3: „Rapid Rich Internet Application Development“

Key features:

Like „Rapid Application Development“

- but limited to desktop apps

Layout typically ranges from complex to extreme complex

Logically one page, technically multiple APEX pages

100% AJAX driven

Page 23: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple23

3: „Rapid Rich Internet Application Development“

Page 24: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple24

3: „Rapid Rich Internet Appl. Development“

SQL Report defines meta data

FOEX Plugins

(AJAX) Processes

No page processing anymore!

Page 25: MT AG - KASS - Keep APEX Stupid Simple

| KASS: Keep APEX Stupid Simple25

Summary

So, how do we keep APEX stupid simple?

Setup Development Guidelines

- Use Packaged App „Standards Tracker“

- Use QA Plugin to automatically check your standards See presentation of Oliver on Tue 24-JUN between 08:30 am - 09:30 am

For each module, decide your implementation method

- Rapid Prototyping

- Rapid Application Development

- Rapid Rich Internet Application Development

Page 26: MT AG - KASS - Keep APEX Stupid Simple

|

Q&AMT AG

Balcke-Dürr-Allee 940882 Ratingen

Telefon: +49 (0) 21 02 309 61-0Telefax: +49 (0) 21 02 309 61-10

E-Mail: [email protected]://apex.mt-ag.com