C#: زبان کے کلیدی تصورات، .NET MAUI اور Xamarin ڈویلپمنٹ

مصنف: IT Sectr اشاعت: 2026-02-10 مطالعے کا وقت: 12 منٹ

C# مائیکروسافٹ کی ایک جدید آبجیکٹ اورینٹڈ پروگرامنگ زبان ہے، جو موبائل ڈویلپمنٹ میں Xamarin اور .NET MAUI پلیٹ فارمز کی بنیاد کے طور پر کام کرتی ہے۔ متحد .NET ایکو سسٹم کی بدولت، ڈویلپرز مشترکہ C# اور XAML کوڈ استعمال کرتے ہوئے iOS اور Android کے لیے موبائل ایپلیکیشنز بنا سکتے ہیں۔ TIOBE انڈیکس (2026) کے مطابق، C# تمام پروگرامنگ زبانوں میں مقبولیت میں چوتھے نمبر پر ہے۔ مزید جاننے کے لیے مائیکروسافٹ C# دستاویزات دیکھیں۔

اہم نکات

  • C# — .NET پلیٹ فارم کے لیے مائیکروسافٹ کی آبجیکٹ اورینٹڈ زبان
  • .NET MAUI — Xamarin کا جانشین، iOS، Android، Windows، macOS کے لیے واحد پروجیکٹ
  • XAML — اعلانیہ UI مارک اپ، تمام .NET پلیٹ فارمز پر مشترکہ
  • CLR — JIT/AOT کمپائلیشن اور کوڑا کرکٹ جمع کرنے کے ساتھ Common Language Runtime
  • LINQ — کلیکشنز اور ڈیٹا بیس کے ساتھ کام کرنے کے لیے Language Integrated Query

C# کیا ہے؟

C# (تلفظ "سی شارپ") ایک محفوظ قسم کے نظام کے ساتھ آبجیکٹ اورینٹڈ پروگرامنگ زبان ہے، جسے مائیکروسافٹ نے 2000 میں اینڈرز ہیلزبرگ کی قیادت میں تیار کیا تھا۔ یہ نام موسیقی کے اشارے (شارپ — سر بلند کرنا) سے متاثر ہے۔ C# .NET پلیٹ فارم پر چلتی ہے، جس میں Common Language Runtime (CLR) اور ایک وسیع کلاس لائبریری (BCL — Base Class Library) شامل ہے۔

موبائل ڈویلپمنٹ میں، C# دو ٹیکنالوجیز کے ذریعے استعمال ہوتی ہے: Xamarin (2011–2024) اور اس کا جانشین .NET MAUI (2022+)۔ Xamarin نے پلیٹ فارم کے مخصوص پروجیکٹس کو الگ کرتے ہوئے مشترکہ C# کوڈ کے ساتھ مقامی Android اور iOS ایپلیکیشنز بنانے کے قابل بنایا۔ .NET MAUI مشترکہ XAML مارک اپ اور پلیٹ فارم انٹرفیس کے ذریعے مقامی APIs تک رسائی کے ساتھ تمام پلیٹ فارمز کو ایک پروجیکٹ میں یکجا کرتا ہے۔

C# کی ایک اہم خصوصیت dynamic کے ذریعے متحرک ڈسپیچ، var کلیدی لفظ (قسم کا تخمینہ) اور ایک طاقتور جنریکس سسٹم کے ساتھ سخت جامد ٹائپنگ ہے۔ C# ایک مکمل طور پر منظم زبان ہے: میموری کوڑا کرکٹ جمع کرنے والے (GC) کے ذریعے منظم کی جاتی ہے، صفوں کی حدود چیک کی جاتی ہیں، غیر ابتدائی متغیرات ممنوع ہیں۔ یہ C# کو AOT کمپائلیشن کے ذریعے موازنہ کارکردگی کے ساتھ C++ سے زیادہ محفوظ بناتا ہے۔

C# ورژن اور ارتقاء

