.NET MAUI — یہ کیا ہے، فن تعمیر اور کراس پلیٹ فارم ڈیولپمنٹ

مصنف: IT Sectr اشاعت: 2026-05-01 مطالعے کا وقت: 8 منٹ

.NET MAUI C# اور XAML میں مقامی ایپلیکیشنز بنانے کے لیے ایک کراس پلیٹ فارم Microsoft فریم ورک ہے، جو 2022 میں .NET 6 کے ساتھ جاری کیا گیا تھا۔ Microsoft .NET MAUI Documentation, 2024 کے مطابق، MAUI iOS، Android، Windows، macOS اور Tizen کو سپورٹ کرتا ہے، انہیں مشترکہ کوڈ بیس کے ساتھ ایک ہی پروجیکٹ میں یکجا کرتا ہے۔ یہ فریم ورک Xamarin.Forms کا براہ راست جانشین ہے۔

اہم نکات

  • .NET MAUI — Xamarin.Forms کا جانشین، علیحدہ SDK کے بغیر .NET 6+ میں شامل
  • ایک متحد Single Project تین علیحدہ پلیٹ فارم پروجیکٹس کی جگہ لے لیتا ہے
  • XAML اور C# اعلانیہ UI تعمیر اور کاروباری منطق کے لیے استعمال ہوتے ہیں
  • Handlers نے پلیٹ فارم تجرید کے لیے Xamarin.Forms کے پرانے رینڈررز کی جگہ لے لی
  • 5 پلیٹ فارمز کے لیے سپورٹ: iOS، Android، Windows، macOS، Tizen

.NET MAUI کیا ہے

.NET MAUI (Multi-platform App UI) Xamarin.Forms کا ارتقاء ہے، جسے .NET 6+ کے لیے شروع سے دوبارہ بنایا گیا ہے۔ Xamarin.Forms کے برعکس، جسے ہر پلیٹ فارم کے لیے علیحدہ پروجیکٹس کی ضرورت تھی، MAUI مشترکہ .csproj فائل اور پلیٹ فارم فولڈرز Platforms/iOS، Platforms/Android، Platforms/Windows اور Platforms/MacCatalyst کے ساتھ ایک ہی ڈھانچہ استعمال کرتا ہے۔ پہلا مستحکم MAUI ریلیز مئی 2022 میں ہوا تھا۔

.NET MAUI اور اس کے پیشرو کے درمیان کلیدی فرق .NET 8 BCL (بیس کلاس لائبریری) کے ساتھ مکمل انضمام ہے۔ ڈیولپرز کو اضافی SDK کے بغیر براہ راست System.Text.Json، System.Net.Http، System.Linq، System.IO اور دیگر APIs تک رسائی ملتی ہے۔ Xamarin.Forms مشترکہ منطق کے لیے .NET Standard 2.0 استعمال کرتا تھا، جس نے نئی .NET پلیٹ فارم صلاحیتوں تک رسائی کو محدود کر دیا۔

Microsoft Build 2024 کے مطابق، .NET MAUI App Store اور Google Play میں 40,000+ ایپلیکیشنز میں استعمال ہوتا ہے۔ قابل ذکر پروجیکٹس میں UPS Mobile، The Weather Channel اور Siemens Teamcenter شامل ہیں۔ Microsoft نومبر 2024 کے لیے منصوبہ بند .NET 9 کے حصے کے طور پر MAUI کو فعال طور پر ترقی دے رہا ہے۔

.NET MAUI کی تاریخ اور ابتدا

.NET MAUI کا اعلان .NET اتحاد کی حکمت عملی کے حصے کے طور پر Microsoft Build 2020 میں کیا گیا تھا۔ Microsoft نے .NET Core، Mono اور .NET Framework کو ایک ہی .NET 5+ پلیٹ فارم میں ضم کر دیا۔ Xamarin.Forms MAUI کی بنیاد بن گیا، لیکن کوڈ بیس مکمل طور پر دوبارہ لکھا گیا: پرانے APIs کو ہٹا دیا گیا، رینڈررز کو Handlers سے بدل دیا گیا، DependencyService کو DI کنٹینر سے بدل دیا گیا۔

