Technical overview

Updated 12 days ago / 7 min read

Learning Center is a .net web application based on C# with Microsoft SQL Server as its database engine.

The Learning Center is based on a standard asp.net 4.8 web application with Microsoft SQL server database as its backend datastore.

Depending on the client size and license agreement, each client has its own SQL database with its data securely separated from other clients.

Authentication

Each Learning Center installation supports multiple public sites and authentication providers, so, depending on your needs, one installation can support multiple authentication mechanisms like Native Learning Center Username/Password authentication, ADFS, SAML or Azure AD/O365.

REST API

Each Learning Center can enable/disable REST API support. The API enables clients to work with data via a standard REST API using either basic or Learning Center’s native authentication ticket system.

Storage and database

Depending on the installation and clients' needs, Learning Center supports Azure SQL. Any files uploaded or generated by the system are stored under the azure blob storage or in the database.

Each installation is a standalone single-tenant app with a single-tenant database design, which means that each customer installation has its own separate database and installation and nothing is shared between installations.

 

Database encryption

To protect against the threat of malicious activity, Learning Center uses service-managed transparent data encryption. This means that real-time encryption and decryption of the database, associated backups, and transaction log files at rest are performed without requiring changes to the application.

Transparent data encryption encrypts the storage of the entire database by using a database encryption key. This key is protected by the transparent data encryption protector as a service-managed certificate (service-managed transparent data encryption). If required, this can be set up as an asymmetric key stored in Azure Key Vault (Bring Your Own Key). 

Caching

Depending on the server environment of the client, Learning Center supports in-process and out-of-process caching via services like Redis.

Learning Center Development Process and Environment (DevOps)

Learning Center follows an Agile and Scrum-based development approach, utilizing Azure DevOps Services as its primary platform for software development and project management.

Azure DevOps is a cloud-based suite of development tools from Microsoft that supports the entire software development lifecycle, from planning and coding to testing, deployment, and monitoring. It includes features for continuous integration and continuous delivery (CI/CD), version control, project tracking, and automated testing, all of which help streamline the development process.

The following diagram describes the phases of the development cycle.

The Learning Center development team leverages Visual Studio Online (VSO) as the main development framework, allowing for efficient collaboration, automated builds, and seamless release management. Nightly builds are deployed to the release candidate server (currently hosted on Azure at https://rc.LearningCenter.net), where partners and clients can request access to preview the latest updates.

For release management, Learning Center utilizes Azure DevOps release management tools and release agents for all SaaS and PaaS installations. This ensures a structured deployment process, with releases scheduled within agreed service windows, typically on a weekly or monthly basis, depending on client requirements.

By automating key development and deployment processes, Azure DevOps enhances collaboration, improves efficiency, and reduces the risk of errors, ensuring that Learning Center remains a reliable and scalable platform for its users.

Monitoring and Operations

Learning Center’s operations team uses Azure AppInsights to monitor availability and performance on each hosted instance and has alerts set up for changes in performance and availability.

 
Learning Center Platform as a Service (PaaS) azure installation

 

For Azure installations, Learning Center requires:

  • Azure App Service (Web) instance
  • SQL Database
  • Storage account
  • Optional: CDN/Queue

Currently, Learning Center has hosting environments on the Azure Southeast Asia, Norway East and West Europe data centers. But due to the integrated VSO release agents and Azures management portal, any configuration and location is supported.

Learning Center also supports deploying the application into customers own azure tenants as long as the need services and permissions needed is available.