C# 1.0 (2000) — بنیادی OOP زبان۔ C# 3.0 (2007) — LINQ، لیمبڈا ایکسپریشنز، ایکسٹینشن میتھڈز۔ C# 6.0 (2015) — سٹرنگ انٹرپولیشن، null-conditional آپریٹر۔ C# 8.0 (2019) — nullable reference types (نل سیفٹی فعال)، async streams، ڈیفالٹ انٹرفیس میتھڈز۔ C# 10 (2021) — global usings، file-scoped namespaces، record struct۔ C# 12 (2023) — primary constructors، collection expressions، interceptors۔ ہر ورژن موبائل ڈویلپمنٹ سے متعلق بہتری لاتا ہے۔

C# ورژنسالاہم خصوصیتموبائل ڈویلپمنٹ کے لیے اہمیت
3.02007LINQ، لیمبڈاکلیکشنز اور ڈیٹا بیس کے ساتھ آسان کام
6.02015?. (null-conditional)، سٹرنگ انٹرپولیشنمحفوظ پراپرٹی تک رسائی، پڑھنے کے قابل سٹرنگز
8.02019Nullable reference types، async streamsنل سیفٹی، غیر ہم وقت ساز ڈیٹا سٹریمز
102021Record struct، global usingsویلیو ٹائپس، بوائلر پلیٹ میں کمی
122023Primary constructors، collection expressionsمختصر کلاس اور کلیکشن نوٹیشن

C# نحو: اقسام، کلاسیں اور LINQ

C# نحو C جیسی، سختی سے ٹائپ کی گئی ہے۔ پریمیٹیو سمیت ہر چیز ایک آبجیکٹ ہے (int, double, bool — یہ ValueType سے وراثت پانے والے سٹرکچر ہیں)۔ C# اقسام کو ویلیو ٹائپس (int, double, bool, struct, enum — سٹیک پر محفوظ) اور ریفرنس ٹائپس (string, class, interface, delegate, array, record — ہیپ پر محفوظ) میں تقسیم کرتی ہے۔ Nullable اقسام (int?) ویلیو ٹائپس کے لیے null کی اجازت دیتی ہیں۔

ڈیٹا کی اقسام اور کلاسیں

C# کلاسز (class)، سٹرکچرز (struct)، ریکارڈز (record)، انٹرفیسز (interface)، انیومریشنز (enum) اور ڈیلیگیٹس (delegate) کو سپورٹ کرتی ہے۔ record ایک ناقابل تبدیلی ریفرنس ٹائپ ہے جس میں ویلیو پر مبنی مساوات ہے (دو ریکارڈ برابر ہیں اگر ان کے تمام فیلڈز برابر ہوں)۔ record struct — C# 10 میں متعارف کرایا گیا record کا ویلیو ورژن ہے۔ primary constructors (C# 12) اعلان اور ابتدا کو ایک لائن میں یکجا کرتے ہیں۔

csharp
// C# میں بنیادی اقسام اور کلاسیں
using System;
using System.Collections.Generic;

// پرائمری کنسٹرکٹر کے ساتھ ریکارڈ (C# 12)
public record User(int Id, string Name, string Email);

// Nullable خصوصیات والی کلاس
public class AppConfig
{
    public string AppName { get; init; }
    public string? ApiUrl { get; set; } // nullable reference type
    public int Version { get; init; }

    // ایکسپریشن باڈی والا میتھڈ
    public string GetDisplayName() => $"{AppName} v{Version}";
}

// ایکسٹینشن میتھڈ
public static class StringExtensions
{
    public static bool IsValidEmail(this string email) =>
        email.Contains("@") && email.Contains(".");
}

// استعمال
var user = new User(1, "Alice", "alice@example.com");
bool validEmail = user.Email.IsValidEmail();

پرائمری کنسٹرکٹر کے ساتھ ریکارڈ User خود بخود equals، hashCode، ToString، Deconstruct اور with-کاپی تیار کرتا ہے۔ init-only سیٹرز (AppName) صرف انیشیلائزر میں ویلیو سیٹ کرنے کی اجازت دیتے ہیں۔ ایکسپریشن باڈی (=>) سادہ میتھڈز کے لیے مختصر نوٹیشن ہے۔ ایکسٹینشن میتھڈ IsValidEmail وراثت کے بغیر سٹرنگ میں میتھڈ شامل کرتی ہے۔

LINQ — Language Integrated Query

