Files
Christoph Schwörer f045b99a25 Codebasis als Dateien ins Arbeitsrepo statt als Gitlink
QuellCode/CentronERP war nur als Gitlink (Submodul-Referenz auf 79c1142)
getrackt, ohne .gitmodules und ohne erreichbares Remote. Der
Untersuchungsgegenstand der Versuchsreihe war damit nicht reproduzierbar
gesichert: Ein Klon haette ein leeres Verzeichnis erhalten, und die Belege
der 3.287 Anforderungen waeren nicht ueberpruefbar gewesen.

Umstellung:
- Historie nach c:\DEV\CentronERP_git_snapshot_79c1142 ausgelagert
  (vollstaendig lesbar, enthaelt 79c1142 und Vorgaenger 89ccfd6)
- Gitlink aus dem Index entfernt
- Dateiinhalt aufgenommen: 24.557 Dateien, rund 333 MB

Die verschachtelte .gitignore der Codebasis gilt weiter, Build-Artefakte
bleiben ausgeschlossen. Details in Versuche/Versuch_01/_Codebasis-Nachweis.md
2026-08-26 07:43:51 +02:00

73 lines
4.5 KiB
Markdown

# AI and developer navigation (large repository)
This document helps **find code quickly** in a very large solution. It does **not** replace [CLAUDE.md](../../CLAUDE.md) (rules and patterns) or [general-structure.md](general-structure.md) (layering and ILogic details). Use it as a **map**: where to look before running broad searches.
## How this fits other docs
| Need | Primary doc |
|------|-------------|
| Mandatory patterns, Result, dual API, DB, encoding | [CLAUDE.md](../../CLAUDE.md) |
| Layering, ClassContainer, ILogic / BL / WS | [general-structure.md](general-structure.md) |
| Adding REST methods (legacy + modern) | [../guides/services/add-webservice-methods.md](../guides/services/add-webservice-methods.md) |
| MVVM, modules, UI | [../guides/ui/](../guides/ui/) and [../reference/architecture/mvvm-in-centron.md](../reference/architecture/mvvm-in-centron.md) |
## Top-level layout
| Path | Role |
|------|------|
| `src/backend/` | `Centron.BL`, `Centron.DAO`, `Centron.Entities`, `Centron.Interfaces`, `Centron.Common`, `Centron.Gateway` |
| `src/centron/` | WPF client (`Centron.WPF.UI`, `Centron.WPF.UI.Extension`) |
| `src/webservice/` | `Centron.WebServices.Core` (legacy REST), `Centron.Controllers` (ASP.NET Core API), hosts (`Centron.Host*`) |
| `src/nexus/` | Blazor Server portal (`CentronNexus`, hosts, Outlook add-in) |
| `src/apis/` | External integration assemblies (FinAPI, GLS, Shipcloud, ITscope, Icecat, etc.) |
| `src/shared/` | `Centron.Core`, `Centron.Controls`, reusable UI |
| `tests/` | Unit, integration, E2E, API tests, Playwright, Nexus tests |
| `scripts/` | `Centron.Scripts` build orchestration |
| `deployment/` | WiX / installers |
| `.claude/` | Claude Code agents, commands, hooks (not used by Cursor rules) |
Solution file: `Centron.sln` (groups many projects; not every folder under `src/` is listed above—search the `.sln` for exact project names).
## Find code by concern
| You need | Where to look |
|----------|----------------|
| **NHibernate entity** | `src/backend/Centron.Entities/` (namespaces like `Centron.Data.Entities.*`) |
| **FluentNHibernate mapping** | `src/backend/Centron.DAO/Mappings/` (mirrors domain folders, e.g. `Mappings/Accounting/`) |
| **Business logic (BL)** | `src/backend/Centron.BL/` (`*BL.cs`, script methods under `Administration/Scripts/ScriptMethods/Scripts/`) |
| **DAO / queries** | `src/backend/Centron.DAO/` |
| **ILogic interface** | `src/centron/Centron.WPF.UI/Services/Logics/**/I*Logic.cs` |
| **BLLogic / WSLogic** | Same tree: `src/centron/Centron.WPF.UI/Services/Logics/**/BL*Logic.cs`, `WS*Logic.cs` |
| **WebServiceBL + DTO mapping** | `src/backend/Centron.BL/` (often `WebServices/` or domain folders; AutoMapper profiles in `WebServices/ObjectMapperConfiguration/`) |
| **Legacy REST contract** | `src/backend/Centron.Interfaces/` (`ICentronRestService`), implementation `src/webservice/Centron.WebServices.Core/RestService/CentronRestService.cs` |
| **Modern REST controllers** | `src/webservice/Centron.Controllers/Controllers/` (`v1/{Domain}/`, `Unversioned/`) |
| **WPF module registration** | `src/centron/Centron.WPF.UI/Modules/ModuleRegistration.cs` |
| **Application settings IDs** | `src/backend/Centron.Interfaces/Administration/Settings/ApplicationSettingID.cs`, `ApplicationSettingDefinitions.cs` |
| **User rights constants** | `src/webservice/Centron.WebServices.Core/EntitiesWrongPlace/Administration/Rights/UserRightsConst.cs` |
**Search tip:** For a feature name (e.g. `Receipt`), search the **interface** name first (`IReceipt*Logic`, `*Receipt*WebServiceBL`, `Receipt*Controller`) to narrow the tree.
## Test projects (targeted runs)
Use `dotnet test Centron.sln` for everything; for **faster feedback** narrow to a project:
| Project path | Typical use |
|--------------|-------------|
| `tests/backend/Centron.Tests.BL` | Business logic unit tests |
| `tests/backend/Centron.Tests.DAO` | DAO / persistence tests |
| `tests/shared/Centron.Tests.Core` | Shared test utilities |
| `tests/Centron.Tests.Integration` | Integration |
| `tests/Centron.Tests.EndToEnd` | E2E |
| `tests/apis/*` | External API wrapper tests |
| `tests/CentronNexusTests` | Blazor portal |
| `tests/PlaywrightTests` | Browser E2E |
Example: `dotnet test tests/backend/Centron.Tests.BL/Centron.Tests.BL.csproj`
## Claude Code vs Cursor
- **`.claude/`** — agents and commands for Claude Code.
- **`.cursor/rules/`** — Cursor project rules; still follow **CLAUDE.md** as the canonical playbook.
Keeping behavioral rules in **one place** ([CLAUDE.md](../../CLAUDE.md)) avoids drift; this file only improves **orientation** in the tree.