Intro to Scorm Extensions
Scorm Toolkit

For the last several months I’ve been working on a product that makes the lives of people that use Scorm, an e-learning communication standard, easier. In that time I’ve learned a good deal about some of its pitfalls, shortcomings and how best to navigate them. This post is the first in a series of lessons learned while working with Scorm.


In this post, I will discuss the Scorm Extensions library I built from the existing .net Rustici Software library to help with things I’ve run into.


Async Versions of calls

The majority of the library consists of extension methods for handling Course and Registration calls asynchronously.This is an example of how to fetch all the courses of a given application asynchronously.


Data Import/Export

Another section of the extensions is dedicated to data imports and exports. One of the requirements was to be able to cleanly display the data and to export it to excel via csv. For that, I wrote ToCSV and ToFormattedString. ToCSV can be used on a collection or a single item while ToFormattedString is made to be used with a single item.

ToCSV and ToFormattedString Example


In the Converter class we have a few methods for converting XML to relevant objects. I’ve added the class RegistrationResult as an interim object for holding Registration Data without the additional read-only behavior as it caused some complications with the data binding. Also, it makes faking data for unit testing easier to deal with.


Where we go from here
Scorm Extensions At GitHub

As of now, the classes are mainly for use with Course and Registration data but, going forward handling users, invites and other data could be added.  I am considering making something similar for TinCan data as well.The Source code is at and the project is also on Nuget so feel free and check it out.
Scorm Extensions at Nuget


Scorm Extensions
Install via Nuget

PM> Install-Package ScormExtensions