NeuCharFramework (NCF)
  • NCF - NeuCharFramework
  • Projects

    • Preparation
    • NcfPackageSources Source Guide
    • DynamicWebApiEngine
    • Deployment
    • MCP (Model Context Protocol) Module
    • Senparc.AI
  • AIKernel Local Fine-Tuning
  • Help

    • Online Resources
    • Q&A Community
    • QQ Group (147054579)
    • Senparc WeChat SDK
  • Gitee
  • GitHub
  • English
  • 简体中文
GitHub
  • NCF - NeuCharFramework
  • Projects

    • Preparation
    • NcfPackageSources Source Guide
    • DynamicWebApiEngine
    • Deployment
    • MCP (Model Context Protocol) Module
    • Senparc.AI
  • AIKernel Local Fine-Tuning
  • Help

    • Online Resources
    • Q&A Community
    • QQ Group (147054579)
    • Senparc WeChat SDK
  • Gitee
  • GitHub
  • English
  • 简体中文
GitHub
  • Source Development

    • NcfPackageSources Beginner Quickstart (60 Minutes)
    • NcfPackageSources Source Guide
    • Project Relationships, Synchronization, and Release
    • Version Upgrade Notes
    • NcfPackageSources_Include_NcfSimulatedSite.sln Project Map
  • XNCF Source Analysis

    • NCF Capability Source Deep Dive (Practical)
    • XNCF Extension Library Guide (Senparc.Xncf.xxx)
    • XNCF Module Documentation Map
    • Senparc.Web and Admin
    • AIKernel Local Fine-Tuning
    • XncfBuilder Isolated Development: Source Analysis
    • NeuChar Workflow: Operations and {{= ... }} Expressions
    • Senparc.Xncf.Sandbox Environment Setup
  • NCF Library Source Analysis

    • Senparc.Ncf.Core
    • Senparc.Ncf.Database (Database Foundation)
    • Senparc.Ncf.Repository
    • Senparc.Ncf.Service
    • Senparc.Ncf.SMS
    • Senparc.Ncf.Mvc.UI
    • Senparc.Ncf.Log
    • Senparc.Ncf.Utility
    • Senparc.Ncf.XncfBase
    • Senparc.Ncf.AreaBase
    • Senparc.Ncf.DatabasePlant
  • Core Interface Source Analysis

    • IXncfRegister Interface (Current)

NcfPackageSources_Include_NcfSimulatedSite.sln Project Map

This page is checked against the current project list in NcfPackageSources/src/NcfPackageSources_Include_NcfSimulatedSite.sln. It answers three questions: what a project does, where a beginner starts, and where a contributor should extend it. Every XNCF project is listed. Projects ending in .Tests validate behavior; they are not runtime entry points.

1. Build the Big Picture First

This solution is not a single website. It has four layers:

  1. Basic: NCF runtime foundations, data access, and database providers.
  2. Extensions / System: installable, enableable, and permission-aware XNCF capabilities.
  3. NcfSimulatedSite: the runnable Senparc.Web host that composes the libraries and modules, with Admin, installer, and sample modules.
  4. Tests / DevelopmentTools: automated tests and development helpers.

Recommended learning path:

  1. Run Beginner Quickstart (60 Minutes).
  2. Read Senparc.Web, Admin, and the installer chain.
  3. Continue with XNCF Module Overview.
  4. Create your own module using XNCF Development Contracts.

2. Basic Libraries and Database Projects

ProjectBeginner meaningExtension boundary
Senparc.Ncf.CoreCore types, configuration, and shared runtime capabilityStart from core service registration and shared abstractions
Senparc.Ncf.RepositoryGeneric repository and data-access abstractionsOrganize business code with entities, repositories, and Services instead of SQL in pages
Senparc.Ncf.ServiceService-layer and transaction coordination foundationPut business rules in the Service/Application layer
Senparc.Ncf.Mvc.UIMVC/Razor page and UI helpersReuse it when building Admin Areas or XNCF pages
Senparc.Ncf.LogNCF logging abstractions and implementationUse existing logging interfaces for diagnosable events
Senparc.Ncf.UtilityCommon file, string, and conversion helpersReuse utilities instead of duplicating them in modules
Senparc.Ncf.SMSSMS capability abstractionConnect providers through configuration and provider implementations
Senparc.Ncf.Shared.AbstractionsLightweight contracts shared by independently deployed componentsKeep only cross-project interfaces and events here
Senparc.Ncf.AreaBaseArea and modular-page infrastructureUse it for custom Admin Areas, routes, and pages
Senparc.Ncf.XncfBaseXNCF registration, lifecycle, and module contractsRequired reading for custom XNCF development
Senparc.Ncf.DatabaseCommon database abstractions and configurationConnect databases through providers, migrations, and DatabasePlant
Senparc.Ncf.Database.SqliteSQLite providerDefault choice for local development, demos, and lightweight deployments
Senparc.Ncf.Database.SqlServerSQL Server providerConfigure it for SQL Server production deployments
Senparc.Ncf.Database.MySqlMySQL providerConfigure it for MySQL production deployments
Senparc.Ncf.Database.PostgreSQLPostgreSQL providerConfigure it for PostgreSQL production deployments
Senparc.Ncf.Database.OracleOracle providerConfigure it when Oracle is required
Senparc.Ncf.Database.DmDameng providerUse for Dameng database deployments
Senparc.Ncf.Database.InMemoryIn-memory providerUse for tests and temporary demos, not persistent production data
Senparc.Ncf.Database.MySql.BackcupMySQL backup helper projectBackcup is the existing source spelling; do not rename it when referencing the project
Senparc.Ncf.DatabasePlantDatabase migration, design, and maintenance foundationGenerate and validate migrations after changing entities
Senparc.Ncf.FileExtensionFile extension capability, currently under UnpublishedConfirm stability before using it as a public dependency
Senparc.Ncf.ImageUtilityImage processing capability, currently under UnpublishedDo not treat it as a stable public API by default