.NET MAUI 8 (نومبر 2023) نے Native AOT، بہتر CollectionView کارکردگی، Blazor Hybrid (MAUI ایپلیکیشن میں Blazor اجزاء کو سرایت کرنا) اور نئی فونٹ میپنگ کے لیے سپورٹ شامل کی۔ .NET MAUI 9 (2024) میں C# 12 سپورٹ، WinUI 3 اور macOS Sonoma کے ساتھ بہتر انضمام، اور تمام پلیٹ فارمز کے لیے ایک نیا Drag & Drop API شامل ہے۔

.NET MAUI اور Xamarin.Forms کے درمیان فرق

پہلا فرق ایک ہی ایپلیکیشن ہے۔ Xamarin.Forms میں iOS اور Android کو ایک حل میں دو علیحدہ پروجیکٹس کی ضرورت تھی۔ .NET MAUI میں پلیٹ فارم فولڈرز کے ساتھ ایک پروجیکٹ۔ یہ کوڈ نیویگیشن، انحصار کے انتظام اور CI/CD پائپ لائنز کو آسان بناتا ہے۔ .csproj فائل TargetFrameworks: net8.0-android، net8.0-ios، net8.0-maccatalyst کے ساتھ SDK طرز کا فارمیٹ استعمال کرتی ہے۔

دوسرا فرق رینڈررز کی بجائے Handlers استعمال کرنے والا رینڈرنگ فن تعمیر ہے۔ Xamarin.Forms میں ہر عنصر (Button، Label) کا اپنا Renderer کلاس تھا جو مقامی کنٹرول بناتا تھا۔ حسب ضرورت کے لیے Custom Renderer کی ضرورت تھی۔ MAUI میں Handler ایک ہلکی پھلکی شے ہے جو تجریدی عنصر کو مقامی کنٹرول سے نقشہ بناتی ہے اور کنٹرول کو دوبارہ بنائے بغیر خصوصیات کو اپ ڈیٹ کرنے کے لیے Property Mappers کو سپورٹ کرتی ہے۔

تیسرا فرق متحد DI کنٹینر Microsoft.Extensions.DependencyInjection ہے۔ Xamarin.Forms پلیٹ فارم کے نفاذ کو رجسٹر کرنے کے لیے DependencyService استعمال کرتا تھا۔ MAUI DI کو فریم ورک کور میں شامل کرتا ہے: خدمات MauiAppBuilder میں رجسٹر ہوتی ہیں، کنٹرولر کنسٹرکٹر کے ذریعے انحصار حاصل کرتے ہیں۔ یہ جانچ کو آسان بناتا ہے اور جدید .NET طریقوں پر عمل کرتا ہے۔

.NET MAUI کا فن تعمیر

.NET MAUI کا فن تعمیر ایک کثیر پرت ماڈل پر مبنی ہے۔ سب سے نیچے کی پرت .NET BCL اور Mono Runtime (Android) / CoreCLR (Windows) / NativeAOT (iOS) ہے۔ درمیانی پرت فریم ورک کور (Handlers، Layout، Graphics، Controls) کے ساتھ Microsoft.Maui.dll ہے۔ سب سے اوپر کی پرت XAML صفحات، ViewModel اور خدمات کے ساتھ ڈیولپر کی ایپلیکیشن ہے۔

Single Project اور Multi-Targeting

Single Project .NET MAUI کی ایک اہم ساختی خصوصیت ہے۔ تمام فائلیں تین اقسام میں تقسیم ہوتی ہیں: مشترکہ کوڈ (Shared)، پلیٹ فارم کوڈ (Platforms) اور وسائل (Resources)۔ .csproj میں Multi-targeting بتاتا ہے کہ ایپلیکیشن کن پلیٹ فارمز کے لیے بنائی گئی ہے۔ ہر پلیٹ فارم صرف اپنے Platforms فولڈر اور مشترکہ کوڈ کو کمپائل کرتا ہے۔

پلیٹ فارم کوڈ مشروط فولڈرز میں رکھا جاتا ہے۔ Platforms/Android میں MainActivity.cs، MainApplication.cs اور AndroidManifest.xml شامل ہیں۔ Platforms/iOS — AppDelegate.cs، Info.plist اور Entitlements.plist۔ Platforms/Windows — Package.appxmanifest اور App.xaml۔ مشروط کمپائلیشن کے لیے کوڈ #if ANDROID، #if IOS، #if WINDOWS، #if MACCATALYST ہدایات استعمال کرتا ہے۔

.NET MAUI میں XAML اور MVVM

