CtrlK
BlogDocsLog inGet started
Tessl Logo

orchardcore-module-creator

Creates new OrchardCore modules with proper structure, manifest, startup, and patterns. Use when the user needs to create a new module, add content parts, fields, drivers, handlers, or admin functionality.

70

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

OrchardCore Module Creator

This skill guides you through creating new OrchardCore modules following project conventions.

Prerequisites

  • OrchardCore repository at D:\orchardcore
  • .NET SDK 10.0+ installed

Module Creation Workflow

Step 1: Determine Module Type

What kind of module are you creating?

TypeDescriptionKey Components
Content PartAdds data/behavior to content itemsPart, Driver, Views
Content FieldCustom field typeField, Driver, Views
SettingsSite-wide configurationSiteSettings, Driver
Admin FeatureAdmin pages/toolsController, Views, Menu
APIREST endpointsApiController
Background TaskScheduled jobsIBackgroundTask

Step 2: Create Module Directory

# Create module folder
mkdir src/OrchardCore.Modules/OrchardCore.YourModule
cd src/OrchardCore.Modules/OrchardCore.YourModule

Step 3: Create Required Files

Every module needs these three files:

  1. Manifest.cs - Module metadata
  2. Startup.cs - Service registration
  3. OrchardCore.YourModule.csproj - Project file

See references/module-structure.md for templates.

Step 4: Add Components Based on Type

For Content Part modules:

Models/YourPart.cs
ViewModels/YourPartViewModel.cs
Drivers/YourPartDisplayDriver.cs
Views/YourPart.cshtml
Views/YourPart_Edit.cshtml

For Admin modules:

Controllers/AdminController.cs
Views/Admin/Index.cshtml
AdminMenu.cs
PermissionProvider.cs

For Data-storing modules:

Migrations.cs
Indexes/YourIndex.cs

See references/patterns.md for code templates.

Step 5: Register in Startup.cs

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

# Build the module
cd D:\orchardcore
dotnet build src/OrchardCore.Modules/OrchardCore.YourModule

# Run the application
cd src/OrchardCore.Cms.Web
dotnet run -f net10.0

# Enable the feature in Admin → Features

Quick Reference

Naming Conventions

ItemConventionExample
Module folderOrchardCore.ModuleNameOrchardCore.Rating
NamespaceOrchardCore.ModuleNameOrchardCore.Rating
Feature IDOrchardCore.ModuleNameOrchardCore.Rating
Content PartNamePartRatingPart
DriverNamePartDisplayDriverRatingPartDisplayDriver
ViewPartName.cshtmlRatingPart.cshtml
Edit ViewPartName_Edit.cshtmlRatingPart_Edit.cshtml

Common Dependencies

Add to .csproj as needed:

<!-- 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.cs:

  • Content Management
  • Content
  • Navigation
  • Security
  • Infrastructure
  • Theming
  • Developer

References

  • references/module-structure.md - Directory layout and file templates
  • references/patterns.md - Code patterns (parts, drivers, handlers, etc.)
  • references/examples.md - Complete module examples
  • AGENTS.md (repo root) - Coding conventions and build commands
Repository
OrchardCMS/OrchardCore
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.