Skip to main content

Tested Koan application bundle: the Koan foundation plus controller-based ASP.NET Core integration.

Total Downloads
5.2K
5,178
Published
Sep 13, 2026
1mo ago

Get Started

dotnet add package Sylin.Koan.App --version 1.0.71
ProductVersions
.NET
net10.0

README

Sylin.Koan.App

The one-reference Koan web application: bootstrap the framework, define an Entity, and expose it through an API. The package composes Koan's foundation and controller-based ASP.NET Core projection at versions proved together.

Reference

dotnet add package Sylin.Koan.App

The generated product surface owns support maturity and publication truth for this package.

Meaningful result

// Program.cs
using Koan.Core;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddKoan();
var app = builder.Build();
await app.RunAsync();
// Todo.cs
using Koan.Data.Abstractions;
using Koan.Data.Core.Model;

public sealed class Todo : Entity<Todo>
{
    public string Title { get; set; } = "";
    public bool Done { get; set; }
}
// TodosController.cs
using Koan.Web.Controllers;
using Microsoft.AspNetCore.Mvc;

[Route("api/todos")]
public sealed class TodosController : EntityController<Todo>;

Run the app, use the URL ASP.NET Core prints, then create and read a Todo:

Invoke-RestMethod -Method Post -Uri http://localhost:5000/api/todos -ContentType application/json -Body '{"title":"buy milk"}'
Invoke-RestMethod http://localhost:5000/api/todos

There is no repository, database registration, schema script, endpoint mapping, or framework-specific Program type. AddKoan() composes referenced modules; Entity<Todo> supplies the data grammar; EntityController<Todo> supplies the REST projection.

Defaults and composition

The bundle includes Sylin.Koan, Sylin.Koan.Web, local Events and Transport, and the bounded JSON data provider. JSON writes local files under ./data, which makes the first result persistent without an external service. Startup output and /.well-known/Koan/facts report the modules and provider election.

For durable embedded storage, add one reference and change no application code or configuration:

dotnet add package Sylin.Koan.Data.Connector.Sqlite

SQLite's provider priority replaces the JSON floor and its local default writes .koan/data/Koan.sqlite. Explicit source or Entity routing still wins when the application states a narrower intent.

Boundaries and corrections

  • The JSON floor is for bounded local files, seeds, smoke scenarios, and deliberately small workloads. It does not promise provider-bounded streaming, multi-process concurrency, distributed durability, or production backup.
  • EntityController<T> exposes generic data operations; business actions, authorization, tenancy, validation, and public API design remain application decisions.
  • Adding an infrastructure package selects capability but does not invent credentials or remote endpoints. When a provider cannot derive a safe local target, startup facts and health name the missing or rejected intent.
  • This package contains no runtime assembly of its own and intentionally emits no symbol package.

Use Sylin.Koan.Templates for the same path as an ordinary dotnet new project, or read the FirstUse sample for the full experience with SQLite, MCP, and shared operator/agent facts.

Downloads by Version

Similar & Alternative Packages

Hand-picked matching NuGet libraries based on tags & ecosystem

Depended On By

Find packages that declare this package as a dependency. NuGet does not provide a reverse-dependency endpoint, so candidates are checked on demand.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

Compatibility metadata lists 1 target framework; confirm the exact target used by your application.The published metadata declares 20 direct dependency entries across framework groups. Inspect the resolved dependency graph for your target framework.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.