XAML ایک اعلانیہ مارک اپ زبان ہے جو Xamarin.Forms اور WPF سے وراثت میں ملی ہے۔ .NET MAUI میں XAML صفحات (ContentPage)، لے آؤٹ (VerticalStackLayout، Grid، FlexLayout)، عناصر (Label، Entry، Button، Image) اور کنٹرولز (CollectionView، CarouselView) کو بیان کرنے کے لیے استعمال ہوتا ہے۔ XAML بلڈ وقت پر BAML فارمیٹ میں کمپائل ہوتا ہے۔

MVVM پیٹرن CommunityToolkit.Mvvm (Microsoft کی اوپن سورس لائبریری) کے ذریعے نافذ کیا جاتا ہے۔ [ObservableProperty] وصف INotifyPropertyChanged خصوصیات پیدا کرتا ہے، [RelayCommand] طریقوں سے کمانڈز بناتا ہے۔ CommunityToolkit.Mvvm 8.2 Source Generator جزوی کلاس ViewModel کو تبدیل کرتا ہے، بغیر Reflection کے ObservableObject پیدا کرتا ہے۔ یہ دستی نفاذ کے مقابلے میں Binding کو 30% تیز کرتا ہے۔

.NET MAUI ایپلیکیشن کی مثال

csharp
using Microsoft.Maui;
using Microsoft.Maui.Controls;

namespace MauiApp;

public class MainPage : ContentPage
{
    public MainPage()
    {
        Title = "MAUI App";
        
        Content = new VerticalStackLayout
        {
            Spacing = 12,
            Padding = new Thickness(16),
            Children =
            {
                new Label
                {
                    Text = "Hello, .NET MAUI!",
                    FontSize = 24,
                    FontAttributes = FontAttributes.Bold
                },
                new Button
                {
                    Text = "مجھ پر کلیک کریں",
                    BackgroundColor = Colors.Blue,
                    TextColor = Colors.White,
                    Command = new Command(async () =>
                        await DisplayAlert("ہیلو", "دنیا", "OK"))
                }
            }
        };
    }
}

پلیٹ فارمز اور سپورٹ

.NET MAUI 5 پلیٹ فارمز کو سپورٹ کرتا ہے: iOS 15.0+، Android 5.0 (API 21)+، Windows 10 1809+، macOS 12.0+ (MacCatalyst) اور Tizen 6.5+۔ ہر پلیٹ فارم کنٹرولز اور APIs کا اپنا سیٹ استعمال کرتا ہے۔ iOS Mac Catalyst کے ذریعے UIKit استعمال کرتا ہے، Android — Xamarin.Android کے ذریعے AndroidX، Windows — WinUI 3، macOS — Mac Catalyst کے ذریعے AppKit۔

iOS اور Android پر MAUI وہی رینڈرنگ میکانزم استعمال کرتا ہے جو Xamarin.Forms — مقامی UI کنٹرولز۔ تاہم، Handlers زیادہ لچکدار حسب ضرورت فراہم کرتے ہیں۔ iOS پر پلیٹ فارم کے لیے مخصوص Button کنفیگریشن کے لیے PlatformConfiguration.iOS کے ساتھ OnPlatform<Button> استعمال ہوتا ہے۔ Windows کے لیے MAUI WinUI 3 استعمال کرتا ہے — Fluent Design System سپورٹ کے ساتھ Microsoft سے ایک جدید UI فریم ورک۔

macOS سپورٹ Mac Catalyst کے ذریعے شامل کی گئی — Apple کی ٹیکنالوجی جو Mac پر UIKit ایپلیکیشنز چلاتی ہے۔ یہ ایپلیکیشن کے macOS ورژن کے لیے MAUI iOS کوڈ کا 100% دوبارہ استعمال کرنے کی اجازت دیتا ہے۔ مخصوص Mac خصوصیات (Menu Bar، Touch Bar) کے لیے MAUI Mac Catalyst اور NSView ریپرز کے ذریعے پلیٹ فارم APIs فراہم کرتا ہے۔

Tizen Samsung کا Smart TV، اسمارٹ فونز اور اسمارٹ گھڑیوں کے لیے پلیٹ فارم ہے۔ .NET MAUI میں Tizen سپورٹ Samsung Tizen .NET کے ذریعے نافذ کی گئی ہے۔ MAUI ایپلیکیشنز Samsung TizenFX بائنڈنگز کے ذریعے Tizen کے لیے کمپائل ہوتی ہیں۔ تاہم، Tizen Microsoft کے لیے ترجیحی پلیٹ فارم نہیں ہے — اس کے لیے اپ ڈیٹس 1–2 ماہ کی تاخیر سے جاری ہوتے ہیں۔

