The university I develop Java applications for needs to create some Building Block (B2) applications for Blackboard Learn release 9.1 service pack 9. I'm somewhat familiar with Blackboard's Building Block technology but needed to update my knowledge for Building Blocks that will work with Blackboard Learn release 9.1 service pack 9. This article lists some resources I found helpful in getting me started and updating my B2 knowledge. Hopefully you will avoid the frustrations I experienced in trying to find up-to-date references.
Finding Current References
My first step was to get the Getting Started With Building Blocks from the Blackboard support site. I quickly realized that this document is very out of date (it was written in 2008 and doesn't cover the new B2 tags and APIs that you must use with Blackboard Learn 9.1). You can read the first couple of chapters if you're not familiar with what are Building Blocks. UPDATE: Scott Hurrey has updated the example project from the Getting Started guide so that it will work with Learn 9.1.
You can also get the Building Blocks Developer Guide from the the Blackboard support site. It's also very out of date, but the first few sections provide some good background on Building Blocks and what you can do with them. Another out of date resource is the Building Blocks Getting Started Guide for Intermediate Developers. That document does provide some good background on how to architect a Building Block project.
Thanks to Stephen Vickers for providing the link to the Building Blocks API documentation for Learn 9.1 service pack 9. Also he helped me find the Building Blocks Tag Library Guide for 9.0 and 9.1. That document looks to be very useful in learning the new tag library and also being able to translate the old tags found in many Building Blocks to the new tags that should be used with Learn 9.1. I searched all over the Blackboard support site for Building Blocks documentation and missed those.
After searching the Blackboard support site for B2 documentation I turned to Blackboard's support site for developers: edugarage.com. Again much of what I found there referencing B2 was out of date or missing links. There is a video on edugarage that show how to use Eclipse to create a B2 that was somewhat helpful.
So after several frustrating hours trying to find current information on developing Building Blocks on the Blackboard support site and on edugarage, I searched the rest of the net. I luckily ran across Michael Fudge's blog articles on developing Building Blocks for newbies. You can get the presentation Michael gave on developing Building Blocks at the 2011 Blackboard Developer's Conference. After reviewing that presentation visit his blog and view the videos he has on creating Building Blocks. I was able to follow along with Michael as he developed a Building Block in Eclipse and deploy that Building Block to my development Blackboard system. Michael's blog was by far the most helpful resource I found.
Michael also provides a B2 Starter Kit, a Building Block that show how to do several common tasks. You can copy and paste the code from his B2 Starter Kit when creating your own B2. His B2 Starter Kit and Quizlet example B2 (which you build with Michael in his series of videos) both worked in my Blackboard Learn 9.1 system.
If you want to make developing Building Blocks easier you can install the Building Block starter (version 1.2.3 with upload) in your development Blackboard system. Installing that B2 in your development Blackboard system makes it easier to deploy a B2 directly from your local computer to your development Blackboard system. In my case I develop Blackboard Building Blocks on my local computer but need to upload and install them into a Blackboard system running on a remote server.
After you install the Building Block starter you should add the Blackboard Building Block New Project Wizard Eclipse plugin. Follow the instructions at that link for how to get, install, and use the plugin. Here are a few notes that may help you get the plugin working.
- You need to download the Blackboard Learn release 9.1, service pack 9 install jar as the plugin needs to access all the Blackboard libraries that are wrapped up in that jar. The install jar download is 1 GB so try to do the download when you have a very high-speed internet connection.
- After downloading the jar file un-archive it using the jar -xf [install-jar-name]. Then copy the platform/systemlib contents to a folder on your development computer (e.g. /apps/blackboard/lib).
- You need to modify the MANIFEST.MF file that is in bb-platform.jar in order to enable the Blackboard B2 New Project Wizard Eclipse Plugin to detect your Blackboard version. The plugin will not work if you don't do this. Here is how I modified the MANIFEST.MF file in bb-platform.jar.
- Extract META-INF/MANIFEST.MF from bb-platform.jar: jar -xf bb-platform.jar META-INF/MANIFEST.MF
- Use a text editor to edit MANIFEST.MF adding the Blackboard-version line above
- Merge the edited META-INF/MANIFEST.MF back into the bb-platform.jar manifest: jar umf META-INF/MANIFEST.MF bb-platform.jar
- After that the version number displays in the Target Blackboard Version drop-down in the Blackboard Building Block wizard
There are also some B2 projects on oscelot.org that you may be able to use as examples. Just be sure the project says it works with Blackboard Learn release 9.1.
New! A new feature for Building Blocks targeted against Bb Learn 9.1 Service Pack 1 or higher is the capability of the Building Block to create new database tables that are part of the Bb Learn database schema. An example of how to do this is the Signup B2 on the oselot site. Get the source code for the signup3 project.
Blackboard does provide an extensive tag library and API that you can use in your own Building Blocks. The problem I have now is how do I know which tags and API classes I need to use for my project. So my next step is to learn more about the tag library and API classes so I can understand when and how to use these.
If you know of a good resource for learning more about how to develop Building Blocks for Blackboard Learn 9.1 and how to use the tags and API classes please comment below.