chore: refactored samples folder and converted solution to using .slnx#73
chore: refactored samples folder and converted solution to using .slnx#73mishael-o wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Refactors the repository’s sample projects by moving them to a top-level samples/ folder, switching sample entry points to .slnx, and centralizing sample build/package configuration.
Changes:
- Updated sample
.csprojfiles to reference projects undersrc/after the samples folder move. - Added
samples/Directory.Build.props,samples/Directory.Packages.props, and a local override example props file. - Added per-sample
.slnxentry-point files and updated documentation links/TOC to match the new structure.
Reviewed changes
Copilot reviewed 24 out of 573 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| samples/HybridSamples/HybridSample.WinForms/HybridSample.WinForms.csproj | Updates project reference path to src/ for moved samples. |
| samples/HybridSamples/HybridSample.MAUI/HybridSample.MAUI.csproj | Updates project reference paths to src/ for moved samples. |
| samples/HybridSamples/HybridSample.Avalonia/HybridSample.Avalonia.csproj | Updates project reference path to src/ and adds a new package reference. |
| samples/Directory.Packages.props | Imports central package versions from src/ for samples. |
| samples/Directory.Build.props | Imports shared build props from src/ and adds optional local overrides for samples. |
| samples/Directory.Build.local.props.example | Documents local, uncommitted sample-only build overrides. |
| samples/Blazing.SubpathHosting.Server/Blazing.SubpathHosting.Server.slnx | Adds .slnx solution entry point for sample. |
| samples/Blazing.SubpathHosting.Server/Blazing.SubpathHosting.Server.csproj | Updates project reference path to src/ for moved samples. |
| samples/Blazing.Mvvm.Security.Wasm/Blazing.Mvvm.Security.Wasm.slnx | Adds .slnx solution entry point for sample. |
| samples/Blazing.Mvvm.Security.Wasm/Blazing.Mvvm.Security.Wasm.csproj | Updates project reference path to src/ for moved samples. |
| samples/Blazing.Mvvm.Sample.WebApp/Blazing.Mvvm.Sample.WebApp/Blazing.Mvvm.Sample.WebApp.csproj | Updates project reference path to src/ for moved samples. |
| samples/Blazing.Mvvm.Sample.WebApp/Blazing.Mvvm.Sample.WebApp.slnx | Adds .slnx solution entry point (with configurations) for sample. |
| samples/Blazing.Mvvm.Sample.WebApp/Blazing.Mvvm.Sample.WebApp.Client/Blazing.Mvvm.Sample.WebApp.Client.csproj | Updates project reference path to src/ for moved samples. |
| samples/Blazing.Mvvm.Sample.Wasm/Blazing.Mvvm.Sample.Wasm.slnx | Adds .slnx solution entry point for sample. |
| samples/Blazing.Mvvm.Sample.Wasm/Blazing.Mvvm.Sample.Wasm.csproj | Updates project reference path to src/ for moved samples. |
| samples/Blazing.Mvvm.Sample.Server/Blazing.Mvvm.Sample.Server.slnx | Adds .slnx solution entry point for sample. |
| samples/Blazing.Mvvm.Sample.Server/Blazing.Mvvm.Sample.Server.csproj | Updates project reference path to src/ for moved samples. |
| samples/Blazing.Mvvm.Sample.HybridMaui/Blazing.Mvvm.Sample.HybridMaui.slnx | Adds .slnx solution entry point for sample. |
| samples/Blazing.Mvvm.Sample.HybridMaui/Blazing.Mvvm.Sample.HybridMaui.csproj | Updates project reference paths to src/ for moved samples. |
| samples/Blazing.Mvvm.AnalyzerTest/Blazing.Mvvm.AnalyzerTest.slnx | Adds .slnx solution entry point for sample. |
| samples/Blazing.Mvvm.AnalyzerTest/Blazing.Mvvm.AnalyzerTest.csproj | Updates project reference paths to src/ for moved samples. |
| readme.md | Updates TOC formatting and fixes links to moved sample paths; minor formatting tweaks. |
| HISTORY.md | Re-formats TOC/headings and updates documentation links to new sample paths. |
| .vscode/settings.json | Removes repo-scoped VS Code UI customization settings. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - [ParameterResolution.Sample.Wasm](https://github.com/gragra33/Blazing.Mvvm/tree/master/src/samples/ParameterResolution.Sample.Wasm)** - Demonstrates parameter resolution between Views and ViewModels using `ViewParameter` attribute, and automatic two-way binding with `@bind-` syntax | ||
| **New Sample:** | ||
|
|
||
| - [ParameterResolution.Sample.Wasm](https://github.com/gragra33/Blazing.Mvvm/tree/master/samples/ParameterResolution.Sample.Wasm)** - Demonstrates parameter resolution between Views and ViewModels using `ViewParameter` attribute, and automatic two-way binding with `@bind-` syntax |
| You can hard-code the path, eg: `<base href="/fu/bar/" />`, however, it's better to set it dynamically based on the incoming request's `PathBase`. | ||
|
|
||
| **_Host.cshtml (Razor Pages) Example:_** | ||
| ***Host.cshtml (Razor Pages) Example:*** |
| Do not hard-code the path. Yarp will use a dynamic `PathBase` for `baseHref`, so set it based on the incoming request's `PathBase`. | ||
|
|
||
| **_Host.cshtml (Razor Pages) Example:_** | ||
| ***Host.cshtml (Razor Pages) Example:*** |
| ``` | ||
|
|
||
| **_App. razor (Razor Components) Example:_** | ||
| ***App. razor (Razor Components) Example:*** |
| ``` | ||
|
|
||
| **_App. razor (Razor Components) Example:_** | ||
| ***App. razor (Razor Components) Example:*** |
| <!-- Recompute these here because this file can be evaluated independently of Directory.Packages.props. --> | ||
| <RepoRoot>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)../'))</RepoRoot> | ||
| <SrcRoot>$([MSBuild]::NormalizeDirectory('$(RepoRoot)src/'))</SrcRoot> |
…yzer Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
06ffe49 to
1000fde
Compare
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Refactors the repository’s sample layout and build entry points by moving samples to the repo root, introducing .slnx solutions, and centralizing sample MSBuild configuration under samples/.
Changes:
- Updated sample project references to point at
src/Libraries/...after movingsamples/to the repo root. - Added
samples/Directory.Build.props+samples/Directory.Packages.propsto import shared repo configuration and allow local overrides. - Switched CI/release scripts and per-sample entry points to
.slnx.
Reviewed changes
Copilot reviewed 29 out of 779 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| samples/HybridSamples/HybridSample.MAUI/HybridSample.MAUI.csproj | Updates library project references to new src/Libraries paths |
| samples/HybridSamples/HybridSample.Avalonia/HybridSample.Avalonia.csproj | Updates project reference paths and adds a new package dependency |
| samples/Directory.Packages.props | Imports repo package versions into samples/ with computed roots |
| samples/Directory.Build.props | Imports repo build props into samples/ and supports optional local overrides |
| samples/Directory.Build.local.props.example | Documents developer-only local override mechanism for samples |
| samples/Blazing.SubpathHosting.Server/Blazing.SubpathHosting.Server.slnx | Adds .slnx entry point for the sample |
| samples/Blazing.SubpathHosting.Server/Blazing.SubpathHosting.Server.csproj | Updates library project reference path |
| samples/Blazing.Mvvm.Security.Wasm/Blazing.Mvvm.Security.Wasm.slnx | Adds .slnx entry point for the sample |
| samples/Blazing.Mvvm.Security.Wasm/Blazing.Mvvm.Security.Wasm.csproj | Updates library project reference path |
| samples/Blazing.Mvvm.Sample.WebApp/Blazing.Mvvm.Sample.WebApp/Blazing.Mvvm.Sample.WebApp.csproj | Updates library project reference path |
| samples/Blazing.Mvvm.Sample.WebApp/Blazing.Mvvm.Sample.WebApp.slnx | Adds .slnx entry point including platform configs |
| samples/Blazing.Mvvm.Sample.WebApp/Blazing.Mvvm.Sample.WebApp.Client/Blazing.Mvvm.Sample.WebApp.Client.csproj | Updates library project reference path |
| samples/Blazing.Mvvm.Sample.Wasm/Blazing.Mvvm.Sample.Wasm.slnx | Adds .slnx entry point for the sample |
| samples/Blazing.Mvvm.Sample.Wasm/Blazing.Mvvm.Sample.Wasm.csproj | Updates library project reference path |
| samples/Blazing.Mvvm.Sample.Server/Blazing.Mvvm.Sample.Server.slnx | Adds .slnx entry point for the sample |
| samples/Blazing.Mvvm.Sample.Server/Blazing.Mvvm.Sample.Server.csproj | Updates library project reference path |
| samples/Blazing.Mvvm.Sample.HybridMaui/Blazing.Mvvm.Sample.HybridMaui.slnx | Adds .slnx entry point for the sample |
| samples/Blazing.Mvvm.Sample.HybridMaui/Blazing.Mvvm.Sample.HybridMaui.csproj | Updates library project reference paths |
| samples/Blazing.Mvvm.AnalyzerTest/README.md | Updates analyzer sample documentation for BLAZMVVM0021 coverage |
| samples/Blazing.Mvvm.AnalyzerTest/Components/Test021Component.razor | Clarifies intent of the BLAZMVVM0021 sample pattern |
| samples/Blazing.Mvvm.AnalyzerTest/Blazing.Mvvm.AnalyzerTest.slnx | Adds .slnx entry point for the analyzer sample |
| samples/Blazing.Mvvm.AnalyzerTest/Blazing.Mvvm.AnalyzerTest.csproj | Updates library/analyzer project reference paths |
| readme.md | Updates documentation links/anchors and sample paths after move to samples/ |
| docs/analyzers/BLAZMVVM0021.md | Adds new analyzer documentation page |
| ci-cd-test-run.ps1 | Updates local CI test runner to use .slnx and new test paths |
| HISTORY.md | Rebuilds/normalizes TOC and headings/anchors |
| .vscode/settings.json | Removes editor-specific color customization file |
| .github/workflows/release.yml | Switches workflow to .slnx and updates test/project paths for new structure |
| .github/workflows/ci.yml | Switches workflow to .slnx and updates test/project paths for new structure |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| run: dotnet restore src/Blazing.Mvvm.slnx | ||
|
|
||
| - name: Build | ||
| run: dotnet build src/Blazing.Mvvm.CI.slnf --no-restore --configuration Release -p:GeneratePackageOnBuild=false | ||
| run: dotnet build src/Blazing.Mvvm.slnx --no-restore --configuration Release -p:GeneratePackageOnBuild=false |
| run: dotnet restore src/Blazing.Mvvm.slnx | ||
|
|
||
| - name: Build | ||
| run: dotnet build src/Blazing.Mvvm.CI.slnf --no-restore --configuration Release -p:GeneratePackageOnBuild=false | ||
| run: dotnet build src/Blazing.Mvvm.slnx --no-restore --configuration Release -p:GeneratePackageOnBuild=false |
| $CiYaml = Join-Path $WorkflowDir 'ci.yml' | ||
| $ReleaseYaml = Join-Path $WorkflowDir 'release.yml' | ||
| $SlnFilter = Join-Path $SrcRoot 'Blazing.Mvvm.CI.slnf' | ||
| $SolutionPath = Join-Path $SrcRoot 'Blazing.Mvvm.slnx' |
| ## Additional Resources | ||
|
|
||
| - [Blazing.Mvvm v3.2.0 Release Notes](https://github.com/gragra33/Blazing.Mvvm/releases/tag/v3.2.0) | ||
| - [Parameter Resolution Sample](https://github.com/gragra33/Blazing.Mvvm/tree/master/src/samples/ParameterResolution.Sample.Wasm) |
|
|
||
| #### ❌ Before (Manual Pattern - 35 lines) | ||
|
|
||
| ```csharp |
| ``` | ||
|
|
||
| **_App. razor (Razor Components) Example:_** | ||
| ***App. razor (Razor Components) Example:*** |
| ``` | ||
|
|
||
| **_App. razor (Razor Components) Example:_** | ||
| ***App. razor (Razor Components) Example:*** |
Summary