.NET MAUI 开发工程师的共享 C# 和 XAML 应用
使用 .NET MAUI 的单一项目系统,一个项目同时面向 Android 和 iOS,在企业确实需要桌面版本时,也覆盖 Windows 或 macOS。
一家希望在手机和桌面端都由同一个团队、同一套代码库来负责,而不是分设一个 iOS 团队和一个 Android 团队的企业,往往正是出于这个原因而在迪拜招聘 .NET MAUI 开发工程师。Microsoft 自己的文档将 .NET MAUI 描述为一个用于创建原生移动和桌面应用的跨平台框架,使用 C# 和 XAML,面向 Android、iOS、macOS 和 Windows,全部来自同一个共享代码库,因此它的吸引力很直接:逻辑和大部分布局只写一次,让框架把它编译成每个平台上真正原生的应用,而不是一个包装成应用样子的网页。
这种单一代码库的承诺是真实的,但并非无条件。Microsoft 自己的架构说明明确指出,为 iOS 和 macOS 构建仍然需要一台 Mac,并且在某个界面确实需要因平台而异的表现时,可以加入特定平台的代码和资源。一位在迪拜真正值得聘用的 .NET MAUI 开发工程师,会把“单一代码库”当作一个努力的目标,而不是承诺永远不需要任何特定平台的处理,并会诚实地提前告诉您哪个界面需要特定平台的工作,而不是等到项目后期才让您意外发现。
这个职位负责构建什么
真正的跨平台成果,而不是只能在一台设备上运行的演示版。
使用 .NET MAUI 的单一项目系统,一个项目同时面向 Android 和 iOS,在企业确实需要桌面版本时,也覆盖 Windows 或 macOS。
当某个界面或设备功能不适合共享抽象层时,有意识地加入原生代码和资源,而不是强行套用统一方案。
为 GPS、网络状态、安全的键值存储、系统剪贴板等功能提供跨平台 API,在各平台上一致地对接起来。
准备构建版本并提交到 Apple App Store 和 Google Play,因为无论底层代码库是否共享,两者各自仍有自己的审核流程。
针对您现有或全新的后端编写网络代码,在各平台间共享,并妥善处理网络缓慢或连接失败的情况。
针对新的 Android、iOS 和 .NET MAUI 版本重新构建和测试,因为每个平台都按自己的节奏发布,一个过时的构建版本会悄悄失去支持。
需要关注的技能
对照 Microsoft 自己的文档来检验的跨平台判断力。
| 技能或工具 | 优秀的表现是什么样 | 为什么重要 |
|---|---|---|
| C# 和 XAML 基础 | 对两者都得心应手,包括数据绑定和 .NET MAUI 的布局引擎,而不是只精通其中一个 | 一个 .NET MAUI 应用的大部分实质内容都体现在这两者的结合上 |
| 知道何时该走特定平台路线 | 能指出实际使用了特定平台代码的真实界面,并解释为什么共享控件不够用 | 把每个界面都硬塞进共享抽象层,会让应用在两个平台上都显得不对劲 |
| 当前受支持的 .NET MAUI 版本 | 基于仍处于 Microsoft 支持窗口内的版本构建,清楚当前版本何时会过期 | 已过支持窗口的版本不再获得修复,包括安全修复 |
| 热重载的使用规范 | 使用 XAML 和代码热重载来快速迭代,但在发布前仍会测试一次完整重新构建 | 热重载过程中可能掩盖只有在干净构建时才会出现的问题 |
| 跨平台测试 | 在真实的 Android 和 iOS 设备上测试,而不只是自己偏好的那个平台 | 共享代码库在实际使用中仍可能因平台而表现不同 |
Microsoft 自己的 什么是 .NET MAUI? 页面说明了该框架在每个平台上的编译方式各不相同,Android 应用在启动时即时编译,iOS 应用则完全提前编译为原生 ARM 代码,这是一个值得在聘用 .NET MAUI 开发工程师之前,请他们用自己的话解释清楚的合理问题。
与我们合作的方式
专属 .NET MAUI 开发工程师适合一个在多个平台上有持续路线图的产品,按固定频率融入您的团队工作。限定范围项目适合一个明确的构建目标,例如首次跨平台发布或某个特定的新模块,交付内容包括源代码、应用商店提交和完整交接。招聘支持适合希望把一位 .NET MAUI 开发工程师直接招入自己团队的企业,由我们负责技术评估。咨询服务适合在投入预算之前,正决定 .NET MAUI 相对于原生开发或其他跨平台框架是否是正确选择的企业。
评估候选人
能揭示真实跨平台交付能力的检查方式,而不只是一个能跑起来的演示版。
指向真实 Apple App Store 和 Google Play 页面的有效链接,而不只是一个在模拟器里运行的项目。
一个具体的界面或功能,他们在那里加入了特定平台代码,以及为什么共享抽象层在那里不够用。
请对方展示一个真实界面的标记代码及其数据绑定的视图模型,而不是从 Microsoft 官方样例照抄的教程项目。
发布前在哪些真实的 Android 和 iOS 物理设备上做过测试,以及某个问题只在一个平台上出现而另一个没有的情况。
如果您的项目最初诞生于 Xamarin.Forms,请他们诚实解释迁移路径,而不是承诺一次轻而易举的替换。
认证
要衡量通用 .NET 认证实际能证明什么。
Microsoft 自己的认证目录中没有列出专门针对 .NET MAUI 的考试,因此这不是您在迪拜招聘 .NET MAUI 开发工程师时能够核实的凭证。更广泛的 Microsoft Azure 或 .NET 开发人员认证会涉及相关技能,但并不直接考核跨平台移动开发工作,因此对这个职位只能算部分参考信号。
真实上架于两个应用商店的应用、可以阅读的 XAML 和 C# 代码,以及对他们有意跳出共享代码库之处的清晰说明,比一份通用认证能告诉您更多。这才是招聘 .NET MAUI 开发工程师之前更可靠的检验方式。
阿联酋相关考虑
迪拜真实跨平台项目中经常出现的两个方面。
共享的 XAML 布局仍需要在每个目标平台上分别测试从右到左的阿拉伯语,因为 Android、iOS 和 Windows 在底层对镜像的处理方式略有不同,因此 .NET MAUI 开发工程师应该逐屏核实,而不是假设共享布局能覆盖所有情况。
如果一个 .NET MAUI 应用在其任何目标平台上处理客户或员工数据,《2021 年第 45 号联邦法令》(Federal Decree Law No. 45 of 2021,阿联酋联邦数据保护法)都适用于该数据的处理,无论数据最初是在哪个平台上采集的,因此值得尽早与负责这项工作的人员提出。
这个职位属于我们 移动开发 类别的一部分,也是更大范围的 迪拜招聘开发人员 板块的一部分。如果您的企业已经运行一个现有的 Xamarin 应用,而不是从零开始,我们的 Xamarin 开发工程师 页面专门涵盖那条迁移路径。如果需要的是单一原生平台而不是共享代码库,请参阅我们的 iOS 开发工程师 和 Android 开发工程师 页面,而作为 .NET MAUI 之外基于 JavaScript 的替代方案,可以比较 React Native 开发工程师 和 Ionic 开发工程师。如果需要包含设计和应用商店上架工作的完整项目,我们的 移动应用开发 服务是更宽泛的起点。
直接解答
Microsoft 自己的描述是:一个使用 C# 和 XAML 创建原生移动和桌面应用的跨平台框架,让您从单一共享代码库开发出能在 Android、iOS、macOS 和 Windows 上运行的应用。它是 Xamarin.Forms 的直接继任者。
不是。Microsoft 将 .NET MAUI 描述为 Xamarin.Forms 的演进版本,其 UI 控件是从头重新构建的,而 Xamarin 自身的支持已于 2024 年 5 月 1 日结束。一个全新的跨平台 .NET 项目应该从 .NET MAUI 开始构建,而一个现有的 Xamarin 应用则是一次独立但相关的招聘。
对于共享逻辑和布局部分,通常不需要,因为一位 .NET MAUI 开发工程师就能在单一项目中同时覆盖两个平台。正如 Microsoft 自己的文档所说,专门为 iOS 或 macOS 构建仍然需要一台 Mac,因此无论由谁编写代码,都要在项目设置中提前规划这一点。
它会在每个平台上编译成原生 UI 控件和原生代码,不同于在浏览器视图中运行的基于网页的混合应用。根据 Microsoft 自己的架构文档,Android 应用在启动时进行即时编译,而 iOS 应用则完全提前编译为原生 ARM 代码。
根据 Microsoft 现代生命周期政策,每个主要版本都会获得每月更新,并在其后续版本发布之后的一段既定窗口期内持续获得支持。.NET MAUI 开发工程师应该基于一个当前仍受支持的版本进行构建,而不是一个已经接近该窗口期末尾的版本。
资料来源
书面固定价格
已收到,我们正在为您撰写报价。
工作时间内您将在 45 分钟内收到。请查收确认邮件。