Skip to content

Conversation

Copy link

Copilot AI commented Nov 17, 2025

Upgrade .NET MAUI Workshop to .NET 10

Based on the official .NET MAUI 9 to 10 upgrade instructions, all tasks have been completed:

  • Update all .csproj files to use net10.0 target framework monikers (TFMs)
    • Update Part 1 - Displaying Data project
    • Update Part 2 - MVVM project
    • Update Part 3 - Navigation project
    • Update Part 4 - Platform Features project
    • Update Part 5 - CollectionView project
    • Update Part 6 - AppThemes project
    • Update Finish project
    • Update Community Modules XAML projects (5 projects)
  • Update Directory.Build.props file with net10.0 platform versions
  • Update Directory.Build.targets file with net10.0 references
  • Update documentation files to reference .NET 10, Visual Studio 2026, and VS Code with C# Dev Kit
  • Replace deprecated DisplayAlert with DisplayAlertAsync in all projects
  • Update Microsoft.Extensions.Logging.Debug to 10.0.-
  • Update CommunityToolkit.Mvvm to 8.4.0
  • Add LangVersion preview to all .csproj files to support MVVMTK0045
  • Update all ViewModels to use partial property syntax (MVVM Toolkit 8.4.0 style)
  • Update all README documentation to reflect new partial property syntax
  • Fix README to preserve manual implementation examples (showing before/after)
  • Verify projects can build with .NET 10 SDK
  • Run code review and security checks

Summary

All 12 .NET MAUI projects have been successfully updated from .NET 9 to .NET 10:

  • Changed target frameworks from net9.0-* to net10.0-* in all .csproj files
  • Updated platform-specific conditions in Directory.Build.props
  • Updated documentation to reference .NET 10, Visual Studio 2026, and VS Code with C# Dev Kit
  • Replaced all deprecated DisplayAlert calls with DisplayAlertAsync (18 ViewModels updated)
  • Updated Microsoft.Extensions.Logging.Debug from 9.0.- to 10.0.-
  • Updated CommunityToolkit.Mvvm from 8.3.2 to 8.4.0
  • Added <LangVersion>preview</LangVersion> to all 12 .csproj files for C# 14 preview features support
  • Updated all ViewModels to use the new partial property syntax:
    • Changed from [ObservableProperty] bool isBusy; to [ObservableProperty] public partial bool IsBusy { get; set; }
    • Updated BaseViewModel in all 12 projects
    • Updated MonkeyDetailsViewModel in all projects with the property
    • Updated MonkeysViewModel in projects with IsRefreshing property
  • Updated all README documentation:
    • MVVM Toolkit sections show the new partial property syntax
    • Manual implementation sections (showing INotifyPropertyChanged before using the toolkit) preserve the original field-based syntax for educational purposes
  • Verified builds succeed with .NET 10 SDK with no warnings or errors
Original prompt

This section details on the original issue you should resolve

<issue_title>Update to .NET 10</issue_title>
<issue_description>Update all projects based on https://github.com/github/awesome-copilot/blob/main/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md</issue_description>

<agent_instructions>Ensure you follow instructiosn: https://github.com/github/awesome-copilot/blob/main/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md</agent_instructions>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com>
Copilot AI changed the title [WIP] Update all projects to .NET 10 Upgrade .NET MAUI Workshop to .NET 10 Nov 17, 2025
Copilot finished work on behalf of jamesmontemagno November 17, 2025 22:17
@jamesmontemagno
Copy link
Collaborator

@copilot We will want to tell people they will need .NET 10 and Visual Studio 2026 or Visual Studio Code with the C# Dev Kit. Visual Studio 2022 isn't supported with .NET 10

Also https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-10?view=net-maui-10.0 for anythign deprecated we need to rmvoe at all

… DisplayAlertAsync

Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com>
Copy link
Author

Copilot AI commented Nov 17, 2025

@copilot We will want to tell people they will need .NET 10 and Visual Studio 2026 or Visual Studio Code with the C# Dev Kit. Visual Studio 2022 isn't supported with .NET 10

Also https://learn.micros...

Updated in commit 722f1af:

  • Changed README to reference Visual Studio 2026 and VS Code with C# Dev Kit
  • Replaced all deprecated DisplayAlert calls with DisplayAlertAsync across all 18 ViewModels
  • Verified build succeeds with no warnings

Copilot finished work on behalf of jamesmontemagno November 17, 2025 22:38
@jamesmontemagno
Copy link
Collaborator

@copilot let's update the logging to 10.0.-

Also update the community toolkit to 8.4.0, but take into consideration https://learn.microsoft.com/en-us/dotnet/communitytoolkit/mvvm/generators/errors/mvvmtk0045 and that we need to set LangVersion to preview in the csprj

…ersion preview

Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com>
Copy link
Author

Copilot AI commented Nov 17, 2025

@copilot let's update the logging to 10.0.-

Also update the community toolkit to 8.4.0, but take into consideration https://learn.microsoft.com/en-us/dotnet/communitytoolkit/mvvm/generators/erro...

Updated in commit 7ea2204:

  • Updated Microsoft.Extensions.Logging.Debug from 9.0.- to 10.0.-
  • Updated CommunityToolkit.Mvvm from 8.3.2 to 8.4.0
  • Added <LangVersion>preview</LangVersion> to all 12 .csproj files to support C# 14 preview features and avoid MVVMTK0045 warnings
  • Verified build succeeds with no warnings

Copilot finished work on behalf of jamesmontemagno November 17, 2025 23:14
@jamesmontemagno
Copy link
Collaborator

@copilot We will want to update all viewmodels and all documentation to use the new mvvm toolkit style in 8.4.0

FROM:

[ObservableProperty]
string title;

To:
[ObservableProperty]
public partial string Title { get; set; }

do thi sin all projects and update all readmes

Copy link
Author

Copilot AI commented Nov 17, 2025

@copilot We will want to update all viewmodels and all documentation to use the new mvvm toolkit style in 8.4.0

FROM:...

Updated in commit 982c240:

  • Updated all ViewModels (31 files) to use the new MVVM Toolkit 8.4.0 partial property syntax
  • Changed from [ObservableProperty] string title; to [ObservableProperty] public partial string Title { get; set; }
  • Updated BaseViewModel in all 12 projects
  • Updated MonkeyDetailsViewModel and MonkeysViewModel across all projects
  • Updated all README files (English, Chinese Simplified, Chinese Traditional) with new syntax examples and explanations of partial properties
  • Updated generated code examples to show C# 14's field keyword usage
  • Verified build succeeds with no warnings or errors

Copilot finished work on behalf of jamesmontemagno November 17, 2025 23:31
field = value;
OnPropertyChanged();
// Also raise the IsNotBusy property changed
OnPropertyChanged(nameof(IsNotBusy));
Copy link
Collaborator

Choose a reason for hiding this comment

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

@copilot dont' change the ones thatw e have today taht aren't using [ObservableProperty] for in the readme, we are showing the before/after using the toolkit

Copy link
Author

Choose a reason for hiding this comment

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

Fixed in commit 494d9f5. Reverted the manual implementation section (showing bool isBusy; and string title;) in both Chinese README files to preserve the before/after examples that demonstrate INotifyPropertyChanged before introducing the MVVM Toolkit.

Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com>
Copilot finished work on behalf of jamesmontemagno November 17, 2025 23:42
CardView now inherits from Border instead of Frame, enabling use of Border-specific styling and features. This may affect the appearance and layout of CardView components in the application.
- Update getter to use `isBusy` instead of `field`
- Ensure setter updates `isBusy` and raises PropertyChanged events
@jamesmontemagno jamesmontemagno marked this pull request as ready for review November 18, 2025 01:01
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.

Update to .NET 10

2 participants