پلیٹ فارمکم از کم ورژنUI فریم ورکحیثیت
iOSiOS 15.0UIKit (Mac Catalyst)مستحکم
AndroidAPI 21 (5.0)AndroidX / Material 3مستحکم
WindowsWin 10 1809WinUI 3 / Fluent Designمستحکم
macOSmacOS 12.0AppKit (Mac Catalyst)مستحکم
TizenTizen 6.5TizenFX / Samsungاضافی

.NET MAUI کے فوائد

متحد کوڈ بیس — .NET MAUI کوڈ کی نقل کو کم کرتا ہے۔ C# اور XAML میں ایک پروجیکٹ 5 پلیٹ فارمز کے لیے کمپائل ہوتا ہے، سادہ UI والی ایپلیکیشنز کے لیے 95% تک مشترکہ کوڈ فراہم کرتا ہے۔ کاروباری منطق، خدمات، ڈیٹا ماڈلز اور HTTP کلائنٹس مشترکہ کوڈ میں ہیں۔ صرف پلیٹ فارم کے لیے مخصوص خصوصیات (کیمرہ، جغرافیائی محل وقوع، بائیو میٹرکس) کو DI کے ذریعے علیحدہ نفاذ کی ضرورت ہوتی ہے۔

کارکردگی .NET MAUI کی Xamarin.Forms سے زیادہ ہے۔ Handlers رینڈرنگ کے اضافی بوجھ کو کم کرتے ہیں: Microsoft کے ٹیسٹ Xamarin.Forms 5.0 کے مقابلے میں اسکرین رینڈرنگ کے وقت میں 20–30% کمی ظاہر کرتے ہیں۔ iOS پر Native AOT C# کوڈ کو براہ راست ARM64 ہدایات میں کمپائل کرتا ہے، JIT کمپائلیشن کو ختم کرتا ہے اور شروع ہونے کے وقت کو 40% کم کرتا ہے۔

Blazor Hybrid .NET MAUI کی ایک منفرد صلاحیت ہے۔ BlazorWebView MAUI ایپلیکیشن میں براہ راست Blazor اجزاء کو سرایت کرتا ہے۔ ویب انٹرفیس ڈیولپر موبائل ایپلیکیشن میں Blazor اجزاء (Razor صفحات، JS انٹرآپ، CSS اسٹائلز) کو دوبارہ استعمال کر سکتے ہیں۔ Blazor Hybrid Blazor اجزاء کے کوڈ کو تبدیل کیے بغیر تمام 5 MAUI پلیٹ فارمز پر کام کرتا ہے۔

.NET ایکو سسٹم — ہزاروں NuGet پیکجز تک رسائی: ڈیٹا بیس آپریشنز کے لیے Entity Framework Core، لاگنگ کے لیے Serilog، HTTP درخواستوں کو دوبارہ آزمانے کے لیے Polly، توثیق کے لیے FluentValidation۔ CommunityToolkit.Maui ریڈی میڈ UI عناصر فراہم کرتا ہے: Popup، Toast، Snackbar، رسائی کے لیے SemanticScreenReader۔ .NET MAUI Azure، SignalR اور Microsoft Graph SDK کے ساتھ ضم ہوتا ہے۔

ڈیولپمنٹ ٹولز — Visual Studio 2022 اور JetBrains کا Rider۔ XAML Hot Reload ایپلیکیشن کو دوبارہ شروع کیے بغیر 1–2 سیکنڈ میں UI کو اپ ڈیٹ کرتا ہے۔ C# Hot Reload (.NET 6+ سے) عمل کو دوبارہ شروع کیے بغیر کسی طریقہ کار کی تبدیلی کو دوبارہ کمپائل کرتا ہے۔ Visual Studio Debugger، Profiler اور IntelliCode کارکردگی کی تشخیص اور کوڈ کے معیار کے لیے ٹول کٹ کو مکمل کرتے ہیں۔

اکثر پوچھے گئے سوالات

.NET MAUI کیا ہے؟

