|
1 | | -# Project Context |
| 1 | +# Project Context |
2 | 2 |
|
3 | 3 | - **Owner:** Jeffrey T. Fritz |
4 | 4 | - **Project:** BlazorWebFormsComponents — Blazor components emulating ASP.NET Web Forms controls for migration |
|
11 | 11 |
|
12 | 12 | <!-- ⚠ Summarized 2026-02-27 by Scribe — covers M1–M16 --> |
13 | 13 |
|
| 14 | +### Issue #: Comprehensive Migration Documentation (User Controls, FindControl, Custom Control Base Classes) |
| 15 | + |
| 16 | + **Status:** DELIVERED |
| 17 | + |
| 18 | +**Session (2026-03-17 by Beast):** |
| 19 | +- Created/Updated 3 comprehensive migration guides covering 40+ KB of documentation |
| 20 | +- **docs/Migration/User-Controls.md** (Updated from TODO) 9 KB, ~300 lines |
| 21 | + - Web Forms ASCX structure Blazor .razor component conversion |
| 22 | + - Step-by-step migration: markup, properties, events, lifecycle, data binding, FindControl replacement |
| 23 | + - Complete EmployeeList example before/after |
| 24 | + - Common pitfalls + solutions (parameter binding, element access, nested components, context loss) |
| 25 | + - BWFC component integration recommendations |
| 26 | + |
| 27 | +- **docs/Migration/FindControl-Migration.md** (New) 16 KB, ~550 lines |
| 28 | + - Explains FindControl purpose in Web Forms control tree |
| 29 | + - Deep dive: naming container boundaries (master pages, content placeholders, templates) |
| 30 | + - Real examples from DepartmentPortal (master message control, SectionPanel with repeater) |
| 31 | + - 5 Blazor patterns to replace FindControl: @ref, parameters, cascading parameters, EventCallback, DI |
| 32 | + - BWFC's FindControl limitations + when to use it |
| 33 | + - Complete migration examples table (Web Forms pattern Blazor equivalent) |
| 34 | + - Common pitfalls (assuming @ref works like FindControl, null checks, state mutation) |
| 35 | + |
| 36 | +- **docs/Migration/CustomControl-BaseClasses.md** (New) 23 KB, ~800 lines |
| 37 | + - Inventory of current BWFC base classes: BaseWebFormsComponent, BaseStyledComponent, DataBoundComponent<T>, WebControl, CompositeControl, DataBoundControl, HtmlTextWriter |
| 38 | + - Web Forms BWFC mapping table for all base class equivalents |
| 39 | + - **5 Planned Improvements (P1P5) with full specification:** |
| 40 | + - **P1: DataBoundWebControl<T>** Bridges DataBoundControl + HtmlTextWriter rendering. EmployeeDataGrid use case. |
| 41 | + - **P2: TagKey + AddAttributesToRender** Auto-renders outer tag with attributes. StarRating, NotificationBell use cases. Simplifies 80% of migrations. |
| 42 | + - **P3: HtmlTextWriter Enum Expansion** HTML5 tags (Nav, Section, Article, etc.), ARIA/data attributes, modern CSS (flexbox, grid, transforms). Modern markup patterns. |
| 43 | + - **P4: CompositeControl Mixed Children** Support WebControl + markup + Blazor components. EmployeeCard complexity. |
| 44 | + - **P5: ITemplate RenderFragment Bridge** Web Forms Blazor template pattern translation. SectionPanel use case. |
| 45 | + - Each P1P5 includes: current state, what's missing, DepartmentPortal example, proposed API |
| 46 | + - Implementation priority order: P2 P1 P3 P4 P5 (with dependency matrix) |
| 47 | + |
| 48 | +- Updated mkdocs.yml navigation: |
| 49 | + - Added "Custom Control Base Classes: Migration/CustomControl-BaseClasses.md" (after Custom Controls) |
| 50 | + - Added "FindControl Migration: Migration/FindControl-Migration.md" (after User Controls) |
| 51 | + |
| 52 | +**Key Documentation Patterns:** |
| 53 | +- Followed established Beast style from Custom-Controls.md + MasterPages.md (before/after code, tables, "See Also" links) |
| 54 | +- DepartmentPortal as primary reference for real-world examples (EmployeeList, SectionPanel, StarRating, etc.) |
| 55 | +- Web Forms Blazor mapping tables for quick translation reference |
| 56 | +- Pitfall sections with solutions for each guide |
| 57 | +- "See Also" cross-references between related guides |
| 58 | + |
| 59 | + |
| 60 | + |
14 | 61 | <!-- ⚠ Summarized 2026-03-06 by Scribe — older entries archived --> |
15 | 62 |
|
16 | 63 | ### Archived Sessions |
@@ -563,3 +610,25 @@ Updated `.squad/skills/migration-standards/SKILL.md` to add new section at end: |
563 | 610 |
|
564 | 611 | **Team update (2026-03-20):** Analyzer architecture guide (579 lines) + expanded Analyzers.md (+363 lines). Deprecation Guidance docs (#438, 32 KB). BaseValidator/BaseCompareValidator base class docs. MkDocs strict build clean. PR #487 opened on upstream. decided by Beast |
565 | 612 |
|
| 613 | + |
| 614 | + |
| 615 | +### Issue #495: P1-P5 Custom Controls Framework Developer Documentation |
| 616 | + |
| 617 | +**Status:** DELIVERED |
| 618 | + |
| 619 | +**Session (2026-03-22 by Beast):** |
| 620 | +- Created `dev-docs/proposals/p1-p5-custom-controls-framework.md` (~33 KB, ~500 lines) |
| 621 | + - Executive summary, class hierarchy diagram, full API reference for 9 classes/interfaces |
| 622 | + - Design decisions (TagKey vs strings, placeholder templating, generic DataSource, Literal alias) |
| 623 | + - 5 migration patterns with before/after code examples |
| 624 | + - Honest "can't be shimmed" table (ViewState, PostBack, DataSourceID, etc.) |
| 625 | + - DepartmentPortal validation (5/7 drop-in, 2 manual rewrite) |
| 626 | + - Test coverage map (40 new tests, 16 test components) |
| 627 | + - Upstream issues table linking #490-#496 |
| 628 | +- Updated `dev-docs/README.md` with proposals/ table entry |
| 629 | + |
| 630 | +**Key learnings:** |
| 631 | +- Reading actual source to verify API surfaces is critical task description said 48 new tests but actual count is 40 in 4 new test files (plus 23 pre-existing across 3 files) |
| 632 | +- Enum counts from source: HtmlTextWriterTag=78, HtmlTextWriterAttribute=55, HtmlTextWriterStyle=77 |
| 633 | +- `DataBoundWebControl<T>` design around Blazor's case-insensitive parameter matching is a subtle but important constraint worth documenting prominently |
| 634 | +- The placeholder approach (`<!--BWFC_TPL_N-->`) for template interleaving is novel and deserves detailed explanation for future contributors |
0 commit comments