© 2006 IBM Corporation
Agile Planning Web UI
© 2006 IBM Corporation
Agenda
Overview of APT Web UI
Current Issues
Required Infrastructure
API
Testing
© 2006 IBM Corporation
Bac
kend
Overview: APT Architecture
Pla
n M
odel
Vie
w M
odel
Vie
wer
Filter
Sorter
Transformers
Handlers
AttributesScheduling
Quick Query
Progress / Load
Service / Client Common / Client UI
Plan Checks
Eventing
Caching
© 2006 IBM Corporation
EclipseRhino / Dojo
Bac
kend
Overview: APT Eclipse UI Architecture
Pla
n M
odel
Vie
w M
odel
Vie
wer
Filter
Sorter
Transformers
Handlers
AttributesScheduling
Quick Query
Progress / Load
Service / Client Common / Client UI
Plan Checks
Eventing
Caching
© 2006 IBM Corporation
Browser / Dojo
Bac
kend
Overview: APT Web UI Architecture
Pla
n M
odel
Vie
w M
odel
Vie
wer
Filter
Sorter
Transformers
Handlers
AttributesScheduling
Quick Query
Progress / Load
Service / Client Common / Client UI
Plan Checks
Eventing
Caching
© 2006 IBM Corporation
Examples
Group Providers
Tempo
ROI Attribute
© 2006 IBM Corporation
Accomplishments
Common Infrastructure
– Using Dojo on both, Eclipse UI and Web UI
– Successfully designed APIs that work in both environments
– Transparent usage of JS from Java (no Liveconnect)
Provisioning of scripts
Solved multithreading Issues
– Eclipse UI needs synchronization
– Implementation of Worker Threads
© 2006 IBM Corporation
Current Issues (JavaScript)
Date / Time Handling in JavaScript
– Hard to implement certain features
– Dojo does not help
– need third party library
International Text Handling
– Unable to correctly parse text
© 2006 IBM Corporation
Current Issues (Script Management)
Loading of JavaScript Code (65225, 63702)
– Different Sources (folders, process spec, ...)
– Scoping of Dojo Classes (com.ibm.team.apt.client...)
Sending code manually to the client (XHR)
Maintain files and import sequence manually
For Web, Eclipse UI, Tests, ...
No Shrinksafe
files eval'ed rather than <script> included in debug mode
© 2006 IBM Corporation
Current Issues (Script Management)
Loading of JavaScript Code (65225, 63702)
Different Sources (folders, process spec, ...)
– Scoping of Dojo Classes (com.ibm.team.apt.client...)
Extend net.jazz.ajax.webBundles
Introduce Script Provider APIEach Provider can define namespaceEach Provider can list and serve script files of the namespace
© 2006 IBM Corporation
Current Issues (API)
No API to Underlying Components
– Not stable
– Not documented
– Not layered
– Incompatible data objects
Hard to adopt features
Teams reinvent an (incompatible) world
Classes in the namespace of underlying components!
© 2006 IBM Corporation
Current Issues (API / Items)
No Item Handling
– Every vertical works with items
– Item Hierarchy etc must be rebuilt manually
– Items are local to each vertical
– No Item Manager to share item instances
– No Working Copies / Eventing
© 2006 IBM Corporation
Current Issues (API / Items)
Items must be smarter
– Type hierarchy (allow instanceof checks)
– Resolving references (eg work item owner)
– Want to work with API, not data
Must be similar to the Eclipse Client, but customized
The transmitted data must be de-serialized
Generate item sourcecode form EMF?
See PlanningClient.js _doMassageDTO
See ReferencedItemStore.js
© 2006 IBM Corporation
Current Issues (Service Calls)
Sending Complex Data to the Server to complicated
– Must be able to send DTOs / Items
– Automatic serialization of DTOs in JS
Client Code should be generated from service description?
the new REST style APIs DO NOT solve the problem
© 2006 IBM Corporation
Current Issues (Reusable Widgets)
Widgets are not easily useable
– APIs are often complicated with hidden features (missing doc)
– Requires CSS tweak (does not work Out of the Box)
We do not know what's available (85511)
– Missing / Outdated Documentation
We need widget toolkit
– Must match Jazz L&F
– Must cover Web UI Patterns and Style Guide
• Toolbars, Menus, Actions, ...
– Simple Viewer (no Dojo Table)
© 2006 IBM Corporation
Current Issues (API cont'd)
Infrastructure, Infrastructure, Infrastructure
– Progress Monitor
– Status
– Assertions
– Exceptions
– ...
© 2006 IBM Corporation
Current Issues (Error Reporting)
Error Reports are unusable (85543)
– bad stacktraces
– missing method names
No common Error Handling Infrastructure
– Status, SafeRunnable, Error Reporting
Errors should be reported back to the server and logged
– Errors in Web UIs are transient -> you cannot ask someone to look in the error log
© 2006 IBM Corporation
Current Issues (Development)
Debugging / Profiler (85251)
– displayName
Memory Leaks
Tools for externalizing strings,...
Need to learn from other teams (not only Jazz)
© 2006 IBM Corporation
Current Issues (Testing)
Current test framework is great for widgets
– Need test setup w/ database setup
– Browser tests are heavyweight
Tests should be run in Rhino (env.js)
Allows fast and lightweight test setup
threading is not an issue
debugging is easy
APT planned exploration
© 2006 IBM Corporation
Current Issues
Web UI Foundation is great
– but it is hard to build Enterprise scale software
No Best Practices
– Must compensate shortcomings of JS
– Code Style / API
– Data Objects
– Development / Debugging
– Collect / investigate them, then publish and enforce
© 2006 IBM Corporation
Actions
Reusable work from other components should be pushed down to foundation
Top Related