Skip to content

Commit de2ab85

Browse files
csharpfritzCopilot
andcommitted
Add migration benchmark progression and sample complexity ordering
- Reorder samples/ in project structure by increasing complexity - Mark WingtipToys as current benchmark focus - Add Migration Benchmark Progression table (WingtipToys → ContosoUniversity → DepartmentPortal) - Note that DepartmentPortal is the most sophisticated future target Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 0558fa2 commit de2ab85

1 file changed

Lines changed: 21 additions & 9 deletions

File tree

.github/copilot-instructions.md

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,18 @@ Both should render:
5151

5252
```
5353
/docs -- User documentation (MkDocs)
54-
/samples -- Usage samples and migration outputs
54+
/samples -- Usage samples and migration benchmarks (ordered by complexity ↓)
5555
BeforeWebForms/ -- Original Web Forms sample (.NET Framework)
56-
AfterBlazorServerSide/ -- Blazor Server-Side samples
56+
AfterBlazorServerSide/ -- Blazor Server-Side component samples
5757
AfterBlazorServerSide.Tests/ -- Playwright tests for the sample app
58-
AfterBlazorClientSide/ -- Blazor WebAssembly samples
59-
AfterContosoUniversity/ -- Migrated Contoso University sample
60-
AfterDepartmentPortal/ -- Migrated department portal
61-
AfterWingtipToys/ -- Migrated WingtipToys sample
58+
AfterBlazorClientSide/ -- Blazor WebAssembly component samples
6259
SharedSampleObjects/ -- Shared models/data for samples
63-
WingtipToys/ -- Original WingtipToys Web Forms sample
64-
ContosoUniversity/ -- Original Contoso University Web Forms sample
65-
DepartmentPortal/ -- Original department portal
60+
WingtipToys/ -- ★ Current benchmark focus — e-commerce app (products, cart, checkout, identity)
61+
AfterWingtipToys/ -- Migrated WingtipToys output (cleared + regenerated each benchmark run)
62+
ContosoUniversity/ -- Next benchmark — university CRUD app (EF, master-detail, search)
63+
AfterContosoUniversity/ -- Migrated Contoso University output
64+
DepartmentPortal/ -- Most complex benchmark — multi-page portal (advanced data binding, nested controls)
65+
AfterDepartmentPortal/ -- Migrated DepartmentPortal output
6666
/src
6767
BlazorWebFormsComponents/ -- Main component library
6868
BlazorWebFormsComponents.Test/ -- Unit tests with bUnit
@@ -317,6 +317,18 @@ These are hard rules for migration work in this repository:
317317
5. **Register transforms twice**: Every new CLI transform must be registered in both `src/BlazorWebFormsComponents.Cli/Program.cs` DI and `tests/BlazorWebFormsComponents.Cli.Tests/TestHelpers.cs` so the runtime pipeline and isolated test pipeline stay aligned.
318318
6. **Respect quarantine boundaries**: `PageQuarantineDetector` should quarantine non-essential `Account/`, `Admin/`, `Checkout/`, mobile, payment, or compile-surface blocker pages, but benchmark-critical home, about, contact, product, catalog, and cart flows stay on the runnable path whenever possible.
319319

320+
### Migration Benchmark Progression
321+
322+
The `samples/` folder contains benchmark apps ordered by increasing complexity. Each app exercises more of the CLI and BWFC component surface:
323+
324+
| Sample | Complexity | Key Challenges | Status |
325+
|--------|-----------|----------------|--------|
326+
| **WingtipToys** | ★★☆ | E-commerce: products, cart, checkout, identity, EF data binding | **Current focus** — active benchmark runs |
327+
| **ContosoUniversity** | ★★☆ | University CRUD: master-detail, search, EF migrations | Acceptance tests exist |
328+
| **DepartmentPortal** | ★★★ | Multi-page portal: advanced data binding, nested controls, complex layouts | Future target — most sophisticated |
329+
330+
Always complete the current benchmark focus before moving to the next. Improvements to the CLI and toolkit should be validated against the current focus app first, then regression-tested against simpler samples.
331+
320332
## Migration Shims
321333

322334
The library provides compile-compatibility shims on `WebFormsPageBase` so migrated code-behind compiles unchanged:

0 commit comments

Comments
 (0)