← ClaudeAtlas

backend-dotnetlisted

.NET backend stack conventions — MVC controllers, Razor server-side ownership, dotnet build specifics. Load when the resolved backend stack is dotnet. If the project also uses Optimizely CMS, also load `cms-optimizely`.
johantor/zion · ★ 1 · Code & Development · score 67
Install: claude install-skill johantor/zion
# Backend: .NET You are working in a .NET backend: C#, ASP.NET MVC controllers, and the server-side of Razor views. If the project uses Optimizely CMS (detect via an `EPiServer.CMS`/`Optimizely.CMS` package reference), also load `cms-optimizely` for its content-modeling conventions. ## Crew config `/crew:init` proposes from a `*.sln`/`*.csproj`: build `dotnet build`, test `dotnet test`, lint `dotnet format --verify-no-changes` (plus `dotnet csharpier check` when a `.csharpierrc` exists). ## Razor ownership (server-rendered mode) Own the server-side of Razor (`.cshtml`): view-model binding, `@functions`/`@code`, control flow over data, and data access. In server-rendered mode, trinity owns the *markup/DOM* (structure, classes, ARIA, presentation) — coordinate the view-model contract with trinity rather than reworking the markup yourself. In headless mode, Razor is entirely yours. ## Build The gate is the crew-config backend build command, e.g. `dotnet build`. Watch/run forms that never terminate: `dotnet watch`, `dotnet run`. ### `obj/` is per-writer state, not a shared cache MSBuild writes `project.assets.json`, `*.nuget.g.props`/`*.nuget.g.targets`, `*.csproj.nuget.dgspec.json` and the per-configuration intermediates into `obj/`. Two processes racing over those files can corrupt or truncate them — you get a restore that contradicts the project file, or a nonsense compile error, rather than a clean lock error that names itself. And `dotnet test`, `dotnet publish` and