# Conventions > For core framework conventions see: `CONVENTIONS.md` (in AyCode.Core repo) > For UI framework conventions see: `CONVENTIONS.md` (in AyCode.Blazor repo) ## Naming - **fb prefix** on database tables: `fbPallet`, `fbShipping`, `fbShippingItem`, etc. - **Dto suffix** for DTOs wrapping nopCommerce entities: `OrderDto`, `OrderItemDto`, `ProductDto`. - **XxxItemPallet** for measurement records: `ShippingItemPallet`, `OrderItemPallet`, `StockTakingItemPallet`. - **Grid prefix** for Blazor grid components: `GridPartnerBase`, `GridShippingBase`, etc. - **GridXxxBase** = C# code-behind class inheriting `FruitBankGridBase`. - **GridXxx.razor** = Razor markup using `` with `` and ``. - **OnGrid prefix** for MgGridBase event parameters: `OnGridItemDeleting`, `OnGridEditModelSaving`, `OnGridFocusedRowChanged`, etc. (avoids collision with DxGrid base events). - **SignalRTags** constants use numeric ranges by domain (see `FruitBank.Common/SignalRs/`). ## XML Documentation `` — brief, developer-facing, readable in VS IntelliSense tooltip. NO implementation details, NO wire-format / byte-level / perf specifics — those live in `docs/TOPIC/*.md`. Add `` only when usage is non-obvious; otherwise omit. ## Patterns - **MeasuringItemPalletBase** as abstract base for all three measurement hierarchies. - **GenericAttributes** for extending nopCommerce entities with custom data (IsMeasurable, Tare, AverageWeight). - **Composition interfaces** for measurement traits: IMeasuringValues = IMeasuringWeights + IMeasuringQuantity. - **DevExpress DxGrid** with `AcSignalRDataSource` for real-time grid data. - **MgGridBase** — canonical grid base from AyCode.Blazor (see `AyCode.Blazor.Components/docs/MGGRID/README.md` (in AyCode.Blazor repo)). Provides SignalR CRUD, layout persistence, master-detail, InfoPanel, fullscreen. - **FruitBankGridBase** — project adapter that fixes `TId=int`, `TLoggerClient=LoggerClient`, adds per-user layout and master/detail defaults. - **FruitBankSignalRClient** as single hub client for all server communication. - **DatabaseClient** for client-side caching with ConcurrentDictionary tables. ### Grid Creation Checklist 1. Create `GridXxxBase.cs` inheriting `FruitBankGridBase`. 2. Set CRUD tags in constructor: `GetAllMessageTag`, `AddMessageTag`, `UpdateMessageTag`, `RemoveMessageTag`. 3. Create `GridXxx.razor` with ``, ``, optional ``. 4. Wrap in `` if InfoPanel is needed. 5. For detail grids: set `ParentDataItem`, `KeyFieldNameToParentId`, `ContextIds`. ## UI (Hungarian Locale) - Status labels and UI text are in Hungarian. - MeasuringStatus display: "Nincs elkezdve", "Elkezdve", "Kész", "Auditált". - Date format follows Hungarian conventions.