.agents/skills/create-aspnetboilerplate-project/SKILL.md
Create a new ASP.NET Boilerplate project with proper template selection, configuration, and setup. Supports all ASP.NET Boilerplate templates including MVC, Angular, and module-zero templates.
npx skillsauth add afonsoft/VideoChat create-aspnetboilerplate-projectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create a new ASP.NET Boilerplate project using the official templates with proper configuration and initial setup.
Your goal is to create a new ASP.NET Boilerplate project with the appropriate template, configuration, and setup based on the specified requirements.
Standard MVC application with ASP.NET Core integration.
Use Cases:
Download URL: https://aspnetboilerplate.com/Templates
Single Page Application with Angular frontend.
Use Cases:
Download URL: https://aspnetboilerplate.com/Templates
Template with pre-built user, role, and permission management.
Use Cases:
Download URL: https://aspnetboilerplate.com/Templates
| Requirement | MVC Template | Angular Template | Module Zero | |-------------|--------------|------------------|------------| | Traditional Web UI | ✅ | ❌ | ✅ | | SPA Experience | ❌ | ✅ | ❌ | | Authentication Built-in | ❌ | ❌ | ✅ | | Multi-Tenancy | ❌ | ❌ | ✅ | | Rapid Development | ❌ | ❌ | ✅ | | Custom UI Control | ✅ | ✅ | ✅ |
# Extract downloaded template
unzip AspNetBoilerplate-template.zip
cd AspNetBoilerplate-template
# Rename project folders and files
# Update solution name in .sln file
# Update project names in .csproj files
// appsettings.json
{
"ConnectionStrings": {
"Default": "Server=localhost;Database=MyProjectDb;Trusted_Connection=true"
},
"App": {
"WebSiteRootAddress": "http://localhost:62114/"
}
}
// appsettings.Development.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.EntityFrameworkCore": "Information"
}
}
}
# Navigate to EntityFrameworkCore project
cd src/MyProject.EntityFrameworkCore
# Add initial migration
dotnet ef migrations add InitialCreate
# Update database
dotnet ef database update
# Restore all packages
dotnet restore
# Build solution
dotnet build
# Run web application
dotnet run --project src/MyProject.Web
# Or use Visual Studio
# Set MyProject.Web as startup project
# Press F5 to run
MyProject.sln
├── src/
│ ├── MyProject.Application/
│ │ ├── MyProjectApplicationModule.cs
│ │ ├── Services/
│ │ └── MyProject.Application.csproj
│ ├── MyProject.Application.Shared/
│ │ └── MyProject.Application.Shared.csproj
│ ├── MyProject.Core/
│ │ ├── MyProjectCoreModule.cs
│ │ ├── Entities/
│ │ └── MyProject.Core.csproj
│ ├── MyProject.EntityFrameworkCore/
│ │ ├── MyProject.EntityFrameworkCoreModule.cs
│ │ ├── Migrations/
│ │ └── MyProject.EntityFrameworkCore.csproj
│ ├── MyProject.Web/
│ │ ├── Startup.cs
│ │ ├── Program.cs
│ │ ├── Controllers/
│ │ ├── Views/
│ │ ├── wwwroot/
│ │ └── MyProject.Web.csproj
│ └── MyProject.Web.Shared/
└── test/
├── MyProject.Application.Tests/
├── MyProject.Core.Tests/
├── MyProject.EntityFrameworkCore.Tests/
└── MyProject.Web.Tests/
// src/MyProject.Web/Startup.cs
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddApplication<MyProjectWebModule>();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
app.InitializeApplication();
}
}
// src/MyProject.Web/Program.cs
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
internal static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
MyProject.sln
├── angular/
│ ├── src/
│ │ ├── app/
│ │ ├── assets/
│ │ ├── environments/
│ │ └── package.json
│ ├── angular.json
│ └── tsconfig.json
├── host/
│ ├── MyProject.Host/
│ │ ├── MyProject.Host.csproj
│ │ ├── Program.cs
│ │ └── Startup.cs
└── shared/
└── MyProject.Application.Shared/
// angular/package.json
{
"name": "my-project",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve --port 4200",
"build": "ng build",
"test": "ng test"
},
"dependencies": {
"@angular/animations": "^12.0.0",
"@angular/common": "^12.0.0",
"@angular/compiler": "^12.0.0",
"@angular/core": "^12.0.0",
"@angular/forms": "^12.0.0",
"@angular/platform-browser": "^12.0.0",
"@angular/platform-browser-dynamic": "^12.0.0",
"@angular/router": "^12.0.0"
}
}
// src/MyProject.Web/Startup.cs
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddApplication<MyProjectWebModule>();
// Configure authentication
services.AddAuthentication()
.AddIdentityCookies();
}
public void Configure(IApplicationBuilder app, IApplicationBuilder env)
{
app.InitializeApplication();
}
}
Configuration:
Setup Commands:
# Download from website
# Extract and rename
dotnet restore
dotnet ef database update
dotnet run --project src/MyProject.Web
Configuration:
Setup Commands:
# Download Module Zero template
dotnet restore
dotnet ef database update
# Default admin: admin / 123qwe
dotnet run --project src/MyProject.Web
Configuration:
Setup Commands:
# Backend setup
cd host
dotnet restore
dotnet ef database update
dotnet run --project MyProject.Host
# Frontend setup
cd angular
npm install
ng serve
# Update connection string in appsettings.json
"ConnectionStrings": {
"Default": "Server=localhost;Database=MyProjectDb;Trusted_Connection=true"
}
# Create and apply migrations
dotnet ef migrations add InitialCreate
dotnet ef database update
// src/MyProject.Core/Entities/Product.cs
public class Product : FullAuditedEntity
{
public string Name { get; set; }
public decimal Price { get; set; }
public ProductCategory Category { get; set; }
}
// src/MyProject.Application/Services/ProductAppService.cs
public class ProductAppService : ApplicationService, IProductAppService
{
private readonly IRepository<Product> _productRepository;
public ProductAppService(IRepository<Product> productRepository)
{
_productRepository = productRepository;
}
public async Task<ListResultDto<ProductDto>> GetAll(GetAllProductsInput input)
{
var products = await _productRepository.GetAllListAsync();
return new ListResultDto<ProductDto>(
ObjectMapper.Map<List<Product>, List<ProductDto>>(products)
);
}
}
// src/MyProject.Web/Controllers/ProductsController.cs
public class ProductsController : AbpControllerBase
{
private readonly IProductAppService _productAppService;
public ProductsController(IProductAppService productAppService)
{
_productAppService = productAppService;
}
public async Task<ActionResult> Index()
{
var products = await _productAppService.GetAll(new GetAllProductsInput());
return View(products);
}
}
/* wwwroot/css/main.css */
.navbar-brand {
font-weight: bold;
}
.page-header {
background-color: #f8f9fa;
padding: 1rem 0;
}
# Switch to PostgreSQL
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
# Update DbContext to use PostgreSQL
services.AddDbContext<MyProjectDbContext>(options =>
options.UseNpgsql(Configuration.GetConnectionString("Default")));
// Configure custom authentication
services.Configure<IdentityOptions>(options =>
{
options.Password.RequireDigit = true;
options.Password.RequiredLength = 6;
options.Password.RequireNonAlphanumeric = false;
});
# Check connection string
# Verify database server is running
# Test connection manually
dotnet ef database update --verbose
# Clear NuGet cache
dotnet nuget locals all --clear
# Restore packages
dotnet restore --force
# Drop and recreate database
dotnet ef database drop
dotnet ef migrations add InitialCreate
dotnet ef database update
# Check user roles and permissions
# Verify database tables created
# Test login with default credentials
This skill provides comprehensive guidance for creating ASP.NET Boilerplate projects with the right template and configuration for your specific needs.
development
This skill enables visual inspection of websites running locally or remotely to identify and fix design issues. Triggers on requests like "review website design", "check the UI", "fix the layout", "find design problems". Detects issues with responsive design, accessibility, visual consistency, and layout breakage, then performs fixes at the source code level.
testing
Comprehensive unit testing with xUnit, mocking, test patterns, and best practices for .NET applications
data-ai
Universal SQL performance optimization assistant for comprehensive query tuning, indexing strategies, and database performance analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Provides execution plan analysis, pagination optimization, batch operations, and performance monitoring guidance.
development
Universal SQL code review assistant that performs comprehensive security, maintainability, and code quality analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Focuses on SQL injection prevention, access control, code standards, and anti-pattern detection. Complements SQL optimization prompt for complete development coverage.