orchardcore-module-creator
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseOrchardCore Module Creator
OrchardCore 模块创建指南
This skill guides you through creating new OrchardCore modules following project conventions.
本技能将引导你按照项目约定创建新的OrchardCore模块。
Prerequisites
前提条件
- OrchardCore repository at
D:\orchardcore - .NET SDK 10.0+ installed
- OrchardCore 代码仓库位于
D:\orchardcore - 已安装 .NET SDK 10.0+
Module Creation Workflow
模块创建流程
Step 1: Determine Module Type
步骤1:确定模块类型
What kind of module are you creating?
| Type | Description | Key Components |
|---|---|---|
| Content Part | Adds data/behavior to content items | Part, Driver, Views |
| Content Field | Custom field type | Field, Driver, Views |
| Settings | Site-wide configuration | SiteSettings, Driver |
| Admin Feature | Admin pages/tools | Controller, Views, Menu |
| API | REST endpoints | ApiController |
| Background Task | Scheduled jobs | IBackgroundTask |
你要创建哪种类型的模块?
| 类型 | 说明 | 核心组件 |
|---|---|---|
| 内容部件 | 为内容项添加数据/行为 | Part, Driver, Views |
| 内容字段 | 自定义字段类型 | Field, Driver, Views |
| 设置 | 站点级配置 | SiteSettings, Driver |
| 管理功能 | 管理页面/工具 | Controller, Views, Menu |
| API | REST 端点 | ApiController |
| 后台任务 | 定时任务 | IBackgroundTask |
Step 2: Create Module Directory
步骤2:创建模块目录
bash
undefinedbash
undefinedCreate module folder
Create module folder
mkdir src/OrchardCore.Modules/OrchardCore.YourModule
cd src/OrchardCore.Modules/OrchardCore.YourModule
undefinedmkdir src/OrchardCore.Modules/OrchardCore.YourModule
cd src/OrchardCore.Modules/OrchardCore.YourModule
undefinedStep 3: Create Required Files
步骤3:创建必需文件
Every module needs these three files:
- Manifest.cs - Module metadata
- Startup.cs - Service registration
- OrchardCore.YourModule.csproj - Project file
See for templates.
references/module-structure.md每个模块都需要以下三个文件:
- Manifest.cs - 模块元数据
- Startup.cs - 服务注册
- OrchardCore.YourModule.csproj - 项目文件
可参考 获取模板。
references/module-structure.mdStep 4: Add Components Based on Type
步骤4:根据模块类型添加组件
For Content Part modules:
Models/YourPart.cs
ViewModels/YourPartViewModel.cs
Drivers/YourPartDisplayDriver.cs
Views/YourPart.cshtml
Views/YourPart_Edit.cshtmlFor Admin modules:
Controllers/AdminController.cs
Views/Admin/Index.cshtml
AdminMenu.cs
PermissionProvider.csFor Data-storing modules:
Migrations.cs
Indexes/YourIndex.csSee for code templates.
references/patterns.md对于内容部件模块:
Models/YourPart.cs
ViewModels/YourPartViewModel.cs
Drivers/YourPartDisplayDriver.cs
Views/YourPart.cshtml
Views/YourPart_Edit.cshtml对于管理模块:
Controllers/AdminController.cs
Views/Admin/Index.cshtml
AdminMenu.cs
PermissionProvider.cs对于数据存储模块:
Migrations.cs
Indexes/YourIndex.cs可参考 获取代码模板。
references/patterns.mdStep 5: Register in Startup.cs
步骤5:在Startup.cs中注册
csharp
public override void ConfigureServices(IServiceCollection services)
{
// Content part
services.AddContentPart<YourPart>()
.UseDisplayDriver<YourPartDisplayDriver>();
// Services
services.AddScoped<IYourService, YourService>();
// Migrations (if storing data)
services.AddDataMigration<Migrations>();
// Permissions (if securing features)
services.AddPermissionProvider<PermissionProvider>();
// Navigation (if adding admin menu)
services.AddNavigationProvider<AdminMenu>();
}csharp
public override void ConfigureServices(IServiceCollection services)
{
// Content part
services.AddContentPart<YourPart>()
.UseDisplayDriver<YourPartDisplayDriver>();
// Services
services.AddScoped<IYourService, YourService>();
// Migrations (if storing data)
services.AddDataMigration<Migrations>();
// Permissions (if securing features)
services.AddPermissionProvider<PermissionProvider>();
// Navigation (if adding admin menu)
services.AddNavigationProvider<AdminMenu>();
}Step 6: Build and Test
步骤6:构建并测试
bash
undefinedbash
undefinedBuild the module
Build the module
cd D:\orchardcore
dotnet build src/OrchardCore.Modules/OrchardCore.YourModule
cd D:\orchardcore
dotnet build src/OrchardCore.Modules/OrchardCore.YourModule
Run the application
Run the application
cd src/OrchardCore.Cms.Web
dotnet run -f net10.0
cd src/OrchardCore.Cms.Web
dotnet run -f net10.0
Enable the feature in Admin → Features
Enable the feature in Admin → Features
undefinedundefinedQuick Reference
快速参考
Naming Conventions
命名约定
| Item | Convention | Example |
|---|---|---|
| Module folder | | |
| Namespace | | |
| Feature ID | | |
| Content Part | | |
| Driver | | |
| View | | |
| Edit View | | |
| 项 | 约定 | 示例 |
|---|---|---|
| 模块文件夹 | | |
| 命名空间 | | |
| 功能ID | | |
| 内容部件 | | |
| 驱动程序 | | |
| 视图 | | |
| 编辑视图 | | |
Common Dependencies
常见依赖项
Add to as needed:
.csprojxml
<!-- Core module support -->
<ProjectReference Include="..\..\OrchardCore\OrchardCore.Module.Targets\OrchardCore.Module.Targets.csproj" />
<!-- Content management -->
<ProjectReference Include="..\..\OrchardCore\OrchardCore.ContentManagement\OrchardCore.ContentManagement.csproj" />
<!-- Admin UI -->
<ProjectReference Include="..\..\OrchardCore\OrchardCore.Admin\OrchardCore.Admin.csproj" />根据需要添加到 中:
.csprojxml
<!-- Core module support -->
<ProjectReference Include="..\..\OrchardCore\OrchardCore.Module.Targets\OrchardCore.Module.Targets.csproj" />
<!-- Content management -->
<ProjectReference Include="..\..\OrchardCore\OrchardCore.ContentManagement\OrchardCore.ContentManagement.csproj" />
<!-- Admin UI -->
<ProjectReference Include="..\..\OrchardCore\OrchardCore.Admin\OrchardCore.Admin.csproj" />Feature Categories
功能分类
Use in :
Manifest.csContent ManagementContentNavigationSecurityInfrastructureThemingDeveloper
在 中使用:
Manifest.csContent ManagementContentNavigationSecurityInfrastructureThemingDeveloper
References
参考资料
- - Directory layout and file templates
references/module-structure.md - - Code patterns (parts, drivers, handlers, etc.)
references/patterns.md - - Complete module examples
references/examples.md - (repo root) - Coding conventions and build commands
AGENTS.md
- - 目录结构和文件模板
references/module-structure.md - - 代码模式(部件、驱动程序、处理程序等)
references/patterns.md - - 完整模块示例
references/examples.md - (仓库根目录)- 编码规范和构建命令
AGENTS.md