3. XNCF Module Overview

XNCF is NCF's primary extension model. A Senparc.Xncf.* module normally owns its registration, menu, permissions, database, Functions, and lifecycle. After installation it must also be enabled; installed does not mean enabled. High-risk modules must run with least privilege.

3.1 System Foundation and Admin Capabilities

XNCF projectFunctionExtension guidance
[5980]Senparc.Xncf.SystemCoreCore system data and runtime foundationUnderstand registration order before extending system modules
[5970]Senparc.Xncf.SystemManagerSystem configuration and management entry pointsReuse its permission and configuration patterns for system settings
[5960]Senparc.Xncf.SystemPermissionRoles, permissions, and authorizationAdd permissions for every new page, button, and Function
[5940]Senparc.Xncf.MenuMenu, page, and button managementDeclare module menus through Register/Area instead of hard-coding them in the host
[5950]Senparc.Xncf.XncfModuleManagerDiscover, install, update, enable, disable, and uninstall modulesCheck module state and permissions first when a menu is missing
[5955]Senparc.Xncf.AreasBaseWeb foundation for XNCF AreasStart custom Admin pages from AreaBase and existing Area patterns
[5990]Senparc.Xncf.TenantMulti-tenant implementationTenant isolation involves data, permissions, and menus, not only a TenantId
[5990]Senparc.Xncf.Tenant.InterfaceMulti-tenant public interfaces and contractsReference this contract when implementation details are unnecessary

3.2 AI, Agents, RAG, and Workflow

XNCF projectFunctionExtension guidance
Senparc.Xncf.AIKernelAI model, chat, and embedding-model configuration foundationConfigure models before Prompt, Agent, or KnowledgeBase calls
Senparc.Xncf.AIKernel.AbstractionsAI Kernel public interfacesReference the abstraction for cross-module integration
Senparc.Xncf.PromptRangePrompt/PromptCode management, versioning, and invocationStore prompts as maintainable assets instead of code strings
Senparc.Xncf.PromptRange.AbstractionsPromptRange public contractsAgents and other modules should reference only required interfaces
Senparc.Xncf.AgentsManagerAgents, sessions, agent groups, tasks, and human-in-the-loop flowsConfigure AIKernel and PromptRange before designing Agent tools
Senparc.Xncf.AgentsManager.AbstractionsAgent-management contracts and eventsCommunicate across modules through contracts, not page implementations
Senparc.Xncf.AIAgentsHubAI Agent aggregation and management entry pointUse it for discovery and orchestration; it does not replace concrete Agents
Senparc.Xncf.KnowledgeBaseDocument import, chunking, embeddings, and recall testingConfigure an embedding model first; retrieval is not model training
Senparc.Xncf.NeuCharWorkflowVisual server-side workflows, triggers, nodes, and execution recordsOrchestrate controlled Functions/Agents with explicit timeout, permission, and retry rules
Senparc.Xncf.NeuCharWorkflow.AbstractionsWorkflow interfaces and model contractsReference it when calling workflows without depending on UI

3.3 MCP, Development, and Operations

