AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Maui Current Apis

skill-davidortinau-maui-skills-maui-current-apis · by davidortinau

>

No reviews yet
0 installs
17 views
0.0% view→install

Install

$ agentstack add skill-davidortinau-maui-skills-maui-current-apis

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-davidortinau-maui-skills-maui-current-apis)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Maui Current Apis? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

.NET MAUI Current APIs — Guardrail Skill

This skill prevents you from generating code that uses deprecated, obsolete, or removed APIs. Read this before writing any .NET MAUI, Blazor Hybrid, or MauiReactor code.

Reasoning Framework

Follow these steps before generating any MAUI-related code:

Step 1 — Detect the Target Framework

Read the project's .csproj file and find ` or `:


net10.0-android

net10.0-android;net10.0-ios;net10.0-maccatalyst;net10.0-windows10.0.19041.0

The version number (net10.0, net9.0, net8.0) determines which APIs are available. Always target the version in the project file — never assume a version.

Step 2 — Detect Library Versions

Scan ` entries and ` for key packages:

| Package | What it tells you | |---------|-------------------| | Microsoft.Maui.Controls | MAUI version (if explicit) | | CommunityToolkit.Maui | Toolkit version — APIs change between major versions | | CommunityToolkit.Mvvm | MVVM Toolkit version — needed for WeakReferenceMessenger | | Reactor.Maui | MauiReactor version — v3+ has different APIs than v2 | | Microsoft.AspNetCore.Components.WebView.Maui | Blazor Hybrid version |

If no explicit MAUI package version is listed, the MAUI SDK version matches the `` .NET version.

Step 3 — Verify API Currency

Before using any API, ask yourself:

  1. Does this API exist in the detected version? If you're unsure, prefer the newer pattern.
  2. Is this a Xamarin.Forms API? MAUI is a different API surface — never assume Xamarin.Forms compatibility.
  3. Is this in the deprecated table below? If so, use the replacement.
  4. Am I using the Compatibility namespace? Microsoft.Maui.Controls.Compatibility.* types are migration aids, not recommended for new code.

Step 4 — Apply Decision Rules

  • Always use the newest form of an API when both old and new exist.
  • Never generate using Xamarin.Forms or using Xamarin.Essentials — these are not MAUI.
  • Never use the Compatibility namespace in new projects (Compatibility.RelativeLayout, Compatibility.StackLayout, etc.).
  • Prefer async method names when both sync-named and async-named versions exist (e.g., DisplayAlertAsync over DisplayAlert).
  • Check the project's NuGet versions before using CommunityToolkit or third-party APIs.

Deprecated API Table — .NET MAUI 10

Controls

| ❌ Deprecated / Removed | ✅ Use Instead | Notes | |--------------------------|----------------|-------| | ListView | CollectionView | ListView, EntryCell, ImageCell, SwitchCell, TextCell, ViewCell, and Cell are all deprecated in .NET 10 | | TableView | CollectionView or custom layout | Deprecated in .NET 10 | | Frame | Border | Frame is a Xamarin.Forms legacy control; Border is the MAUI replacement with StrokeShape support | | Compatibility.RelativeLayout | Grid | Migration-only; removed from templates in .NET 10 | | Compatibility.StackLayout | VerticalStackLayout / HorizontalStackLayout | The compatibility StackLayout wraps Xamarin layout logic. Use the native MAUI stack layouts for better performance |

Gestures & Input

| ❌ Deprecated / Removed | ✅ Use Instead | Notes | |--------------------------|----------------|-------| | ClickGestureRecognizer | TapGestureRecognizer | Removed in .NET 10 | | Accelerator | KeyboardAccelerator | Removed from Microsoft.Maui.Controls in .NET 10 |

Page & Navigation

| ❌ Deprecated / Removed | ✅ Use Instead | Notes | |--------------------------|----------------|-------| | Page.IsBusy | ActivityIndicator | IsBusy is obsolete in .NET 10; use an explicit activity indicator | | DisplayAlert() | DisplayAlertAsync() | Sync-named versions deprecated; use async versions | | DisplayActionSheet() | DisplayActionSheetAsync() | Same as above | | MessagingCenter | WeakReferenceMessenger (CommunityToolkit.Mvvm) | Made internal in .NET 10 |

Animation

| ❌ Deprecated / Removed | ✅ Use Instead | Notes | |--------------------------|----------------|-------| | FadeTo() | FadeToAsync() | All animation extension methods renamed to *Async in .NET 10 | | RotateTo(), ScaleTo(), TranslateTo(), etc. | RotateToAsync(), ScaleToAsync(), TranslateToAsync(), etc. | Same pattern — RelRotateToRelRotateToAsync, RelScaleToRelScaleToAsync, LayoutToLayoutToAsync |

Device & Platform APIs

