Visual Studio — محیط توسعه یکپارچه مایکروسافت که از ایجاد اپلیکیشنهای موبایل از طریق Xamarin و .NET MAUI پشتیبانی میکند. IDE شامل ویرایشگر C#/F#/VB.NET، دیباگر، پروفایلر، طراح XAML، شبیهسازهای Android/iOS و یکپارچگی با Azure DevOps است. Visual Studio در Microsoft.com — درگاه ویرایشهای Community، Professional و Enterprise.
نکات اصلی
Visual Studio — IDE پرچمدار مایکروسافت، منتشر شده در سال 1997. برای توسعه موبایل، Visual Studio دو فریمورک اصلی ارائه میدهد: Xamarin (قدیمی، پشتیبانی تا 2028) و .NET MAUI (فعلی، از .NET 6 در 2021). IDE در ویرایشهای Community (رایگان برای تیمهای کوچک)، Professional و Enterprise در دسترس است.
نسخه فعلی — Visual Studio 2025 (v18.0) با .NET 10 SDK. IDE از همه پلتفرمها پشتیبانی میکند: Android (شبیهساز + دستگاههای فیزیکی)، iOS (از طریق Mac build host)، Windows (دیباگ بومی)، macOS (از طریق Parallels یا Mac Agent). بر اساس Stack Overflow 2025، Visual Studio توسط 32% از توسعهدهندگان موبایل که با استک .NET کار میکنند استفاده میشود.
ویژگیهای کلیدی VS Mobile: پروژهها در قالب .sln/.csproj با سبک SDK (MSBuild)، مدیریت بستهها از طریق NuGet، XAML Designer برای ویرایش بصری UI، IntelliCode (تکمیل کد هوش مصنوعی مبتنی بر GPT-4)، Live Share برای توسعه از راه دور دونفره.
.NET MAUI (Multi-platform App UI) — فریمورک مایکروسافت برای ایجاد UIهای بومی از یک پایگاه کد C# واحد. برخلاف Xamarin.Forms، MAUI از یک پروژه واحد (single project) برای همه پلتفرمها استفاده میکند، نه پروژههای جداگانه Android/iOS. منابع در پوشههای Platforms/Android، Platforms/iOS، Platforms/Windows قرار میگیرند.
<!-- 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">
<VerticalStackLayout Spacing="12" Padding="16">
<Label Text="Hello, .NET MAUI!"
FontSize="24"
HorizontalOptions="Center" />
<Button Text="Load Data"
Clicked="OnLoadClicked"
BackgroundColor="#512BD4" />
<CollectionView x:Name="ItemsList" />
</VerticalStackLayout>
</ContentPage>MVVM و DI در MAUI: فریمورک شامل کانتینر DI داخلی (Microsoft.Extensions.DependencyInjection)، Shell برای ناوبری (TabBar، Flyout، Routing) و CommunityToolkit.Mvvm برای تولید INotifyPropertyChanged است. BindableLayout از اتصال داده به عناصر غیر ItemsView از طریق BindableLayout.ItemsSource پشتیبانی میکند.
// MainPage.xaml.cs — code-behind با DI
public partial class MainPage : ContentPage
{
private readonly IApiService _api;
public MainPage(IApiService api)
{
InitializeComponent();
_api = api;
}
private async void OnLoadClicked(object sender, EventArgs e)
{
var items = await _api.GetItemsAsync();
ItemsList.ItemsSource = items;
}
}Xamarin.Essentials → MAUI Essentials: دسترسی به APIهای بومی: موقعیتیابی جغرافیایی، شتابسنج، سیستم فایل، ذخیره امن (SecureStorage)، بیومتریک، لرزش، Make Phone Call. APIها از کد C# مشترک فراخوانی میشوند — MAUI خود آنها را به Android (Java/Kotlin bindings) و iOS (Objective-C/Swift bindings) ترجمه میکند.
Xamarin — predecessor .NET MAUI، منتشر شده در 2011 و خریداری شده توسط مایکروسافت در 2016. Xamarin از پروژههای جداگانه استفاده میکند: Xamarin.Android (C# + Android bindings)، Xamarin.iOS (C# + iOS bindings) و Xamarin.Forms (UI مشترک از طریق XAML). مایکروسافت Xamarin SDK را در 2023 منسوخ اعلام کرد، اما پشتیبانی تا مه 2028 ادامه دارد.
مهاجرت از Xamarin به MAUI — فرآیند خودکار از طریق .NET Upgrade Assistant. تغییرات اصلی: سبک SDK .csproj به جای old-style، پروژه واحد به جای جداگانه، Shell به جای NavigationPage، WinUI به جای UWP. مایکروسافت راهنمای مهاجرت برای Xamarin.Forms → .NET MAUI با دستورالعملهای گام به گام و آنالایزر سازگاری ارائه میدهد.
Xamarin.Android در مقابل Xamarin.iOS از نظر معماری متفاوت هستند: Xamarin.Android از JNI Bridge برای فراخوانی کد Java استفاده میکند، Xamarin.iOS — کامپایل Ahead-of-Time (AOT) C# به ARM بومی. Xamarin.iOS از JIT پشتیبانی نمیکند — همه اپلیکیشنهای iOS به دلیل محدودیتهای Apple کامپایل AOT میشوند.
XAML Designer در Visual Studio — ویرایشگر بصری رابطهای XAML با پنل Toolbox (کامپوننتها)، Properties (ویژگیهای عنصر انتخاب شده) و Document Outline (درخت عناصر). Designer از پیشنمایش Data Binding (d:DataContext برای دادههای زمان طراحی) و تمهای مختلف پشتیبانی میکند.
XAML Hot Reload — تغییر کد XAML بدون توقف اپلیکیشن. Hot Reload UI را روی شبیهساز یا دستگاه در حال اجرا در عرض یک ثانیه بهروزرسانی میکند. در Visual Studio 2025، Hot Reload از همه عناصر MAUI پشتیبانی میکند: ContentPage، ContentView، ResourceDictionary، Styles، DataTemplates. برای C# code-behind، .NET Hot Reload در دسترس است (تغییر متدها بدون راهاندازی مجدد).
Live Visual Tree — بازرس UI در حال اجرا: سلسله مراتب عناصر، ویژگیها و وضعیت فعلی را نشان میدهد. در ترکیب با Hot Reload، Live Visual Tree امکان تغییر ویژگیهای عناصر در زمان اجرا و دیدن نتیجه فوری روی صفحه دستگاه را فراهم میکند.
توسعه iOS در Visual Studio نیاز به اتصال به Mac build host — کامپیوتر macOS با Xcode و Apple SDK دارد. Visual Studio از طریق SSH به Mac Agent متصل میشود، کد منبع را ارسال میکند، Mac باینری iOS را کامپایل کرده و نتیجه را برمیگرداند. بدون Mac build host حتی کامپایل پروژههای iOS در Visual Studio غیرممکن است.
راهاندازی Mac build host: نصب Xcode و Visual Studio for Mac Agent روی macOS، فعال کردن Remote Login در System Settings، جفتسازی در Visual Studio از طریق Tools → iOS → Pair to Mac. برای ساخت ابری میتوان از MacStadium یا MacinCloud استفاده کرد. Microsoft Azure Pipelines نیز macOS hosted agents را پشتیبانی میکند.
iOS Simulator از Visual Studio روی Mac اجرا میشود و از طریق Remote Simulator به Windows منتقل میشود. Visual Studio 2025 از Xcode 16 Simulator روی Mac برای نمایش شبیهساز iOS مستقیماً روی دسکتاپ Windows استفاده میکند.
Android SDK Manager در Visual Studio نصب Android SDK، build-tools، پلتفرمها (API 34, 35, 36) و تصاویر سیستم شبیهساز را مدیریت میکند. Visual Studio هنگام اولین باز کردن پروژه Android به طور خودکار مؤلفههای لازم را دانلود میکند. به طور جایگزین میتوان از Android Studio SDK نصب شده استفاده کرد.
Android Emulator در Visual Studio تعبیه شده است: اجرای شبیهساز از منوی Debug → Start Without Debugging، انتخاب AVD از لیست، دیباگ با نقاط توقف، پروفایلینگ از طریق Android Profiler. Visual Studio از Hyper-V (Windows 11) و WSL2 برای تسریع شبیهسازی پشتیبانی میکند. Android Debug Bridge (ADB) از طریق خط فرمان Developer PowerShell در دسترس است.
Google Play Services از طریق NuGet متصل میشوند (Xamarin.GooglePlayServices.* یا MAUI.GooglePlayServices.*). Visual Studio به طور خودکار Google Services JSON/XML را برای Firebase و Maps پیکربندی میکند. IntelliCode دستورالعملهای using و نسخههای بسته صحیح را بر اساس .NET TFM پروژه شما پیشنهاد میدهد.
سوالات متداول
.NET MAUI — تکامل Xamarin.Forms با پروژه واحد (single project)، DI داخلی، Shell، پشتیبانی WinUI و سبک SDK مدرن .csproj. Xamarin.Forms برای هر پلتفرم به پروژههای جداگانه نیاز دارد و به طور بومی از Windows 11 پشتیبانی نمیکند. MAUI همچنین به لطف .NET 8/10 SDK سریعتر کامپایل میشود.
بله، از طریق Native References و Binding Projects. برای Android — Xamarin/MAUI Binding Library (.jar → .dll). برای iOS — .xcframework → Static Library Binding. کتابخانههای Kotlin/Swift در کلاسهای پروکسی C# پیچیده میشوند. .NET MAUI از کد خاص پلتفرم از طریق پوشه Platforms/Android/*.java یا Platforms/iOS/*.swift پشتیبانی میکند.
از .NET Upgrade Assistant در Visual Studio استفاده کنید: Project → Upgrade. ابزار .csproj، فضاهای نام XAML (Xamarin.Forms → MAUI) را تبدیل میکند و APIهای منسوخ را جایگزین میکند. برای پروژههای جداگانه Xamarin.Android/iOS — ابتدا در Xamarin.Forms ادغام کنید، سپس مهاجرت کنید. مایکروسافت مهاجرت معمولی را برای یک پروژه متوسط 2–4 هفته تخمین میزند.
بله، .NET MAUI از watchOS و tvOS از طریق Target Framework Monikers (TFM) اضافی پشتیبانی میکند. برای watchOS نیاز به نشانهگذاری در XAML با عناصر سازگار با watchOS (WKInterfaceLabel و غیره) و حضور اجباری Mac build host با tvOS/watchOS SDK در Xcode است.
جایگزینهای اصلی: Visual Studio Code با C# Dev Kit (نسخه سبک، بدون XAML Designer)، JetBrains Rider (IDE چندسکویی با پشتیبانی MAUI)، Rider + Unity (برای بازیها). Rider در میان توسعهدهندگان .NET روی macOS محبوب است زیرا Visual Studio for Mac در 2025 متوقف شد.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.