CanopyX.AspNetCore
0.3.6
dotnet add package CanopyX.AspNetCore --version 0.3.6
NuGet\Install-Package CanopyX.AspNetCore -Version 0.3.6
<PackageReference Include="CanopyX.AspNetCore" Version="0.3.6" />
<PackageVersion Include="CanopyX.AspNetCore" Version="0.3.6" />
<PackageReference Include="CanopyX.AspNetCore" />
paket add CanopyX.AspNetCore --version 0.3.6
#r "nuget: CanopyX.AspNetCore, 0.3.6"
#:package CanopyX.AspNetCore@0.3.6
#addin nuget:?package=CanopyX.AspNetCore&version=0.3.6
#tool nuget:?package=CanopyX.AspNetCore&version=0.3.6
CanopyX.AspNetCore
Minimal-API endpoints for the CanopyX remote grid protocol, built on CanopyX.Data: a data grid in the browser that pages, filters, totals, exports and saves edits against your database.

var map = new CanopyColumnMap<Host>(view)
.Key(x => x.Id)
.Column("name", x => x.Name)
.Column("owner", x => x.Owner.Name);
app.MapCanopyRemote("/api/hosts", http => http.RequestServices.GetRequiredService<FleetDb>().Hosts, map, options => {
options.AuthorizationPolicy = "Inventory.Read";
});
The group serves POST query, GET query, POST facet, POST summary, POST export/{format} and GET view. With
options.Writer it also serves POST commit, which requires options.WriteAuthorizationPolicy on top of the read policy.
With a CanopyRecordMap<T> (or options.Records) it serves POST record, the record panel's details on demand, looked up
through the same query callback.
CanopyRemoteScript.Element(map.Schema, "/api/hosts") writes the browser script that connects the grid to them.
Under a nonce-based Content Security Policy, use CanopyRemoteScript.ElementWithNonce(map.Schema, "/api/hosts", nonce)
with the same response nonce as the page.
The guide Server-side data for .NET walks through a complete setup, and the live demos show what readers get.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- CanopyX.Data (>= 0.3.6)
-
net8.0
- CanopyX.Data (>= 0.3.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Embedded grids use the host card surface for pinned cells and header tint, with the raised surface as a fallback.