Copilot/replace maui with avaloniaui - #9
Merged
Conversation
Co-authored-by: sassdawe <10754765+sassdawe@users.noreply.github.com>
Co-authored-by: sassdawe <10754765+sassdawe@users.noreply.github.com>
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR migrates the desktop GUI (src/AtsScanner.Gui) from .NET MAUI to Avalonia UI to provide a single cross-platform desktop target (Windows/macOS/Linux) and simplify publishing/packaging.
Changes:
- Replaced MAUI app entry points/pages/resources with an Avalonia
App.axaml+MainWindow.axamlimplementation and updated the GUI ViewModels for Avalonia types (e.g.,IBrush). - Updated
AtsScanner.Gui.csprojto a singlenet10.0target with Avalonia package references, removing MAUI-specific configuration/assets. - Simplified the release workflow to publish self-contained GUI builds for
win-x64,osx-x64,osx-arm64, andlinux-x64without MAUI workload steps; updated README accordingly.
Reviewed changes
Copilot reviewed 32 out of 37 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/AtsScanner.Gui/ViewModels/ScanResultViewModel.cs | Switches score color output from MAUI Color to Avalonia IBrush for UI bindings. |
| src/AtsScanner.Gui/ViewModels/IssueDisplay.cs | Switches severity icon color output from MAUI Color to Avalonia IBrush. |
| src/AtsScanner.Gui/ViewModels/MainViewModel.cs | Removes MAUI file picker logic; adapts commands to Avalonia-friendly ICommand implementations. |
| src/AtsScanner.Gui/ViewModels/RelayCommand.cs | Adds a simple synchronous ICommand implementation for Avalonia. |
| src/AtsScanner.Gui/ViewModels/AsyncRelayCommand.cs | Adds an async ICommand implementation for scan execution. |
| src/AtsScanner.Gui/Resources/Styles/Styles.xaml | Removes MAUI style resources. |
| src/AtsScanner.Gui/Resources/Styles/Colors.xaml | Removes MAUI color resources. |
| src/AtsScanner.Gui/Resources/Splash/splash.svg | Removes MAUI splash asset. |
| src/AtsScanner.Gui/Resources/Raw/AboutAssets.txt | Removes MAUI raw-asset template file. |
| src/AtsScanner.Gui/Resources/AppIcon/appiconfg.svg | Removes MAUI icon foreground asset. |
| src/AtsScanner.Gui/Resources/AppIcon/appicon.svg | Removes MAUI icon asset. |
| src/AtsScanner.Gui/Properties/launchSettings.json | Renames the debug launch profile to a clearer GUI-specific name. |
| src/AtsScanner.Gui/Program.cs | Adds Avalonia app bootstrap (classic desktop lifetime, Inter font, trace logging). |
| src/AtsScanner.Gui/Platforms/Windows/Package.appxmanifest | Removes MAUI/WinUI packaging manifest. |
| src/AtsScanner.Gui/Platforms/Windows/App.xaml.cs | Removes MAUI WinUI host app entry point. |
| src/AtsScanner.Gui/Platforms/Windows/App.xaml | Removes MAUI WinUI XAML host. |
| src/AtsScanner.Gui/Platforms/Windows/app.manifest | Removes MAUI Windows manifest. |
| src/AtsScanner.Gui/Platforms/MacCatalyst/Program.cs | Removes MAUI MacCatalyst entry point. |
| src/AtsScanner.Gui/Platforms/MacCatalyst/Info.plist | Removes MAUI MacCatalyst plist. |
| src/AtsScanner.Gui/Platforms/MacCatalyst/Entitlements.plist | Removes MAUI MacCatalyst entitlements. |
| src/AtsScanner.Gui/Platforms/MacCatalyst/AppDelegate.cs | Removes MAUI MacCatalyst app delegate. |
| src/AtsScanner.Gui/MauiProgram.cs | Removes MAUI app builder/bootstrap code. |
| src/AtsScanner.Gui/MainWindow.axaml.cs | Adds Avalonia Window code-behind for file picking, result expansion toggle, and sponsor link. |
| src/AtsScanner.Gui/MainWindow.axaml | Adds Avalonia UI layout for file selection, platform selection, scanning, and results display. |
| src/AtsScanner.Gui/MainPage.xaml.cs | Removes MAUI page code-behind. |
| src/AtsScanner.Gui/MainPage.xaml | Removes MAUI page XAML. |
| src/AtsScanner.Gui/AtsScanner.Gui.csproj | Replaces MAUI multi-target configuration with Avalonia packages and a single net10.0 target. |
| src/AtsScanner.Gui/AppShell.xaml.cs | Removes MAUI Shell code-behind. |
| src/AtsScanner.Gui/AppShell.xaml | Removes MAUI Shell XAML. |
| src/AtsScanner.Gui/App.xaml.cs | Removes MAUI app class. |
| src/AtsScanner.Gui/App.xaml | Removes MAUI application XAML/resources. |
| src/AtsScanner.Gui/App.axaml.cs | Adds Avalonia Application initialization and desktop main window creation. |
| src/AtsScanner.Gui/App.axaml | Adds Avalonia application styling (Fluent theme). |
| README.md | Updates GUI documentation/commands to reflect Avalonia and standard .NET SDK usage. |
| .github/workflows/release.yml | Updates GUI build matrix to win-x64/osx-x64/osx-arm64/linux-x64, removes MAUI workload steps, and adjusts publish verification/packaging. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request migrates the desktop GUI from .NET MAUI to Avalonia UI, unifying cross-platform support and simplifying the build and packaging process. The changes update the project files, workflow, and documentation to reflect the new Avalonia-based implementation and remove all MAUI-specific code and assets.
Migration to Avalonia UI:
Replaced the MAUI-based application with a new Avalonia UI implementation, adding
App.axamlandApp.axaml.csas the new application entry points and removing all MAUI-specific files such asApp.xaml,App.xaml.cs,AppShell.xaml,AppShell.xaml.cs,MainPage.xaml, andMainPage.xaml.cs. [1] [2] [3] [4] [5] [6] [7] [8]Updated the project file
AtsScanner.Gui.csprojto target Avalonia UI, referencing Avalonia packages and removing all MAUI-specific references, properties, and assets. The target framework is nownet10.0for all platforms.Build and Packaging Workflow Updates:
.github/workflows/release.ymlto build and package Avalonia apps for Windows, macOS (x64 and arm64), and Linux, removing MAUI workload steps and platform-specific target frameworks. [1] [2] [3] [4]Documentation Updates:
README.mdto reflect the migration from MAUI to Avalonia UI, clarifying that the GUI now targets Windows, macOS, and Linux with the standard .NET SDK and no longer requires the MAUI workload.