XNCF projectFunctionExtension guidance
Senparc.Xncf.MCPMCP server and module-tool routing integrationEnable only when external tools are needed and protect mcp-* routes
Senparc.Xncf.MCP.AbstractionsMCP public interfaces and contractsUse the abstraction for MCP client/server integration
Senparc.Xncf.XncfBuilderXNCF generation, module inventory, and development helpersPrefer the template/generator flow instead of copying hidden configuration
Senparc.Xncf.XncfBuilder.AbstractionsBuilder public contractsReference it when extending generators
Senparc.Xncf.XncfBuilder.DynamicContentGeneratorGenerates module content from templates and configurationValidate generated output and compilation after changing rules
Senparc.Xncf.XncfBuilder.TemplateOfficial XNCF project templateBest starting point for a beginner creating a custom module
Senparc.Xncf.SandboxIsolated, disposable experiment environmentsUse isolation for untrusted input; prepare Docker/Wasm first
Senparc.Xncf.DatabaseToolkitDatabase backup, export, inspection, and maintenance toolsRestrict Admin permissions and verify restore before production use
Senparc.Xncf.TerminalAdmin-side command executionHigh risk: restrict to trusted administrators and never expose it unprotected
Senparc.Xncf.FileManagerFile-management capabilityRestrict root directories, extensions, and permissions
Senparc.Xncf.FileManager.AbstractionsFile-management public contractReference it when another module needs file services
Senparc.Xncf.FirmwareUpdateNCF package and release-source mirroringVerify source, integrity, and authorization for release packages
Senparc.Xncf.DesktopBridgeHTTP/SSE bridge between the Host and an authorized desktop companionThe pairing token is an application secret; TLS, network controls, and Admin authorization remain required
Senparc.Xncf.SwaggerSwagger/OpenAPI documentation and debugging entryHide sensitive endpoints and models in production
Senparc.Xncf.DaprDapr microservice integrationLearn standalone operation first, then enable sidecars and service calls
Senparc.Xncf.DynamicDataDynamic-data capability, still evolvingConfirm fields, permissions, and migration strategy before business use
Senparc.Xncf.ApplicationControlled external-program execution capabilityDefine host permissions, timeouts, logging, and failure rollback before enabling
Senparc.Xncf.SenMapicSenMapic crawling/collection sample moduleCollect only authorized data and follow target-site rules
Senparc.Xncf.WeixinManagerWeixin account, message, and related managementConfigure AppId/secret, callbacks, and permissions before integration

4. Senparc.Web, Admin, and Installer Chain

4.1 Runtime Projects

ProjectRole
Senparc.WebSimulated host; composes NCF libraries, XNCF modules, Admin, and configuration, and is the solution's runtime entry
Senparc.Areas.AdminAdmin Area; provides post-login management pages, interactions, Chat, and metrics
Senparc.Xncf.InstallerFirst-run installer; creates initial configuration, database, and default modules
Senparc.Xncf.AccountsAdministrator/account features used by the login flow
Senparc.Aspire.ServiceDefaultsAspire health checks, default service configuration, and observability foundation
Senparc.Web.DatabasePlantDatabasePlant web development/verification host
Senparc.IntegrationSampleIntegration sample for understanding composition and calls
Template_OrgName.Xncf.Template_XncfNameGenerated sample XNCF; useful for comparing a complete module structure

Start the host:

dotnet run --project tools/NcfSimulatedSite/Senparc.Web/Senparc.Web.csproj --launch-profile http

Complete the installer on first launch, then sign in at /Admin/Login. The Admin Extension Modules/Module Management page is provided by XncfModuleManager. Installing a module is followed by enabling it before its menus and Functions become available. Admin roles, menus, and button permissions are coordinated by SystemPermission, Menu, and other system XNCFs.

4.2 Boundaries for Custom Development

  • Do not put business code directly into Senparc.Web; create an independent XNCF.
  • Admin provides management UX and system entry points; business data, migrations, and Functions belong to their owning module.
  • When changing host startup, dependency injection, or global middleware, also verify installation, Admin login, and module scanning.
  • After changing an Admin menu, check role authorization; a visible menu does not mean every role can use it.

5. Test Projects and How to Use Them

The following projects provide regression coverage and do not expose standalone website features:

  • Basic: Senparc.Ncf.Core.Tests, Senparc.Ncf.XncfBase.Tests, Senparc.Ncf.DatabasePlant.Tests, Senparc.Ncf.DatabaseTests, Senparc.Ncf.ServiceTests, Senparc.Ncf.UnitTestExtension.
  • XNCF: Senparc.Xncf.XncfBuilder.Tests, Senparc.Xncf.PromptRange.Tests, Senparc.Xncf.AIAgentsHub.Tests, Senparc.Xncf.AgentsManagerTests, Senparc.Xncf.DynamicDataTests, Senparc.Xncf.SenMapicTests, Senparc.Xncf.WeixinManager.Tests.
  • Integration and host: Senparc.IntegrationSample.AreaTests, Senparc.Areas.Admin.Tests.

After changing a module, run its targeted tests first, then validate installation, login, module enablement, and the key page in Senparc.Web:

dotnet test src/NcfPackageSources_Include_NcfSimulatedSite.sln --no-restore

6. Quick Selection Table

GoalStart here
Just run the systemBeginner Quickstart → Senparc.Web
Add an Admin featureXncfBuilder.Template → XncfBase → Area/Menu/Permission
Add AI chatAIKernel → PromptRange → AgentsManager
Build knowledge-base Q&AAIKernel → KnowledgeBase → Agent/Workflow
Expose an external toolMCP → [FunctionRender] → permission and route protection
Build multi-step automationAgentsManager → NeuCharWorkflow
Change database supportNcf.Database/provider → DatabasePlant → module migration
Debug AdminSenparc.Web → Senparc.Areas.Admin → System XNCFs
Edit this page on GitHub
Last Updated:
Contributors: JeffreySu
Prev
Version Upgrade Notes