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.
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
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 https://github.com/musicm122/ScormExtensions and the project is also on Nuget so feel free and check it out.
Install via Nuget
PM> Install-Package ScormExtensions