.NET MAUI iOS، Android، Windows، macOS اور Tizen کے لیے C# اور XAML میں مقامی ایپلیکیشنز بنانے کے لیے Microsoft کا ایک کراس پلیٹ فارم فریم ورک ہے۔ یہ Xamarin.Forms کا جانشین ہے، .NET 6+ میں شامل ہے اور ہر پلیٹ فارم کے لیے علیحدہ پروجیکٹس کی بجائے ایک ہی پروجیکٹ (Single Project) استعمال کرتا ہے۔

.NET MAUI Xamarin.Forms سے کیسے مختلف ہے؟

.NET MAUI ایک ہی پروجیکٹ، رینڈررز کی بجائے Handlers، بلٹ ان DI کنٹینر، iOS کے لیے Native AOT اور Blazor Hybrid استعمال کرتا ہے۔ Xamarin.Forms کو ہر پلیٹ فارم کے لیے علیحدہ پروجیکٹس کی ضرورت ہوتی ہے، UI حسب ضرورت کے لیے Custom Renderer، DI کے لیے DependencyService استعمال کرتا ہے اور Blazor کو سپورٹ نہیں کرتا۔ .NET MAUI .NET کا حصہ ہے، Xamarin.Forms علیحدہ SDK ہے۔

کیا .NET MAUI macOS کو سپورٹ کرتا ہے؟

ہاں، .NET MAUI Mac Catalyst (کم از کم ورژن macOS 12.0) کے ذریعے macOS کو سپورٹ کرتا ہے۔ MAUI پر iOS ایپلیکیشنز کوڈ میں تبدیلی کے بغیر خود بخود Mac کے لیے کمپائل ہو جاتی ہیں۔ مقامی Mac خصوصیات (Menu Bar، Dock، Touch ID) کے لیے Platforms/MacCatalyst فولڈر میں Mac Catalyst اور NSView ریپرز کے ذریعے پلیٹ فارم کالز استعمال ہوتی ہیں۔

کیا .NET MAUI میں Flutter پیکجز استعمال کیے جا سکتے ہیں؟

نہیں، .NET MAUI Dart/Flutter پیکجز کے ساتھ مطابقت نہیں رکھتا۔ MAUI .NET ایکو سسٹم اور NuGet پیکجز استعمال کرتا ہے۔ پلیٹ فارم کے لیے مخصوص خصوصیات (کیمرہ، Bluetooth، بائیو میٹرکس) کے لیے Android Bindings (Kotlin/Java) اور iOS Bindings (Objective-C/Swift) کے ذریعے مقامی لائبریریاں استعمال ہوتی ہیں۔ CommunityToolkit.Maui عام منظرناموں کے لیے ریڈی میڈ ریپر فراہم کرتا ہے۔

کیا .NET MAUI مقامی ایپلیکیشن سے سست ہے؟

کارکردگی میں فرق کم سے کم ہے۔ iOS پر Handlers اور Native AOT کے ساتھ .NET MAUI مقامی SwiftUI ایپلیکیشن کی کارکردگی کا 95–98% حاصل کرتا ہے۔ Android پر، UI رینڈرنگ ٹیسٹ (Microsoft Benchmarks، 2024) میں Kotlin ایپلیکیشن کے ساتھ فرق 3–7% ہے۔ زیادہ تر کاروباری ایپلیکیشنز کے لیے فرق صارف کے لیے ناقابل توجہ ہے۔

خلاصہ

  • .NET MAUI — C# اور XAML میں کراس پلیٹ فارم Microsoft فریم ورک، Xamarin.Forms کا جانشین
  • Single Project ملٹی ٹارگٹنگ کے ساتھ 3 علیحدہ پروجیکٹس کو ایک کنفیگریشن سے بدل دیتا ہے
  • Handlers Xamarin.Forms رینڈررز سے تیز رینڈرنگ فراہم کرتے ہیں
  • Blazor Hybrid براہ راست موبائل ایپلیکیشن میں ویب اجزاء کو سرایت کرنے کی اجازت دیتا ہے
  • 5 پلیٹ فارمز — iOS 15+، Android 5.0+، Windows 10، macOS 12+، Tizen 6.5+
  • iOS پر Native AOT شروع ہونے کے وقت کو 40% اور بائنری سائز کو کم کرتا ہے
  • کراس پلیٹ فارم صلاحیتوں اور مقامی APIs تک رسائی کی ضرورت والے .NET پروجیکٹس کے لیے .NET MAUI منتخب کریں

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں