Small Desk Tools: a starter kit for connecting a course tool to a learning platform, on .NET 10

A working Learning Tools Interoperability® (LTI®) 1.3 tool for ASP.NET Core, with step-by-step registration guides for Moodle, Canvas, Blackboard and Brightspace. This page describes the kit and counts interest in it. The code is not published here.

Covers: LTI 1.3 login, launch, deep linking, Names and Roles, and grades, on .NET 10 and ASP.NET Core, with registration guides for Moodle, Canvas, Blackboard Learn and D2L Brightspace. Doesn't cover: LTI 1.1, other runtimes, hosting, or a live run on any platform. A description of the kit, not legal advice; it doesn't settle whether a given platform will accept your tool.

What the kit covers

On .NET 10. Built on ASP.NET Core and the .NET base class library only; no third-party runtime packages. The build turns NuGet audit warnings into errors, so a vulnerable dependency fails the build.

Endpoints

PathPurpose
/lti/loginOIDC third-party initiated login URL (GET and POST)
/lti/launchRedirect URI; validates the id_token and starts a session
/.well-known/jwks.jsonThe tool's public keys
/lti/deeplinkReturns the signed deep linking response
/app/rosterInstructor roster through Names and Roles
/app/gradeInstructor score passback through grades

What is checked on every launch

The signature (RS256 only, key taken from the platform's JWKS by key id), issuer, audience, expiry and issued-at with one minute of skew, the nonce bound to a single-use server-side state, the LTI version, the deployment id, and the message type. A test covers each rejection path.

Registration guides

A guide for each of Moodle, Canvas, Blackboard Learn and D2L Brightspace: where to register the tool, which URLs to enter, which services to switch on, and which values to copy back into the kit's settings.

A free option

LtiAdvantage is a free, open-source .NET library on NuGet, under the MIT licence. Its own description: '.NET Core library with IMS LTIAdvantage support for Tool Consumer and Tool Provider applications.' Version 4.1.0 was published on 28 October 2026, and NuGet showed 274,296 downloads on 10 November 2026. It gives you building blocks to write your own tool or platform. The kit on this page is a complete tool instead:

What's tested

The kit's 26 tests run against a simulated platform: a fake learning platform inside the test project. No live run against Canvas, Moodle, Blackboard or Brightspace has been recorded. The registration guides are set-up notes, not test results, and nothing on this page is a claim that the kit has been tested on those platforms.

Why now: in the platforms' own words

Blackboard

Source: Blackboard Developer Docs, "Registering a new LTI application". Read 9 November 2026.

Brightspace

Source: D2L newsroom, "D2L Announces Security Enhancements with Retirement of LTI 1.1 Support", dated Toronto Sep 24, 2026. Read 9 November 2026.

Source: D2L Community knowledge base, "LTI 1.1 Deprecation Plan", last updated 8 October 2026. Read 10 November 2026.

D2L's two documents differ on the last step. Its press release (24 September 2026) says launches will be disabled for all customers "by October 2027"; its knowledge base article, updated later (8 October 2026), lists September 2027 as the month launches no longer work. Both agree that new LTI 1.1 integrations stop in February 2027. Check D2L's current article before you plan around either month.

Canvas

Source: Instructure Community, "LTI Migration Project: Key Information for Users", last updated 20 October 2026. Read 10 November 2026.

This says when full deprecation will not happen before. It does not give a date for it to happen.

No dated statement on LTI 1.1 from Moodle was found when these pages were read, so none is quoted.

Licence and price

Both licences let you build and deploy your own tools from the kit. Neither lets you redistribute, resell or publish the kit's source, original or modified, as a source-code product, template, starter kit or repository. The kit is provided as is, without warranty; its tests run against a simulated platform. The licensor is eXtreme Coding Ltd trading as Helmworks.

How we check this rule

Three kinds of claim sit on this page, and each is checked its own way. The platforms' dated statements are quoted character for character from the pages below, with the date we read them. The kit's own claims (the endpoints, what is checked on every launch, the 26 tests) are taken from its test project, which runs on every build against the simulated platform. The free option's figures were read on NuGet and its licence on the library's own repository on 10 November 2026.

If a rule changes or we find an error, we correct the page and record it here.

Corrections to this page
DateWhat changedWhy
10 November 2026Added Instructure's statement that full LTI 1.1 deprecation will not happen before December 2027, and a second D2L source whose end date (September 2027) differs from the press release (October 2027).The page said no dated Instructure statement had been found; one exists. D2L's two documents give different end months, so both are shown.
10 November 2026Named a free open-source alternative (LtiAdvantage) and what the kit addsThe page named no free option.

Would you buy it?

Example of what the paid version would contain. Not on sale yet. Invented data.

What a licence would deliver, as a kit folder (names invented for this example)
PartWhat it holds
Tool projectThe login, launch, JWKS and deep linking endpoints, the launch checks, and a settings file with the platform's issuer, client id, deployment id and JWKS address left blank for yours.
ServicesThe Names and Roles roster call and the grades score passback, each behind an instructor-only route.
Test projectThe 26 tests and the simulated platform they run against, so a change to the kit is checked the same way before you deploy.
GuidesFour registration guides: Moodle, Canvas, Blackboard Learn and D2L Brightspace, each listing the values to copy back into the settings file.
LicenceThe single developer or team licence text, naming the licensor.

The folder names and the order are made up for this example; the kit's own layout is what a licence would deliver.

Not on sale yet. No payment is taken. Pressing only counts your interest and records nothing about you.