Skip to content
Mike Christensen edited this page Aug 28, 2026 · 4 revisions

KitchenPC developer guide

KitchenPC is a .NET recipe engine for applications that need structured recipes, normalized ingredients, natural-language ingredient parsing, unit conversion, shopping-list aggregation, menus, queues, recipe search, or meal modeling.

The engine contains domain and fluent APIs; it does not prescribe a user interface. Use the database-free XML context for experiments, connect the PostgreSQL adapter for a persistent application, or implement the persistence and search interfaces for another architecture.

Start here

  1. Follow Getting started to run KitchenPC from the sample XML snapshot.
  2. Read Contexts and configuration before choosing StaticContext or DBContext.
  3. Use PostgreSQL and database provisioning to create a persistent sample database.
  4. Explore the complete, runnable KitchenPC Samples.

Feature guides

Goal Guide
Search, browse, read, rate, or create recipes Recipes and search
Parse a dozen eggs and normalize quantities Ingredient parsing and units
Combine recipe ingredients and typed items Shopping lists and aggregation
Save recipe collections for a user Menus and recipe queues
Find efficient recipe combinations for a pantry Recipe modeler
Host KitchenPC in ASP.NET Core ASP.NET Core integration
Reduce database startup and memory DBContext capability profiles
Diagnose engine or NLP behavior Logging and diagnostics
Replace storage, search, identity, or NLP data Architecture and extension points

Packages

  • KitchenPC.Core contains contexts, domain models, NLP, aggregation, categorization, the recipe modeler, and fluent APIs.
  • KitchenPC.DB adds the NHibernate persistence adapter and built-in relational recipe search.
  • KitchenPC.Core.AspNetCore adds ASP.NET Core dependency-injection and request-identity integration without imposing a web-framework dependency on other applications.
  • All three packages target .NET 8 and .NET 10. The maintained samples target .NET 10.
  • The project uses the MIT License.

This Wiki documents the current public API. The older KitchenPC blog articles are useful historical context, but their initialization, package, and framework details predate current releases.

Reference

Clone this wiki locally