Blackboard .NET Building Blocks – How To

I’ve been asked on a number of occassion from various peoples around the globe about .NET Building Blocks for Blackboard. I’ve also considered starting a blog series for how to do things. I had the stimulus to finally start this blog process via another received request this week, so here goes.

There is a common feel with my development posts – I’m starting out very, very simple. I always like to get something working to build confidence. I’ve also gone through more than my fair share of How-To articles on the web, only to find it not to work in the later stages.

Common ground – Visual Studio 2008, Blackboard Version 8. (Although I have previously developed in VS 2005, targetting Blackboard 7.1+ (up to and including 9.0), and these instructions should work for these platforms as well – Let me know if you encounter issues).

1. Start Visual Studio, and select File->New Web Site.

2. From the popup, select ASP.NET Web Site and enter an appropriate location.

3. When the website loads, enter Hello World into the space in the div tags.

4. In the Solution Explorer View, right click on the website and select New Folder. Call this new folder ‘WEB-INF’.

5. Right click the WEB-INF folder and select ‘Add New Item…’. From the list select XML File, and enter the filename as ‘bb-manifest.xml’.

6. Replace the contents of the bb-manifest.xml with:

<?xml version=”1.0″ encoding=”iso-8859-1″ ?>
<!–core extension information–>
<name value=”Hello World”/>
<handle value=”GB-HelloWorld”/>
<description value=”Hello World .NET Building Block written by Greg Bowie.”/>
<version value=”0.0.1″/>
<bbversion value=”7.0.0″/>
<id value=”GB”/>
<name value=”Greg Bowie”/>
<url value=””/&gt;
<description value=”Greg Bowie”/>

<webapp-type value=”Net”/>
<module-type ext-ref=”hiworld” title=”Hello World” uicreatable=”false” isadmin=”true”>
<module type=”hiworld” useraddable=”true” isdeletable=”false” isdetachable=”false” title=”Hello World”>
<description>Hello World .NET Building Block written by Greg Bowie (CIS, LJMU)</description>
<module-group id=”Everyone”/>

(For an excellent introduction to each of the entries in the XML file, please refer to Malcolm Murray’s Getting Started with Java Building Blocks blog entries).

7. Now we’re ready to publish the website. Go to the ‘Build’ menu and select ‘Publish Web Site’. Enter a file location for the publish location (I normally use the same directory name as my sourcecode, but append Pub on the end, e.g. E:\SourceCode\Blackboard\HelloWorld would be set to E:\SourceCode\Blackboard\HelloWorldPub). And then click Publish to publish the website.

8. Browse to the location of the publish directory. Within this directory, select all the files and zipped them up.

This zip file is now ready for installation to Blackboard. So log into Blackboard, click System Admin, click Building Blocks and then ‘Install Building Block’. Browse to the zip file and then follow on screen instructions.

Once your building block is listed, make it ‘available’. Then go to System Admin tab, Modules and locate the Hello World module. Hopefully you’ll get the words simpliest building block appear and say ‘Hello world’!

In conclusion, nothing terribly exciting at this stage, but that wasn’t what we set out to do. We’ve now got a .NET building block deployed into Blackboard.

I’m not certain of the best way forward from this point, so unless somebody has some specific queries, I think I’ll just look into interacting with the Blackboard APIs, probably just to present information about the current user. I’m open to suggestions though, and more than happy to help resolve queries…

3 thoughts on “Blackboard .NET Building Blocks – How To

  1. Pingback: Blackboard Building Blocks – Getting Current User « Gregor Bowie's Blog

  2. minor thing for copy paste of the example xml file.
    double quotes are #8211, V-studio and bb hate that despite the iso 8859-1 tag I guess.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s