Skip to content

chore: refactored samples folder and converted solution to using .slnx#73

Closed
mishael-o wants to merge 3 commits into
developfrom
chore/mishaelo/migrate-to-slnx
Closed

chore: refactored samples folder and converted solution to using .slnx#73
mishael-o wants to merge 3 commits into
developfrom
chore/mishaelo/migrate-to-slnx

Conversation

@mishael-o

Copy link
Copy Markdown
Collaborator

Summary

  • Move sample projects from src/samples/** to repo-root samples/** on top of develop.
  • Replace legacy .sln files with .slnx and add per-sample .slnx entry points.
  • Split sample-root build/package configuration into samples/Directory.Build.props, samples/Directory.Packages.props, and samples/Directory.Build.local.props.example.

@mishael-o mishael-o requested review from Copilot and gragra33 April 15, 2026 05:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 .csproj files to reference projects under src/ after the samples folder move.
  • Added samples/Directory.Build.props, samples/Directory.Packages.props, and a local override example props file.
  • Added per-sample .slnx entry-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.

Comment thread HISTORY.md
- [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
Comment thread readme.md
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:***
Comment thread readme.md
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:***
Comment thread readme.md
```

**_App. razor (Razor Components) Example:_**
***App. razor (Razor Components) Example:***
Comment thread readme.md
```

**_App. razor (Razor Components) Example:_**
***App. razor (Razor Components) Example:***
Comment on lines +3 to +5
<!-- 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>
mishael-o and others added 3 commits April 19, 2026 15:59
…yzer

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 19, 2026 14:51
@mishael-o mishael-o force-pushed the chore/mishaelo/migrate-to-slnx branch from 06ffe49 to 1000fde Compare April 19, 2026 14:51

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 moving samples/ to the repo root.
  • Added samples/Directory.Build.props + samples/Directory.Packages.props to 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.

Comment thread .github/workflows/ci.yml
Comment on lines +54 to +57
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
Comment on lines +27 to +30
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
Comment thread ci-cd-test-run.ps1
$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
Comment thread readme.md
```

**_App. razor (Razor Components) Example:_**
***App. razor (Razor Components) Example:***
Comment thread readme.md
```

**_App. razor (Razor Components) Example:_**
***App. razor (Razor Components) Example:***
@mishael-o mishael-o closed this Apr 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants