syncfusion-maui-toolkit-migration — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-maui-toolkit-migration (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The Syncfusion® Toolkit for .NET MAUI represents the next generation of Syncfusion® components for MAUI applications. While most APIs and functionality remain the same, components have been consolidated into a single toolkit with updated namespaces. This guide helps you migrate existing Syncfusion® .NET MAUI projects to the new toolkit with minimal code modifications.
The migration from Syncfusion® .NET MAUI to Syncfusion® Toolkit for .NET MAUI involves three primary changes:
Syncfusion.Maui.Toolkit.*Syncfusion.Maui.ToolkitConfigureSyncfusionCore() renamed to ConfigureSyncfusionToolkit()Good news: Your existing component implementations work nearly identically. The primary effort is updating namespaces and the initialization method.
Choose your migration path based on where you are in the process:
📄 Read: references/getting-started.md
Start here if you:
Covers:
📄 Read: references/namespace-updates.md
Read this when you need to:
Covers:
📄 Read: references/method-migration.md
Use this when you need to:
ConfigureSyncfusionCore() to ConfigureSyncfusionToolkit()Covers:
📄 Read: references/migration-checklist.md
Use this as your:
Covers:
Here's how a typical XAML migration looks. The component usage itself doesn't change—only the namespace:
XAML:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:button="clr-namespace:Syncfusion.Maui.Buttons;assembly=Syncfusion.Maui.Buttons">
<VerticalStackLayout>
<button:SfButton Text="Click Me" Clicked="OnButtonClicked" />
</VerticalStackLayout>
</ContentPage>C# (MauiProgram.cs):
using Syncfusion.Maui.Core.Hosting;
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts => fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"))
.ConfigureSyncfusionCore();
return builder.Build();C# (Code-Behind):
using Syncfusion.Maui.Buttons;
namespace MigrationApp;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void OnButtonClicked(object sender, EventArgs e)
{
DisplayAlert("Success", "Button clicked!", "OK");
}
}XAML:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:button="clr-namespace:Syncfusion.Maui.Toolkit.Buttons;assembly=Syncfusion.Maui.Toolkit">
<VerticalStackLayout>
<button:SfButton Text="Click Me" Clicked="OnButtonClicked" />
</VerticalStackLayout>
</ContentPage>C# (MauiProgram.cs):
using Syncfusion.Maui.Toolkit.Hosting;
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts => fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"))
.ConfigureSyncfusionToolkit();
return builder.Build();C# (Code-Behind):
using Syncfusion.Maui.Toolkit.Buttons;
namespace MigrationApp;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void OnButtonClicked(object sender, EventArgs e)
{
DisplayAlert("Success", "Button clicked!", "OK");
}
}Summary of Changes:
Syncfusion.Maui.Buttons → Syncfusion.Maui.Toolkit.ButtonsSyncfusion.Maui.Buttons → Syncfusion.Maui.ToolkitSyncfusion.Maui.Buttons → Syncfusion.Maui.Toolkit.ButtonsConfigureSyncfusionCore() → ConfigureSyncfusionToolkit()Syncfusion.Maui.Core.Hosting → Syncfusion.Maui.Toolkit.HostingSfButton behavior is identicalWhen your page uses multiple Syncfusion® components, update all namespace declarations:
Before:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:button="clr-namespace:Syncfusion.Maui.Buttons;assembly=Syncfusion.Maui.Buttons"
xmlns:calendar="clr-namespace:Syncfusion.Maui.Calendar;assembly=Syncfusion.Maui.Calendar"
xmlns:cards="clr-namespace:Syncfusion.Maui.Cards;assembly=Syncfusion.Maui.Cards">After:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:button="clr-namespace:Syncfusion.Maui.Toolkit.Buttons;assembly=Syncfusion.Maui.Toolkit"
xmlns:calendar="clr-namespace:Syncfusion.Maui.Toolkit.Calendar;assembly=Syncfusion.Maui.Toolkit"
xmlns:cards="clr-namespace:Syncfusion.Maui.Toolkit.Cards;assembly=Syncfusion.Maui.Toolkit">When using components in code-behind, update all using statements:
Before:
using Syncfusion.Maui.Buttons;
using Syncfusion.Maui.Calendar;
using Syncfusion.Maui.Cards;
namespace MyApp;
public partial class ComplexPage : ContentPage
{
public ComplexPage()
{
InitializeComponent();
var button = new SfButton { Text = "Dynamic" };
var calendar = new SfCalendar();
}
}After:
using Syncfusion.Maui.Toolkit.Buttons;
using Syncfusion.Maui.Toolkit.Calendar;
using Syncfusion.Maui.Toolkit.Cards;
namespace MyApp;
public partial class ComplexPage : ContentPage
{
public ComplexPage()
{
InitializeComponent();
var button = new SfButton { Text = "Dynamic" };
var calendar = new SfCalendar();
}
}When using components conditionally or in view models, ensure all namespace declarations are updated:
Before:
using Syncfusion.Maui.Buttons;
namespace MyApp.ViewModels;
public class ButtonViewModel
{
public SfButton CreateButton()
{
return new SfButton
{
Text = "Action",
BackgroundColor = Colors.Blue
};
}
}After:
using Syncfusion.Maui.Toolkit.Buttons;
namespace MyApp.ViewModels;
public class ButtonViewModel
{
public SfButton CreateButton()
{
return new SfButton
{
Text = "Action",
BackgroundColor = Colors.Blue
};
}
}All changes center around namespaces. Component APIs, properties, and event signatures remain virtually identical.
Instead of installing individual component packages (Syncfusion.Maui.Buttons, Syncfusion.Maui.Calendar, etc.), you install the single Syncfusion.Maui.Toolkit NuGet package.
Existing code logic and implementation patterns require no changes. Only namespace declarations and assembly references are updated.
Update MauiProgram.cs once at application startup. All components then use the new toolkit automatically.
Component functionality, properties, events, and behaviors are fully preserved. No feature changes required.
Next Steps:
Good luck with your migration! The process is straightforward, and most developers complete it in 30-60 minutes depending on project size.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.