A Blackboard Building Block Crash Course for Web Developers

wispxylopolistInternet και Εφαρμογές Web

7 Αυγ 2012 (πριν από 5 χρόνια και 2 μήνες)

416 εμφανίσεις

A Blackboard Building Block™
Crash Course for Web Developers

Murali Yellepeddy, Architect

Agenda


Blackboard Building Block Introduction


Hooks into the platform


B2 Manager


Blackboard
®

API


Tag libraries


Security


Q&A

Introduction


If you've ever built a webapp for Tomcat®,
WebLogic
®,
WebSphere
®, etc Or a portlet for
uPorta®l
,
Liferay
®, etc
-

you've essentially already
built a Blackboard Building Block


Blackboard
®

itself is nothing more than a bunch of
webapps

running on Tomcat



Blackboard
®

Architecture

Client

Bb App Server(s)

Bb DB Server

Oracle®
/

SQL*

Server®

Apache /

IIS

Static files .html

Tomcat

.
jsp

pages

/webapp pages

Locale images

Collab

Server

chat & virtual

classroom


B2s are most
-
closely
-
related to a portlet in that
it's a simple webapp with
1 extra XML file that tells
Blackboard where your
app will hook into it


Blackboard Building Block
Contents

webapp

Manifest

(
XML
)

BB
-
Manifest.XML


Describes the web application to the Blackboard
plug
-
in manager


Metadata


Allows to extend functionality


Custom Content


Links


Portal Modules


Register to Notifications


Gradable Items


Security


Entitlements


Permissions




Basic Structure of a Blackboard
-
Manifest File

<?xml version="1.0" encoding="ISO
-
8859
-
1"?>

<manifest>


<!
--

core extension information
--
>


<
plugin
>



<!
--

general information: name, handle, etc.
--
>



<http
-
actions>
...

</http
-
actions>



<!


Register to Notifications
--
>


<extension
-
defs
>
...

</extension
-
defs
>



<!
--

Custom Portal Modules
--
>


<module
-
defs
>
...

</module
-
defs
>



<!

-

Score Providers
--
>



<score
-
providers>

...
</score
-
providers>




Basic Structure of a Blackboard
-
Manifest File

<!
--

custom content handlers
--
>



<content
-
handlers>




<content
-
handler>
...

</content
-
handler>



</content
-
handlers>




<!
--

Tools defined by this extension
--
>



<application
-
defs
>




<application>
...

</application>



</application
-
defs
>




<permissions>
...
</permissions>


</
plugin
>

</manifest>




Example Code


Hello World
Mashup

content handler


Adds a course tool

Blackboard
®

B2 Manager


What to use to build it..


Just like a webapp, you can use whichever
framework technology you want to use
-

Struts &
Spring are the most common.


You can also use straight JSPs for the most basic
of projects, but using MVC is recommended as a
better practice


Similarly, you can easily add supporting libraries
such as those from the Apache Commons projects
to avoid reinventing the wheel for common tasks.
Note, a lot of libraries already ship with
Blackboard
®

Learn™(check /blackboard/apps/tomcat/lib)




Blackboard
®

Look & Feel


Easy to render the user interface using the
Blackboard tag libraries
-

similar to the JSTL
libraries (Java) or SharePoint web part Web UI
Controls used to render HTML.


The tag libraries inherit the look/feel, usability, and
accessibility of the core product


You can also roll your own UI using straight HTML if
desired

Example Code


Javascript


Blackboard uses Prototype.


You can layer additional AJAX technologies on top
of it such as
Scriptaculous

for slick web 2.0
-
like
behavior.


Would not recommend using
JQuery

as sometimes
Prototype and
JQuery

don't interact so well.
Another one to look at is
AjaxTags
.


Blackboard
®

API to Access
Blackboard Data


Base persistence objects are defined in the
package,
blackboard.persist
, with sub
-
packages
including


announcement


calendar


content


course


gradebook


user


Context
vs

Persistence

Context tag


Current Session


Current Page


Who am I?


Where am I?


Persistence objects


Permanent Data
Store


Retrieve or
update data


Single objects


UserId

given
UserName


Lists of objects


All users in a
course


All courses for a
user


Permissions


Wrapper around Java security


Allows administrators to allow or deny a building
block based on what it is trying to access



References


Documentation and API reference


http://www.edugarage.com



Tag libraries:


Current versions on your Blackboard Learn Server


…/blackboard/content/WEB
-
INF/
config
/
taglibs



Generate documentation (html
-
format)


https://taglibrarydoc.dev.java.net/




Questions ?

Please provide feedback for this session by emailing
DevConFeedback@blackboard.com
.




The subject of the email should be title of this
session:

A Building Block Crash Course for Web Developers