LINQ کلیکشنز، ڈیٹا بیسز، XML کے لیے ایک بلٹ ان استفساری زبان ہے۔ LINQ to Objects — IEnumerable کلیکشنز کے لیے استفسارات۔ LINQ to SQL — ڈیٹا بیسز کے لیے۔ LINQ to XML — XML کے لیے۔ نحو استفساری (from u in users where u.Age > 18 select u) اور میتھڈ (users.Where(u => u.Age > 18).Select(u => u)) ہو سکتا ہے۔ سست لوڈنگ (موخر عملدرآمد): استفسار اعلان پر نہیں، تکرار پر عمل ہوتا ہے۔

csharp
// کلیکشنز پر LINQ استفسارات
using System.Linq;

var users = new List<User>
{
    new User(1, "Alice", "alice@example.com"),
    new User(2, "Bob", "bob@test.com"),
    new User(3, "Charlie", "charlie@example.com"),
};

// استفساری نحو
var filteredUsers = from u in users
                     where u.Email.Contains("example")
                     orderby u.Name
                     select u;

// متعدد آپریشنز کے ساتھ میتھڈ نحو
var result = users
    .Where(u => u.Email.Contains("example"))
    .OrderBy(u => u.Name)
    .Select(u => new { u.Name, u.Email })
    .ToList();

// GroupBy اور ایگریگیشن
var emailsByDomain = users
    .GroupBy(u => u.Email.Split('@')[1])
    .Select(g => new { Domain = g.Key, Count = g.Count() });

// async سٹریم کے ساتھ LINQ (IAsyncEnumerable)
await foreach (var user in GetUsersAsync())
{
    Console.WriteLine(user.Name);
}

async IAsyncEnumerable<User> GetUsersAsync()
{
    yield return new User(1, "Alice", "alice@example.com");
    await Task.Delay(100);
    yield return new User(2, "Bob", "bob@test.com");
}

