Presentation is loading. Please wait.

Presentation is loading. Please wait.

Inside Gradebook - June 9, 2005 Inside Gradebook Or: How I Learned to (almost) Stop Worrying & (almost) Love JSF 1.1 Ray Davis – UC Berkeley.

Similar presentations


Presentation on theme: "Inside Gradebook - June 9, 2005 Inside Gradebook Or: How I Learned to (almost) Stop Worrying & (almost) Love JSF 1.1 Ray Davis – UC Berkeley."— Presentation transcript:

1 Inside Gradebook - June 9, 2005 Inside Gradebook Or: How I Learned to (almost) Stop Worrying & (almost) Love JSF 1.1 Ray Davis – UC Berkeley

2 Inside Gradebook - June 9, 2005 Pragmatic Development Incremental Cyclical User-driven Lazy optimization Lazy generalization

3 Inside Gradebook - June 9, 2005 Small Interdisciplinary Team Functional specification –Ben Brophy - UI - MIT –Oliver Heyer - Project Manager - UC Berkeley Implementation –Ray Davis – UCB –Josh Holtzman - UCB Sakai integration –VARIED Samigo integration –VARIED

4 Inside Gradebook - June 9, 2005 Goals Best-of-breed online gradebook Meet MIT and UC needs Built on new Sakai framework Built on new Sakai course management API Built with rich JSF component set Close integration with Samigo... Due in four months

5 Inside Gradebook - June 9, 2005 Goals, 2 DUE BEFORE new Sakai framework DUE BEFORE new Sakai course management API DUE BEFORE rich JSF component set DUE BEFORE Samigo completely stable

6 Inside Gradebook - June 9, 2005 Something's Gotta Give Delivery date? Functionality? Stability?

7 Inside Gradebook - June 9, 2005 Jettisoned Close cross-dependencies Anything not in Sakai 1.5 (e.g., sections) Two-way sharing with Samigo Complex UI; potential design issues –Percentage-weighting –Categories –Histories –Graphs Immediate use by MIT or UC Berkeley

8 Inside Gradebook - June 9, 2005 Managed Change Living specs Spec team updates CVS Discussion via BaseCamp & Confluence

9 Inside Gradebook - June 9, 2005 Integration – Tool / Component App Presentation External Apps App Business Logic

10 Inside Gradebook - June 9, 2005 Integration – Application / Service App Presentation External Apps App Interface Shared Model Logic Service Interface

11 Inside Gradebook - June 9, 2005 Integration – Direct Client Gradebook Sakai 2 APIs

12 Inside Gradebook - June 9, 2005 Integration – Facades Gradebook GB Facades Sakai 1.5 APIs Sakai 2 APIs Tests Standalone

13 Inside Gradebook - June 9, 2005 The Scary Part - JSF JSF 1.1 lacks components. JSF 1.1 has more general problems. JSF 1.2 is likely to fix many. JSF 1.2 isn’t available.

14 Inside Gradebook - June 9, 2005 JSF 1.1 - Berkeley Pilot Experience Buggy Unpredicted results Tangled backing beans Forced session scope

15 Inside Gradebook - June 9, 2005 Taming JSF – Bugginess Switch to MyFaces –Still buggy, but… –Releases more often –Access to CVS head

16 Inside Gradebook - June 9, 2005 Pure Request Scope R App Context DB R App Context R App Context R App Context

17 Inside Gradebook - June 9, 2005 Session Scope R App Context DB RR

18 Inside Gradebook - June 9, 2005 Request Thread Scope AKA task scope, page flow scope, workflow scope.... R App Context DB RR App Context App Context

19 Inside Gradebook - June 9, 2005 Request Threads in JSF 1.1 Carry thread state in UI component New FlowState component, inspired by MyFaces SaveState

20 Inside Gradebook - June 9, 2005 JSF - Data Synchronization Phase-aware backing beans –PhaseAware interface –InitializableBean superclass Controlled guaranteed initialization from DB

21 Inside Gradebook - June 9, 2005 Taming JSF - Coding Conventions One page = One backing bean Backing bean is selectively Serializable Confine DB queries to init() Avoid unnecessary DB queries No domain objects in request thread state HINT: Use PhaseListener when debugging

22 Inside Gradebook - June 9, 2005 JSF - Incremental Generalization JSP 2 1.Embedded 2.Included 3.JSP tag 4.Java tag JSF 1.1 1.Embedded 2.-- 3.-- 4.Java component

23 Inside Gradebook - June 9, 2005 JSF - Incremental Generalization Solution: MyFaces aliasBean From addAssignment.jsp : From editAssignment.jsp : From inc/assignmentEditing.jspf : <h:inputText id="title" value="#{bean.title}“ required="true" >

24 Inside Gradebook - June 9, 2005 JSF - Components Reduced need Mocked up with embedded Move over to Sakai 2 as available Pager tag - Thanks, Jon Andersen!

25 Inside Gradebook - June 9, 2005 Bumps Changes in responsible parties Changes to facades Changes to service interface Changes to formatting Reorganization & repackaging of files Changes to Sakai framework expectations

26 Inside Gradebook - June 9, 2005 Results Delivered specified functionality on schedule Multiple DBs Multiple deployment styles Back button, multiple windows/tabs Less server load Foundation for future work

27 Inside Gradebook - June 9, 2005 Future Work Refactor tests Domain objects in request threads JSF - redirecting URLs JSF - out of sync URLs JSF - precompile JSPs Submit MyFaces approach to wider group Restore MIT/Berkeley functionality


Download ppt "Inside Gradebook - June 9, 2005 Inside Gradebook Or: How I Learned to (almost) Stop Worrying & (almost) Love JSF 1.1 Ray Davis – UC Berkeley."

Similar presentations


Ads by Google