210 likes | 304 Views
Agile Planning Web UI. Agenda. Overview of APT Web UI Current Issues Required Infrastructure API Testing. Overview: APT Architecture. Backend. Quick Query. Plan Model. Transformers. View Model. Viewer. Caching. Handlers. Eventing. Sorter. Scheduling. Attributes. Filter.
E N D
Agenda • Overview of APT Web UI • Current Issues • Required Infrastructure • API • Testing
Overview: APT Architecture Backend Quick Query Plan Model Transformers View Model Viewer Caching Handlers Eventing Sorter Scheduling Attributes Filter Progress / Load Plan Checks Service / Client Common / Client UI
Overview: APT Eclipse UI Architecture Eclipse Rhino / Dojo Backend Quick Query Plan Model Transformers View Model Viewer Caching Handlers Eventing Sorter Scheduling Attributes Filter Progress / Load Plan Checks Service / Client Common / Client UI
Overview: APT Web UI Architecture Browser / Dojo Backend Quick Query Plan Model Transformers View Model Viewer Caching Handlers Eventing Sorter Scheduling Attributes Filter Progress / Load Plan Checks Service / Client Common / Client UI
Examples • Group Providers • Tempo • ROI Attribute
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
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
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
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 API • Each Provider can define namespace • Each Provider can list and serve script files of the namespace
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!
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
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
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
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)
Current Issues (API cont'd) • Infrastructure, Infrastructure, Infrastructure • Progress Monitor • Status • Assertions • Exceptions • ...
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
Current Issues (Development) • Debugging / Profiler (85251) • displayName • Memory Leaks • Tools for externalizing strings,... • Need to learn from other teams (not only Jazz)
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
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
Actions • Reusable work from other components should be pushed down to foundation