通过 Xamarin.Forms,可以使用面向 Android、iOS、Windows 等设备的 .NET 跨平台 UI 工具包,构建原生应用。

什么是 Xamarin.Forms?
Xamarin.Forms 是开源的跨平台 UI 框架。 开发者只需维护一套共享代码库,就能产出 Android、iOS、Windows 应用。 使用 XAML 编写界面 + C# 后台代码;界面运行时会被渲染成对应平台的原生控件,不是 WebView,拥有原生控件的外观与性能。
Xamarin.Forms 的适用对象
适合目标如下的开发者:
- 在多平台之间共享 UI 布局
- 跨平台复用业务逻辑、代码、单元测试
- 使用 Visual Studio + C# 开发移动端跨平台应用
适合业务类、表单类、工具类 App;如果需要极致定制复杂原生UI、重度动画游戏,一般推荐直接使用 Xamarin.iOS / Xamarin.Android。
Xamarin.Forms 的工作原理
- 提供一套统一抽象UI API,可以用 XAML 或 C# 编写,原生支持 MVVM、数据绑定。
- 平台渲染器(Renderer):运行时,把 Forms 的抽象控件,翻译成 Android、iOS、UWP 的原生控件。
- 项目结构:
- 共享项目/.NET Standard库:存放XAML页面、ViewModel、业务模型、服务(绝大部分代码)
- 各平台独立项目:平台入口、平台特有配置、原生专属代码/第三方SDK
- 底层依托 Xamarin 技术栈,让 .NET 代码在 iOS/Android 原生环境运行。
- 拥有庞大 NuGet 生态,可以快速扩展各类能力。

Xamarin.Essentials(配套核心库)
Xamarin.Essentials 提供设备原生能力的跨平台统一API,封装平台差异,不用写平台专属代码就能调用设备能力:
- 设备信息
- 文件系统访问
- 加速度传感器
- 电话拨号
- 文本转语音(TTS)
- 屏幕锁定除此之外还有:地理位置、相机、剪贴板、网络状态、震动等常用API。
注意
- 微软已于 2024-05-01 停止对 Xamarin 全系的官方支持,Xamarin.Forms 的继任者是 .NET MAUI,MAUI 是 Xamarin.Forms 的进化版本。
- Xamarin.Forms 还内置 Shell 导航框架,提供路由导航、全局搜索、侧边菜单等常用App骨架能力。
- 平台特定功能:可以使用 Platform-Specifics,在不写自定义渲染器的前提下,调用部分平台独有的原生特性。