# 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. - Author: Hisham Bin Ateya - Repository: Notorious-Ali/OrchardCore - Version: 20260206030723 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/Notorious-Ali/OrchardCore - Web: https://mule.run/skillshub/@@Notorious-Ali/OrchardCore~orchardcore-module-creator:20260206030723 --- --- name: orchardcore-module-creator description: 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. --- # 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?** | 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 | ### Step 2: Create Module Directory ```bash # 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 ```csharp public override void ConfigureServices(IServiceCollection services) { // Content part services.AddContentPart() .UseDisplayDriver(); // Services services.AddScoped(); // Migrations (if storing data) services.AddDataMigration(); // Permissions (if securing features) services.AddPermissionProvider(); // Navigation (if adding admin menu) services.AddNavigationProvider(); } ``` ### Step 6: Build and Test ```bash # 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 | Item | Convention | Example | |------|------------|---------| | Module folder | `OrchardCore.ModuleName` | `OrchardCore.Rating` | | Namespace | `OrchardCore.ModuleName` | `OrchardCore.Rating` | | Feature ID | `OrchardCore.ModuleName` | `OrchardCore.Rating` | | Content Part | `NamePart` | `RatingPart` | | Driver | `NamePartDisplayDriver` | `RatingPartDisplayDriver` | | View | `PartName.cshtml` | `RatingPart.cshtml` | | Edit View | `PartName_Edit.cshtml` | `RatingPart_Edit.cshtml` | ### Common Dependencies Add to `.csproj` as needed: ```xml ``` ### 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