XBlock/XModule History

  • XModules were created to encapsulate course content.
  • XModules are the LMS view of the course content.
    • They contain student state.
  • XModuleDescriptors are the Studio version of the course content.
    • No student state.
  • The runtime's get_block() returns one or the other type.
  • XModule and XModuleDescriptor have the same fields but different permissions.
  • XModules are the predecessor of the XBlock architecture.
  • "Pure" XBlocks don't inherit from XModule or XModuleDescriptor.
    • However, XModule and XModuleDescriptor both inherit from XBlock.
  • The runtimes have "shims"/hacks to make all the calls work with all three types.