Visual Studio:是什么以及如何开发移动应用程序

作者: IT Sectr 发布日期: 2026-02-12 阅读时间: 10 分钟

Visual Studio — 微软的集成开发环境,支持通过Xamarin和.NET MAUI创建移动应用程序。IDE包括C#/F#/VB.NET编辑器、调试器、性能分析器、XAML设计器、Android/iOS模拟器以及与Azure DevOps的集成。Microsoft.com上的Visual Studio — Community、Professional和Enterprise版本的入口。

要点

  • Visual Studio — 微软用于通过Xamarin和.NET MAUI进行跨平台移动开发的IDE
  • .NET MAUI — Xamarin.Forms的继承者,具有适用于Android、iOS、Windows和macOS的统一项目
  • XAML Hot Reload — 在运行的应用程序上实时更改UI而无需重新构建
  • iOS Remote Simulator — 通过连接Mac build host从Visual Studio启动iOS应用程序
  • IntelliCode — 基于上下文和最佳实践的C#自动补全AI助手

什么是Visual Studio?

Visual Studio — 微软的旗舰IDE,发布于1997年。对于移动开发,Visual Studio提供两个主要框架:Xamarin(旧版,支持至2028年)和.NET MAUI(当前版本,自2021年的.NET 6开始)。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的数据,32%使用.NET技术栈的移动开发者使用Visual Studio。

VS Mobile的关键特性:采用SDK风格(MSBuild)的.sln/.csproj格式项目、通过NuGet进行包管理、用于可视UI编辑的XAML Designer、IntelliCode(基于GPT-4的AI代码补全)、用于远程结对编程的Live Share。

.NET MAUI:架构与项目

.NET MAUI(Multi-platform App UI)— 微软用于从单一C#代码库创建原生UI的框架。与Xamarin.Forms不同,MAUI为所有平台使用单个项目(single project),而不是单独的Android/iOS项目。资源分布在Platforms/Android、Platforms/iOS、Platforms/Windows文件夹中。

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">
    <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>

MAUI中的MVVM和DI:框架包含内置DI容器(Microsoft.Extensions.DependencyInjection)、用于导航的Shell(TabBar、Flyout、Routing)以及用于生成INotifyPropertyChanged的CommunityToolkit.Mvvm。BindableLayout通过BindableLayout.ItemsSource支持对非ItemsView元素的数据绑定。

csharp
// MainPage.xaml.cs — 使用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)、生物识别、振动、拨打电话。API从共享的C#代码中调用 — MAUI自动将其转换为Android(Java/Kotlin绑定)和iOS(Objective-C/Swift绑定)。

Xamarin:旧版项目和Forms

