桌面软件
使用 WPF 之类的 UI 框架或跨平台工具包构建的内部工具或产品,以原生方式运行,而非在浏览器中运行。
作为一门单一语言,C# 的应用范围异常广泛,这正是企业在迪拜聘请 C# 开发工程师来完成如此不同工作的原因:一款内部桌面工具、一个支撑移动应用的后端服务、一款 Unity 游戏或交互式 3D 项目,又或者一款需要在多个操作系统上以相同方式运行的跨平台应用。微软官方文档将 C# 描述为面向对象并具备强大函数式编程能力的语言,其概览页面向新手展示的正是这样的应用范围,从桌面和 Web 一直延伸到游戏和云服务。
将这一切联系在一起的是语言本身,但建立在它之上的各个框架差异足够大,以至于擅长某一领域的候选人,不一定同样擅长另一领域。一位在 Unity 游戏领域深耕多年的 C# 开发工程师,与一位在 ASP.NET Core 后端服务领域深耕多年的工程师,即便两人每天都在写 C# 代码,也是完全不同的聘用对象。在迪拜聘请这样一位 C# 开发工程师之前,先明确您真正需要哪一种,能为双方都省下不少时间。
C# 开发工程师能做什么
同一门语言,几种真正不同的交付成果。
使用 WPF 之类的 UI 框架或跨平台工具包构建的内部工具或产品,以原生方式运行,而非在浏览器中运行。
基于 ASP.NET Core 构建的服务,对外提供供网站、移动应用或其他系统调用的 API。
为 Unity 引擎中构建的游戏、仿真或交互体验编写 C# 脚本,不同于纯粹的后端或桌面项目。
单一 C# 代码库面向 Windows、macOS、Linux 或移动端,在各平台间共享逻辑,而不是逐一重新开发。
推动一款仅支持 Windows 的旧版 C# 应用向前发展,无论这意味着界面刷新、平台迁移,还是两者兼有。
通过官方发布的 API,让应用与其他微软服务或现有企业系统连接起来的 C# 代码。
明确简报中具体属于哪一类,仍然是在迪拜聘请一位真正契合工作内容、而不只是契合语言名称的 C# 开发工程师的最快方法。
值得关注的技能
重点在于他们实际掌握的框架,而不只是简历上写的语言名称。
| 技能或工具 | 合格的表现 | 为何重要 |
|---|---|---|
| 适合该项工作的框架 | 在您所需的具体领域,例如 ASP.NET Core、WPF 或 Unity,拥有真实、可运行的项目经验,而不只是泛泛了解 C# 语言 | C# 各框架之间差异足够大,通晓语言本身不等于精通某个框架 |
| 掌握最新语言特性 | 熟悉近期新增的 C# 语言特性,并了解最近几个版本发生了哪些变化 | C# 近年来演进迅速,固守旧习惯可能会错过更安全、更简洁的现代写法 |
| 异步编程 | 正确使用 async 和 await,包括对异步调用的恰当错误处理 | 粗心编写的异步代码,是隐蔽且难以复现的 bug 的常见来源 |
| 测试规范 | 将自动化测试作为标准做法,并根据应用类型是桌面、服务还是游戏作出相应调整 | 在长期运行的桌面或后端系统中,未经测试的逻辑日后修复成本会更高 |
| 如有需要,具备跨平台意识 | 清楚了解目标平台之间实际存在哪些差异,而不只是知道 .NET“支持”所有这些平台 | 如果开发工程师只在一个平台上测试过,针对特定平台的 bug 很容易被忽略 |
微软官方的 C# 概览 是了解该语言基础知识的一份公正、时新的参考资料,一位对此熟悉、并具备真实项目经验的候选人值得给予较高评价。每当您在迪拜为此前从未考察过的框架聘请 C# 开发工程师时,直接核实这种熟悉程度都是明智的第一步。
与我们合作的方式
如果桌面应用、服务或 Unity 项目尚未真正完成,并会在未来数月甚至数年持续变化,请选择专属开发工程师。如果您能描述清楚一项交付成果,一款应用、一项服务或一次现代化改造,拥有明确的结束节点,一次性定价并在交付时签字确认,请选择限定范围的项目。如果目标是在您自己的编制内招聘一名长期员工,由我们负责前期寻访和技术评估筛选,请选择招聘支持。如果真正的问题是一项决策,例如一款老旧桌面应用是否值得现代化改造,而您希望在投入开发预算之前得到如实的答案,请选择咨询服务。
考察候选人
根据该职位实际需要的具体 C# 工作领域来设计考察问题。
请候选人举出一个属于您所需具体领域的项目,例如 ASP.NET Core、WPF 或 Unity,而不要接受泛泛的 C# 经验作为替代。
持续关注语言演进的候选人,通常能说出具体的例子并解释使用原因。含糊的回答往往说明知识已经过时。
询问一个他们修复过的、真实的与 async 或 await 相关的 bug,以及他们是如何找到问题根源的。
测试一款 Unity 游戏、一款桌面应用和一项后端服务,实际做法各不相同。询问他们如何测试您所需要的那类工作。
如果项目面向不止一个平台,请询问在以往项目中各平台之间具体存在哪些差异,而不只是问是否“能正常运行”。
无论您通过哪种方式为迪拜团队聘请 C# 开发工程师,无论是自行主持面试,还是委托我们通过招聘支持进行,这些问题都同样适用。
认证
与本站部分语言不同,这里确实存在一项真实的微软认证。
微软与 freeCodeCamp 合作推出这项认证,内容包括一套结构化的 C# 培训课程和一场考试。这是一项真实、可核实的资质,持有者通常会将其展示在 LinkedIn 上,而不是一份需要您自行独立验证的证书。
这项认证涵盖的是核心语言基础知识,而非 ASP.NET Core、WPF 或 Unity 方面的专项深度。当您在迪拜为某个具体框架聘请 C# 开发工程师时,也请一并询问该框架方面的项目经验。
您可以在 迪拜聘请开发工程师 下的分类之一 编程与软件开发 中找到这一职位。C# 主要运行的现代 .NET 平台在 .NET 开发工程师 页面单独介绍,如果您的简报实际针对的是运行时而非语言本身,值得一读。具体的游戏或交互式项目应归入我们的 Unity 开发工程师 页面,而另一门同样面向对象、运行在不同平台上的语言,请见我们的 Java 开发工程师 页面。若移动应用开发项目超出单一语言范畴,请参见 移动应用开发。
直接解答
关系密切,但并不完全相同。C# 是一门语言,.NET 是它主要运行的平台。我们的 .NET 开发工程师页面专门聚焦现代、跨平台的运行时,而本页则涵盖 C# 作为一门语言在桌面、服务、游戏等领域的应用。
可以,C# 是 Unity 的脚本语言,许多 C# 开发工程师都有实际的 Unity 项目经验。如果您的项目具体是一款游戏或交互式 3D 项目,可以参考我们的 Unity 开发工程师页面,内容更为深入。
不,早已不是这样。C# 主要针对的现代 .NET 平台可在 Windows、macOS 和 Linux 上运行,微软官方文档将 .NET 描述为一个免费、跨平台、开源的开发平台。
同一门语言之上搭配了不同的框架:桌面软件通常使用 WPF 之类的 UI 框架或跨平台工具包,而后端服务通常运行在 ASP.NET Core 上。擅长其中一个方向的候选人,不一定同样擅长另一个方向。
通常值得考虑,尤其是当它需要在更多平台上运行,或需要长期保持可维护性时,不过具体答案取决于该应用本身的情况。我们会在评估阶段如实判断,而不是默认重写就是唯一正确的方案。
资料来源
书面固定价格
已收到,我们正在为您撰写报价。
工作时间内您将在 45 分钟内收到。请查收确认邮件。