| ❌ Deprecated / Removed | ✅ Use Instead | Notes | |--------------------------|----------------|-------| | Device.RuntimePlatform | DeviceInfo.Platform | The entire Device class is deprecated | | Device.BeginInvokeOnMainThread() | Dispatcher.Dispatch() | Use the view's or app's Dispatcher property | | Device.InvokeOnMainThreadAsync() | Dispatcher.DispatchAsync() | Same | | Device.OpenUri() | Launcher.OpenAsync() | Use Microsoft.Maui.ApplicationModel.Launcher | | Device.StartTimer() | Dispatcher.StartTimer() or PeriodicTimer | Use the dispatcher or standard .NET timer | | DependencyService | Constructor injection via IServiceProvider | Register services in MauiProgram.cs with builder.Services |

XAML & Markup

| ❌ Deprecated / Removed | ✅ Use Instead | Notes | |--------------------------|----------------|-------| | FontImageExtension (XAML markup extension) | FontImageSource (type) | Use ` element or property syntax | | Color.FromHex() | Color.FromArgb() | FromHex` is obsolete |

Safe Area & Layout

| ❌ Deprecated / Removed | ✅ Use Instead | Notes | |--------------------------|----------------|-------| | Page.UseSafeArea (iOS platform-specific) | SafeAreaEdges property | New in .NET 10; ContentPage defaults to None (edge-to-edge) on all platforms | | Layout.IgnoreSafeArea | SafeAreaEdges property | Use the unified safe area API |

Accessibility

| ❌ Deprecated / Removed | ✅ Use Instead | Notes | |--------------------------|----------------|-------| | AutomationProperties.Name | SemanticProperties.Description | AutomationProperties still works but SemanticProperties is the MAUI-native approach | | AutomationProperties.HelpText | SemanticProperties.Hint | Same | | iOS SetAccessibilityHint / SetAccessibilityLabel (Compatibility extensions) | Microsoft.Maui.Platform.UpdateSemantics() | Deprecated in .NET 10 |

NuGet Packages

| ❌ Deprecated Package | ✅ Use Instead | Notes | |------------------------|----------------|-------| | Xamarin.Forms | Microsoft.Maui.Controls | Completely different API surface | | Xamarin.Essentials | Built-in MAUI APIs (Microsoft.Maui.Devices, Microsoft.Maui.ApplicationModel, etc.) | Essentials is merged into MAUI | | Xamarin.CommunityToolkit | CommunityToolkit.Maui | Different namespace and API surface | | Microsoft.Toolkit.Mvvm | CommunityToolkit.Mvvm | Package was renamed |


MauiReactor-Specific Guidance

MauiReactor v3+ (for .NET MAUI 9/10):

  • Hot reload: v3+ uses a feature switch in .csproj via `. Do NOT use the v2 EnableMauiReactorHotReload() call in MauiProgram.cs`.
  • API wrappers: MauiReactor auto-generates C# wrappers around MAUI controls. When a MAUI control is deprecated (e.g., ListView), the MauiReactor wrapper is also effectively deprecated. Use the MauiReactor wrapper for the replacement control (e.g., CollectionView).
  • State management: Use State and Props — not older RxComponent patterns if they appear in outdated examples.
  • Navigation: Use MauiReactor's built-in navigation (Navigation.PushAsync()) — do NOT mix in MAUI Shell GoToAsync unless deliberately integrating Shell.

Blazor Hybrid-Specific Guidance

  • Use BlazorWebView — not the legacy WebView — for hosting Razor components.
  • Use .NET 10 Razor syntax: @rendermode directives, [SupplyParameterFromQuery], and the latest component model.
  • JS interop: Use IJSRuntime.InvokeAsync() — not the obsolete synchronous IJSInProcessRuntime patterns for mobile.
  • Safe areas: In Blazor Hybrid, use CSS env(safe-area-inset-*) — do NOT combine XAML SafeAreaEdges and CSS safe area padding on the same element (causes double-padding).
  • Web resource interception: .NET 10 adds WebResourceRequested event on BlazorWebView and HybridWebView for intercepting requests.

Version Detection Cheat Sheet

Reading the TFM

| TFM Pattern | .NET Version | |-------------|-------------| | net10.0-* | .NET 10 (latest, current) | | net9.0-* | .NET 9 | | net8.0-* | .NET 8 (LTS) |

Reading MAUI SDK Version

If the .csproj uses true, the MAUI version matches the TFM:

  • net10.0 → MAUI 10
  • net9.0 → MAUI 9

Reading MauiReactor Version

Check ``:

  • v3.x → .NET MAUI 9/10 compatible, uses feature-switch hot reload
  • v2.x → Legacy, uses EnableMauiReactorHotReload() builder pattern

Reading CommunityToolkit Version

Check ``:

  • v11+ → .NET 10 compatible
  • v9-10 → .NET 9 compatible
  • v5-7 → .NET 8 compatible

Quick Rules

  1. Read the .csproj first. Never generate code without knowing the target framework.
  2. When in doubt, use the newer API. If two ways exist to do something, the newer way is correct.
  3. Never use Xamarin.* namespaces. They do not exist in MAUI.
  4. Never use Compatibility.* types in new projects. They are migration aids only.
  5. Check this table before using any Device.* API. The Device class is fully deprecated.
  6. Use *Async method names for animations, alerts, and action sheets in .NET 10+.
  7. Verify third-party package versions before using their APIs — CommunityToolkit, MauiReactor, and others break between major versions.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.