CodeShot

Xamarin.Forms در مقابل Xamarin Native (iOS/Android)

Xamarin.Forms یک لایه انتزاعی مشترک روی Xamarin است که با یک کدبیس XAML/C# واحد، UI برای iOS و Android تولید می‌کند؛ Xamarin Native (Xamarin.iOS و Xamarin.Android) به توسعه‌دهنده اجازه می‌دهد مستقیماً و جداگانه با API های بومی هر پلتفرم در C# کار کند و کنترل و کارایی کامل بومی داشته باشد.

ویژگیXamarin.FormsXamarin Native (iOS/Android)
کدبیس UIمشترک بین iOS/Androidجداگانه برای هر پلتفرم
کارایی و دسترسی بومیخوب ولی با یک لایه انتزاعکامل و مستقیم
سرعت توسعهسریع‌ترکندتر (دو برابر کار UI)
وضعیت پشتیبانی فعلیمیراث (Legacy)میراث (Legacy) — هر دو با .NET MAUI جایگزین شده‌اند

کِی از Xamarin.Forms استفاده کنیم؟

برای پوشش سریع هر دو پلتفرم با یک کدبیس مشترک UI در پروژه‌هایی که تفاوت ظاهری زیادی بین iOS و Android نیاز ندارند، از Xamarin.Forms استفاده کنید.

کِی از Xamarin Native (iOS/Android) استفاده کنیم؟

وقتی نیاز به تجربه کاملاً بومی، کارایی حداکثری یا دسترسی مستقیم به جدیدترین API های هر پلتفرم دارید (و مایل به نوشتن UI جداگانه برای هر پلتفرم هستید)، از Xamarin Native استفاده کنید.

مثال Xamarin.Forms

<!-- Shared XAML across iOS and Android -->
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms">
    <Label Text="Hello, Xamarin.Forms!" HorizontalOptions="Center" />
</ContentPage>

مثال Xamarin Native (iOS/Android)

// Xamarin.Android - platform-specific native code
public class MainActivity : Activity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.activity_main);
    }
}

اشتباه رایج

توجه: هر دو مسیر امروز میراث محسوب می‌شوند و مایکروسافت مسیر رسمی جدید را .NET MAUI اعلام کرده؛ اشتباه رایج شروع پروژه جدید با Xamarin.Forms یا Xamarin Native به جای مهاجرت مستقیم به MAUI است که پشتیبانی بلندمدت‌تری دارد.

جمع‌بندی

کدبیس مشترک و سرعت توسعه → Xamarin.Forms؛ کنترل و کارایی کاملاً بومی → Xamarin Native — اما برای پروژه جدید، .NET MAUI جایگزین توصیه‌شده هر دو است.