LINQ استفسار filteredUsers صارفین کو ای میل ڈومین کے مطابق فلٹر کرتا ہے اور نام کے مطابق ترتیب دیتا ہے۔ میتھڈ نحو .Where().OrderBy().Select() استفساری نحو کے مساوی میتھڈز کا سلسلہ ہے۔ GroupBy ای میل ڈومین کے مطابق گروپ کرتا ہے۔ IAsyncEnumerable (C# 8) IEnumerable کا غیر ہم وقت ساز ورژن ہے، موبائل ایپلیکیشنز میں سٹریمنگ ڈیٹا لوڈنگ کے لیے مفید۔

Xamarin اور .NET MAUI: فن تعمیر

Xamarin (2011–2024) C# میں کراس پلیٹ فارم موبائل ڈویلپمنٹ کے لیے مائیکروسافٹ کا پہلا پلیٹ فارم تھا۔ یہ Xamarin.Android (Linux کرنل پر Mono رن ٹائم) اور Xamarin.iOS (iOS پر JIT پابندی کی وجہ سے ARM64 میں AOT کمپائلیشن) پر مشتمل تھا۔ Xamarin.Forms XAML مارک اپ کے ساتھ ایک مشترکہ UI پرت تھی، جو عناصر کو مقامی (Android View / iOS UIView) میں ترجمہ کرتی تھی۔

.NET MAUI (.NET Multi-platform App UI) Xamarin کا جانشین ہے، جو 2022 میں جاری کیا گیا۔ ایک single .csproj پروجیکٹ، ایک XAML مارک اپ، ایک انٹری پوائنٹ۔ 5 پلیٹ فارمز کو سپورٹ کرتا ہے: iOS، Android، Windows (WinUI 3)، macOS (Mac Catalyst)، Tizen۔ .NET MAUI Renderer کی بجائے نئی Handler آرکیٹیکچر استعمال کرتا ہے: ہر XAML عنصر پلیٹ فارم ہینڈلر کے ذریعے مقامی کمپوننٹ پر میپ ہوتا ہے۔

xml
<!-- MainPage.xaml — .NET MAUI کا اعلانیہ UI -->
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MyApp.MainPage">

    <ScrollView>
        <VerticalStackLayout Padding="30" Spacing="25">
            <Label Text="Welcome to .NET MAUI!"
                   FontSize="32"
                   HorizontalOptions="Center"/>

            <Entry x:Name="NameEntry"
                   Placeholder="Enter your name"/>

            <Button Text="Submit"
                    Clicked="OnSubmitClicked"
                    BackgroundColor="#512BD4"
                    TextColor="White"
                    CornerRadius="8"/>

            <CollectionView x:Name="ItemsView"
                          SelectionMode="Single">
                <CollectionView.ItemTemplate>
                    <DataTemplate>
                        <Grid Padding="10">
                            <Label Text="{Binding Name}"
                                   FontSize="18"/>
                        </Grid>
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>
        </VerticalStackLayout>
    </ScrollView>
</ContentPage>

.NET MAUI XAML مارک اپ UI کو اعلانیہ طور پر بیان کرتا ہے۔ ScrollView — اسکرولنگ، VerticalStackLayout — عمودی ترتیب۔ Label، Entry (ٹیکسٹ ان پٹ)، Button — بنیادی عناصر۔ CollectionView — آئٹمز ظاہر کرنے کے لیے DataTemplate کے ساتھ ورچوئلائزڈ فہرست۔ Clicked ایونٹ MainPage.xaml.cs کوڈ بیہائنڈ میں OnSubmitClicked میتھڈ سے منسلک ہوتا ہے۔

csharp
// MainPage.xaml.cs — C# منطق کے ساتھ کوڈ بیہائنڈ
namespace MyApp;

public partial class MainPage : ContentPage
{
    private readonly List<User> _users = new();

    public MainPage()
    {
        InitializeComponent();
        LoadUsers();
    }

    private async void OnSubmitClicked(object? sender, EventArgs e)
    {
        var name = NameEntry.Text?.Trim();

        if (string.IsNullOrEmpty(name))
        {
            await DisplayAlert("Error", "Name is required", "OK");
            return;
        }

        _users.Add(new User(_users.Count + 1, name, $"{name}@example.com"));
        ItemsView.ItemsSource = null;
        ItemsView.ItemsSource = _users;
        NameEntry.Text = string.Empty;
    }

    private async void LoadUsers()
    {
        var apiService = new ApiService();
        var users = await apiService.GetUsersAsync();
        _users.AddRange(users);
        ItemsView.ItemsSource = _users;
    }
}

کوڈ بیہائنڈ MainPage ContentPage سے وراثت پاتا ہے۔ InitializeComponent() XAML مارک اپ لوڈ کرتا ہے۔ NameEntry.Text?.Trim() — محفوظ رسائی کے لیے null-conditional آپریٹر (?.)۔ DisplayAlert — مقامی ڈائیلاگ۔ ItemsView.ItemsSource — کلیکشن سے منسلک۔ غیر ہم وقت ساز لوڈنگ کے لیے async/await۔ پیچیدہ پروجیکٹس کے لیے MVVM (Model-View-ViewModel) پیٹرن تجویز کیا جاتا ہے۔

موبائل ڈویلپمنٹ میں C#

C# موبائل ڈویلپمنٹ تین طریقے پیش کرتی ہے: .NET MAUI (کراس پلیٹ فارم UI)، Xamarin (لیگیسی) اور Unity (گیمز)۔ نئے پروجیکٹس کے لیے .NET MAUI تجویز کردہ راستہ ہے۔ C# ایپلیکیشن Intermediate Language (IL) میں کمپائل ہوتی ہے، جسے NativeAOT (.NET MAUI) یا Mono (Xamarin) مقامی ARM کوڈ میں تبدیل کرتا ہے۔ iOS کو AOT کمپائلیشن کی ضرورت ہے — JIT Apple پالیسیوں کے تحت ممنوع ہے۔

مقامی APIs تک رسائی

.NET MAUI انٹرفیس کے ذریعے پلیٹ فارم کی صلاحیتوں کے ساتھ کام کرنے کے لیے متحد APIs فراہم کرتا ہے: IAccelerometer، IBarometer، IBattery، IConnectivity، IDeviceInfo، IFilePicker، IGeolocation، IMediaPicker، IPermissions، ISpeechRecognizer، IVibration۔ پلیٹ فارم کے مخصوص کوڈ کے لیے مشروط کمپائلیشن (#if ANDROID، #if IOS) یا جزوی کلاس استعمال ہوتی ہے۔

csharp
// DI کے ساتھ .NET MAUI میں جغرافیائی محل وقوع
public class LocationService
{
    private readonly IGeolocation _geolocation;

    public LocationService(IGeolocation geolocation)
    {
        _geolocation = geolocation;
    }

    public async Task<Location?> GetCurrentLocation()
    {
        try
        {
            var permission = await CheckAndRequestPermission();
            if (permission != PermissionStatus.Granted)
                return null;

            var location = await _geolocation.GetLastKnownLocationAsync();

            if (location == null)
            {
                location = await _geolocation.GetLocationAsync(new GeolocationRequest
                {
                    DesiredAccuracy = GeolocationAccuracy.Medium,
                    Timeout = TimeSpan.FromSeconds(10)
                });
            }

            return location;
        }
        catch (Exception ex)
        {
            Debug.WriteLine($"مقام کی خرابی: {ex.Message}");
            return null;
        }
    }

    private async Task<PermissionStatus> CheckAndRequestPermission()
    {
        var status = await Permissions.CheckStatusAsync<Permissions.LocationWhenInUse>();

        if (status != PermissionStatus.Granted)
        {
            status = await Permissions.RequestAsync<Permissions.LocationWhenInUse>();
        }

        return status;
    }
}

سروس LocationService DI (IGeolocation کا انحصار انجیکشن) استعمال کرتی ہے۔ CheckAndRequestPermission جغرافیائی محل وقوع کی اجازت چیک کرتی ہے اور درخواست کرتی ہے۔ GetLastKnownLocationAsync — تیز (ہمیشہ درست نہیں) جواب، GetLocationAsync — درستگی اور ٹائم آؤٹ پیرامیٹرز کے ساتھ درخواست۔ nullable reference types کے ساتھ null چیک (location == null)۔ try-catch پلیٹ فارم استثنیات کو ہینڈل کرتا ہے۔

موبائل پر C# کی کارکردگی

C# موبائل آلات پر Android پر Java/Kotlin اور iOS پر Swift کے برابر کارکردگی دکھاتی ہے۔ NativeAOT (.NET 8+) IL انٹرمیڈیٹ مرحلے کے بغیر C# کو براہ راست مقامی کوڈ میں کمپائل کرتا ہے — یہ اسٹارٹ اپ ٹائم 50% کم کرتا ہے اور میموری کی کھپت کو کم کرتا ہے۔ .NET MAUI میں GC مختصر توقف (Workstation GC) کے ساتھ موبائل پلیٹ فارمز کے لیے بہتر بنایا گیا ہے۔ APK کا سائز ~20-30 MB (NativeAOT کے ساتھ) ہے۔

پیرامیٹرXamarin.NET MAUI
فن تعمیرXamarin.Android + Xamarin.iOSواحد .csproj پروجیکٹ
UI رینڈرنگRenderer (Xamarin.Forms)Handler (.NET MAUI)
کمپائلیشنMono JIT (Android), AOT (iOS)NativeAOT (تمام پلیٹ فارمز)
حیثیتدیکھ بھال موڈفعال ترقی
پلیٹ فارمزAndroid, iOS, WindowsAndroid, iOS, Windows, macOS, Tizen

.NET پلیٹ فارم اور CLR

.NET پلیٹ فارم منظم کوڈ پر عملدرآمد کے لیے ایک ایکو سسٹم ہے، جس میں CLR (Common Language Runtime)، BCL (Base Class Library)، سرور ڈویلپمنٹ کے لیے ASP.NET Core اور موبائل ایپلیکیشنز کے لیے .NET MAUI شامل ہے۔ .NET 8+ تمام قسم کی ایپلیکیشنز کے لیے ایک متحد پلیٹ فارم ہے: موبائل، ڈیسک ٹاپ، ویب، کلاؤڈ، IoT، گیمز (Unity)۔

CLR ایک ورچوئل مشین ہے جو CIL (Common Intermediate Language) کوڈ پر عمل کرتی ہے۔ C#، VB.NET، F# CIL میں کمپائل ہوتی ہیں۔ CLR کا JIT کمپائلر پہلی میتھڈ کال پر CIL کو مشین کوڈ میں تبدیل کرتا ہے۔ NativeAOT (قبل از وقت کمپائلیشن) بلڈ ٹائم پر CIL کو مقامی کوڈ میں کمپائل کرتا ہے — موبائل پلیٹ فارمز کے لیے مثالی جہاں JIT محدود ہو سکتا ہے (iOS)۔

.NET کا کوڑا کرکٹ جمع کرنے والا GC نسلی (نسلیں 0, 1, 2) ہے، غیر استعمال شدہ آبجیکٹس کو خود بخود آزاد کرتا ہے۔ موبائل ایپلیکیشنز کے لیے کم سے کم توقف کے ساتھ Workstation GC تجویز کیا جاتا ہے۔ GC UI تھریڈ کو بلاک کیے بغیر، علیحدہ تھریڈ میں ہوتا ہے۔ Background GC انٹرایکٹو ایپلیکیشنز کے لیے توقف کو کم کرنے والا پس منظر جمع کرنے والا ہے۔

C# ڈویلپر ٹولز

C# ڈویلپر ٹولز میں Visual Studio، .NET SDK، dotnet CLI، NuGet، JetBrains Rider شامل ہیں۔ Visual Studio 2022 XAML ڈیزائنر، منظم اور مقامی کوڈ ڈیبگر، CPU/میموری پروفائلر کے ساتھ اہم IDE ہے۔ .NET SDK میں csc کمپائلر، dotnet CLI (dotnet new، dotnet build، dotnet publish، dotnet test) شامل ہے۔

NuGet .NET کا پیکیج مینیجر ہے، جو JS کے لیے npm کی طرح ہے۔ 300,000+ پیکیجز، جن میں CommunityToolkit.Maui (UI کمپوننٹس)، SQLite-net (ڈیٹا بیس)، Firebase Cloud Messaging، ZXing.Net.Maui (QR کوڈز) شامل ہیں۔ .NET MAUI Community Toolkit — ڈویلپمنٹ تیز کرنے کے لیے رویوں، کنورٹرز، اینی میشنز کا سیٹ۔ RestSharp اور Refit — HTTP کلائنٹس۔ Prism اور MVVM Community Toolkit — آرکیٹیکچرل فریم ورکس۔

xml
<!-- .csproj — .NET MAUI پروجیکٹ کنفیگریشن -->
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
    <OutputType>Exe</OutputType>
    <UseMaui>true</UseMaui>
    <ApplicationTitle>MyMAUIApp</ApplicationTitle>
    <ApplicationId>com.example.mymauiapp</ApplicationId>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="CommunityToolkit.Maui" Version="9.0.0" />
    <PackageReference Include="sqlite-net-pcl" Version="1.9.172" />
    <PackageReference Include="Refit" Version="7.0.0" />
  </ItemGroup>

</Project>

.csproj فائل .NET MAUI پروجیکٹ کنفیگریشن ہے۔ TargetFrameworks ہدف پلیٹ فارمز کی فہرست دیتا ہے۔ UseMaui MAUI SDK کو فعال کرتا ہے۔ PackageReference NuGet سے انحصار کی وضاحت کرتا ہے۔ CommunityToolkit.Maui UI کمپوننٹس (ٹوسٹ، اسنیک بار، Popup) فراہم کرتا ہے۔ sqlite-net-pcl ایک لوکل ڈیٹا بیس ہے۔ Refit انٹرفیس پر مبنی ٹائپ شدہ HTTP کلائنٹ ہے۔ dotnet build/publish تمام پلیٹ فارمز کے لیے ایپلیکیشن بناتا ہے۔

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

C# کیا ہے؟

C# مائیکروسافٹ (2000) کی آبجیکٹ اورینٹڈ پروگرامنگ زبان ہے، جو .NET پلیٹ فارم (CLR) پر چلتی ہے۔ Xamarin اور .NET MAUI کے ذریعے موبائل ڈویلپمنٹ کے لیے استعمال ہوتی ہے۔ سخت جامد ٹائپنگ، خودکار میموری مینجمنٹ (GC)، LINQ، async/await اور جنریکس کو یکجا کرتی ہے۔ TIOBE انڈیکس (2026) میں چوتھے نمبر پر ہے۔ اینڈرز ہیلزبرگ نے تیار کیا۔

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

Xamarin پیشرو (2011-2024) تھا، پروجیکٹس کو Xamarin.Android اور Xamarin.iOS میں تقسیم کرتا تھا۔ .NET MAUI (2022+) مشترکہ XAML مارک اپ، Renderer کی بجائے Handler آرکیٹیکچر اور 5 پلیٹ فارمز (iOS، Android، Windows، macOS، Tizen) کی سپورٹ کے ساتھ ایک single .csproj پروجیکٹ ہے۔ Xamarin دیکھ بھال موڈ میں چلا گیا ہے، نئے پروجیکٹ .NET MAUI پر بنائے جاتے ہیں۔ NativeAOT صرف .NET MAUI میں دستیاب ہے۔

C# موبائل پلیٹ فارمز پر کیسے کام کرتی ہے؟

C# CIL (Common Intermediate Language) میں کمپائل ہوتی ہے، جسے NativeAOT (.NET MAUI) یا Mono (Xamarin) مقامی ARM کوڈ میں تبدیل کرتا ہے۔ Android IL پر عملدرآمد کے لیے Mono رن ٹائم (Xamarin) یا NativeAOT (.NET MAUI) استعمال کرتا ہے۔ iOS کو AOT کمپائلیشن کی ضرورت ہے — JIT Apple کے ذریعے ممنوع ہے۔ .NET MAUI انٹرفیس کے ذریعے پلیٹ فارم نفاذ کے ساتھ کیمرہ، GPS، سینسرز کے لیے متحد APIs فراہم کرتا ہے۔

C# کون سی ڈیٹا اقسام کو سپورٹ کرتی ہے؟

C# اقسام کو ویلیو ٹائپس (int, double, bool, char, struct, enum — سٹیک) اور ریفرنس ٹائپس (string, class, interface, array, delegate, record — ہیپ) میں تقسیم کرتی ہے۔ Nullable اقسام (int?) ویلیو ٹائپس کے لیے null کی اجازت دیتی ہیں۔ record (C# 9) — ویلیو پر مبنی مساوات کے ساتھ ناقابل تبدیلی ریفرنس ٹائپ۔ record struct (C# 10) — ویلیو ورژن۔ dynamic — متحرک ٹائپنگ۔ var — کمپائلر ٹائپ تخمینہ۔

C# موبائل ڈویلپمنٹ کے لیے کون سے ٹولز استعمال ہوتے ہیں؟

Visual Studio 2022 (Windows) اور Visual Studio for Mac — XAML ڈیزائنر، ڈیبگر اور پروفائلر کے ساتھ اہم IDEs۔ .NET SDK — csc کمپائلر، dotnet CLI، MSBuild۔ NuGet — پیکیج مینیجر (300,000+)۔ CommunityToolkit.Maui — UI کمپوننٹس۔ JetBrains Rider — متبادل IDE۔ ٹیسٹنگ: xUnit, NUnit, Moq۔ CI/CD: Azure DevOps, GitHub Actions۔

خلاصہ

  • C# — GC، LINQ اور سخت ٹائپنگ کے ساتھ .NET پلیٹ فارم کے لیے مائیکروسافٹ کی آبجیکٹ اورینٹڈ زبان
  • .NET MAUI — واحد پروجیکٹ، Handler آرکیٹیکچر اور 5 پلیٹ فارمز کے ساتھ Xamarin کا جانشین
  • XAML — C# کوڈ بیہائنڈ کے ساتھ تمام پلیٹ فارمز پر مشترکہ اعلانیہ UI مارک اپ
  • LINQ — سست تشخیص کے ساتھ کلیکشنز، ڈیٹا بیسز اور XML کے لیے بلٹ ان استفساری زبان
  • NativeAOT — مقامی کوڈ میں قبل از وقت کمپائلیشن، اسٹارٹ اپ ٹائم 50% کم کرتا ہے
  • NuGet — .NET MAUI اور Xamarin کے لیے 300,000+ لائبریریوں کے ساتھ پیکیج مینیجر
  • Visual Studio اور dotnet CLI — تعمیر، جانچ اور اشاعت کے لیے اہم ٹولز

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

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

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

مزید پڑھیں