DevCon09_MM.ppt
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
385
On Slideshare
384
From Embeds
1
Number of Embeds
1

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 1

https://www.coursesites.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.
    • Dr Malcolm Murray
    Developing for Blackboard Learn, Release 9 Lessons from the BETADEV process
  • 2.
    • One of several developers asked to participate in beta testing of Release 9 from September 08
    • Great to see developers included in the beta process
    • Can’t say too much – had to sign a NDA
    • What follows is my personal journey re-writing building blocks for release 9
    Overview
  • 3. The BETA DEV program
  • 4. Some facts and Figures from George 25+ client and partner developers involved 20 medium to high severity bugs reported & resolved 25 enhancement requests collected, many of which have made it into the NG developer roadmap 20 webinars/weekly calls 150+ discussion forum posts
  • 5. Active Discussion Board
  • 6. Course Map
  • 7. George has just said this has just been posted to edugarage. It would also be a great addition to the SDK…
  • 8. That’s great
    • Now I don’t have to kill you because you’ve seen it  …
  • 9. Thinking NG same but different
  • 10.
    • Tags don’t mix
    • 2 options:
    • Minimal – try and stick with bbUI and bbData tags
    • or:
    • Bite the bullet and rewrite for bbNG
    Release 9: a potential code fork…
  • 11.
    • Easy to break portal CSS
    Risks of sticking with r8 code Delete this slide. The page has been mangled successfully.
  • 12. Tags don’t mix No longer allowed <bbNG:pageHeader instructions= &quot; <%=rBundle.getString(“pHeader”)%> “ > Do this instead: <% String pageInstructions = rBundle.getString(“pHeader”); %> <bbNG:pageHeader instructions= &quot; <%=pageInstructions%> “ > Tomcat 6 is stricter:
  • 13. Some items require JSTL format
  • 14. Some parts of the UI don’t look pretty
  • 15. New Model
    • Old
    • edit.jsp ->
    • proc_edit.jsp (OK button page)
    • NG
    • edit.jsp ->
    • Servlet (or Ajax) ->
    • edit.jsp with receipt
  • 16. blackboard.platform.servlet.InlineReceiptUtil Job done... Sorry, something bad happened...
  • 17. Developing in NG http://imgs.xkcd.com/comics/code_talkers.png
  • 18. Changes to the Manifest
    • Some new entries
    • Some new permissions needed
    • Still not documented 
  • 19. New Tag Library
    • Three common starting tags
    • <bbNG:learningSystemPage>
      • - renders course menu automatically
    • <bbNG:genericPage>
      • - used for other activities e.g. properties page
    • <bbNG:includedPage>
      • Use for portal modules e.g. view.jsp
  • 20. Form Validation
    • The bbNG tags now expose form validation to the developer:
  • 21. List Functionality
  • 22. Inventory Lists
    • Be careful if you use multiple inventory lists
  • 23. Still Hidden
    • Some functions are not currently exposed to the developer:
    • Need to write your own javascript popup function
  • 24. Access points within the GUI
    • More is not always the right answer…
  • 25. Forget the Notifications Dashboard
    • To Do doesn’t reflect any custom assignment types
    • Or even “built in” extras e.g. Self & Peer Assessment
  • 26. Documentation and Guides
  • 27.
    • Subject of much discussion
    • In the beta program
    • Check the SDK
    Release 9 Documentation
  • 28. Go to edugarage.com
  • 29. Building Blocks SDK – updated!
  • 30. API Specs
  • 31. API Specs
  • 32.
    • Many items inspired by the BETADEV process
    • http://www.edugarage.com/display/BBDN/Impact+of+V9+on+Blackboard+Developers+Overview
    Overview of Changes
  • 33.
    • Shame on you Blackboard This isn’t the NG way
  • 34.
    • CourseDbLoader loader = CourseDbLoader.Default.getInstance();
    Instances and Factories
    • ContextManager cManager = ContextManagerFactory.getInstance();
    • Context ctx = cManager.getContext();
  • 35. CSS and JS imports
    • jsFile and cssFile calls often fail if full URL isn’t provided
    • so use blackboard.platform.plugin.PlugInUtil to find it
  • 36. Course and Group modules
    • Feels like a version 0.1 implementation
    • Group and Course are NULLS in the Context object for a Course or Group module
    • Workaround – parse request.getParameter(&quot;recallUrl&quot;);
      • Course Module: /webapps/blackboard/execute/modulepage/view? course_id=_41_1 &cmp_tab_id=_62_1&editMode=true
      • Group Module: /webapps/blackboard/execute/modulepage/viewGroup? course_id=_41_1 & group_id=_41_1 &editMode=true
  • 37. Conclusion
    • Many new features only exposed in the NG tag libraries
    • bbUI tags don’t always convert properly
    • Changes to the API – e.g. bbLists deprecated
    • In the long term you’ll need to switch
    • Get started – you will be working in the dark for much of the time, until Bb sort out the documentation.
    • Still, the results are worth it.