Xamarin — .NET MAUI的前身,于2011年发布,2016年被微软收购。Xamarin使用独立的项目:Xamarin.Android(C# + Android绑定)、Xamarin.iOS(C# + iOS绑定)和Xamarin.Forms(通过XAML共享UI)。微软于2023年宣布Xamarin SDK已过时,但支持将持续到2028年5月。

从Xamarin迁移到MAUI — 通过.NET Upgrade Assistant实现的自动化过程。主要变化:SDK风格的.csproj替代旧风格、单一项目替代独立项目、Shell替代NavigationPage、WinUI替代UWP。微软为Xamarin.Forms → .NET MAUI提供迁移指南,包含分步说明和兼容性分析器。

Xamarin.Android vs Xamarin.iOS 在架构上有所不同:Xamarin.Android使用JNI Bridge调用Java代码,Xamarin.iOS则将C#预编译(AOT)为本机ARM。Xamarin.iOS不支持JIT — 由于Apple的限制,所有iOS应用程序都必须经过AOT编译。

XAML Designer和Hot Reload

Visual Studio中的XAML Designer — 可视化的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#代码隐藏,提供.NET Hot Reload(无需重启即可更改方法)。

Live Visual Tree — 正在运行的UI检查器:显示元素的层次结构、它们的属性和当前状态。与Hot Reload结合,Live Visual Tree允许在运行时更改元素属性并立即在设备屏幕上看到结果。

通过Mac build host构建iOS

在Visual Studio中进行iOS开发需要连接到Mac build host — 一台装有Xcode和Apple SDK的macOS计算机。Visual Studio通过SSH连接到Mac Agent,发送源代码,Mac编译iOS二进制文件并返回结果。没有Mac build host,即使在Visual Studio中编译iOS项目也是不可能的。

设置Mac build host:在macOS上安装Xcode和Visual Studio for Mac Agent,在系统设置中启用远程登录,在Visual Studio中通过Tools → iOS → Pair to Mac进行配对。对于云端构建,可以使用MacStadium或MacinCloud。Microsoft Azure Pipelines也支持macOS托管代理。

Visual Studio中的iOS模拟器在Mac上运行,并通过远程模拟器传输到Windows。Visual Studio 2025使用Mac上的Xcode 16模拟器直接在Windows桌面上显示iOS模拟器。

Visual Studio中的Android工具

Visual Studio中的Android SDK Manager管理Android SDK、构建工具、平台(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调试桥(ADB)可通过Developer PowerShell命令行使用。

Google Play Services通过NuGet连接(Xamarin.GooglePlayServices.*或MAUI.GooglePlayServices.*)。Visual Studio自动为Firebase和Maps配置Google Services JSON/XML。IntelliCode根据项目的.NET TFM建议正确的using指令和包版本。

常见问题

.NET MAUI与Xamarin.Forms有何不同?

.NET MAUI — Xamarin.Forms的进化版,具有单一项目、内置DI、Shell、WinUI支持和现代SDK风格的.csproj。Xamarin.Forms需要为每个平台单独创建项目,并且不原生支持Windows 11。MAUI由于.NET 8/10 SDK,编译速度也更快。

可以在Visual Studio中使用Kotlin/Swift代码吗?

可以,通过Native ReferencesBinding Projects。对于Android — Xamarin/MAUI绑定库(.jar → .dll)。对于iOS — .xcframework → 静态库绑定。Kotlin/Swift库被封装在C#代理类中。.NET MAUI通过Platforms/Android/*.java或Platforms/iOS/*.swift文件夹支持平台特定代码。

如何将Xamarin项目迁移到.NET MAUI?

在Visual Studio中使用.NET Upgrade Assistant:项目 → 升级。该工具转换.csproj、XAML命名空间(Xamarin.Forms → MAUI)、替换过时的API。对于独立的Xamarin.Android/iOS项目 — 首先合并到Xamarin.Forms,然后进行迁移。微软估计典型的中型项目迁移需要2-4周。

Visual Studio 2025是否支持watchOS和tvOS开发?

是的,.NET MAUI通过额外的目标框架名字对象(TFM)支持watchOS和tvOS。对于watchOS,需要在XAML中使用兼容watchOS的元素(WKInterfaceLabel等)进行标记,并且必须具有包含tvOS/watchOS SDK的Mac build host。

C#移动开发有哪些Visual Studio的替代方案?

主要替代方案:Visual Studio Code配合C# Dev Kit(轻量版,无XAML Designer)、JetBrains Rider(支持MAUI的跨平台IDE)、Rider + Unity(用于游戏)。Rider在macOS的.NET开发者中很受欢迎,因为Visual Studio for Mac已于2025年停止维护。

总结

  • Visual Studio 2025 — 微软IDE,配备.NET 10、IntelliCode和XAML Hot Reload,用于移动开发
  • .NET MAUI — 适用于Android、iOS、Windows、macOS的单一项目,支持Shell导航和DI
  • Xamarin — 旧版框架,使用独立项目,支持至2028年
  • Mac build host — 构建iOS必需,通过SSH连接到装有Xcode的macOS
  • XAML Hot Reload — 在正在运行的设备/模拟器上更改UI,无需重新编译
  • IntelliCode — 基于项目上下文和最佳实践的AI C#自动补全
  • Google Play + Firebase Services — 通过NuGet集成,自动配置

我们将开发一款交钥匙移动应用程序

IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。

讨论项目

另请阅读