# PM1 .Net 应用程序开发指南 ## 介绍 [.Net](https://dotnet.microsoft.com/) 是微软开发应用程序平台,旨在为桌面、移动端、网络和游戏开发提供一致的体验。Autolabor PM1 通过 [Autolabor.PM1.SDK.Net 库](https://github.com/autolaborcenter/Autolabor.PM1.SDK.Net)支持在 .Net 平台的二次开发。微软在 .Net 平台上实现了多种编程语言,SDK 完全使用 C# 开发,但可以使用 C#、F# 或 VB.Net 正常调用。 如果您对 .Net、C# 以及相关技术心存疑虑,浏览 [PM1 .Net 应用程序初学者指南](new-users)将带给您启发。 我们还提供了一些[示例](samples)帮助您快速上手 PM1 .Net SDK。 下面这个视频展示了开发 .Net 控制台应用程序的最简示例: 如果您使用 Linux,下面这个视频将展示 .Net 工具链强大的平台无关性: ## 环境要求 支持 .Net 平台的目的是加速 Windows 桌面端的开发,而非完全拥抱 .Net 生态,因此 .Net SDK 依赖于 Native SDK。 .Net 具有平台无关性,开发 .Net 应用程序依赖于 .Net SDK 的版本而非系统的版本。PM1 .Net SDK 基于 .Net Standard 2.0,对应关系见下表: | 平台 | 最低版本 | | -------------- | ---------- | | .Net Standard | 2.0 | | .Net Core | 2.0 | | .Net Framework | 4.6.1 | | UWP | 10.0.16299 | | Unity | 2018.1 | > 查看[文档](https://docs.microsoft.com/zh-cn/dotnet/standard/net-standard)以确认其支持性。 依赖要求基于 SDK 构建的其他库或应用程序必须高于上表所示的版本,这需要 **Visual Studio 2017** 或更高版本开发,需要 **Windows 7** 或更高版本运行。 > 如果您无法升级到 VS 2017,则可使用 VS 2015 + [.Net Core Tools](https://github.com/dotnet/core/blob/master/release-notes/download-archive.md)。 ## 开发体验 总体说来,SDK 是 Native SDK 的超集,查看 Native SDK 的开发体验了解更多细节。 Native SDK 的每一个函数都在 SDK 中存在对应版本,但可能以更 C# 的方式实现(如用*设值器*、*取值器*替代 `get_xxx()`、`set_xxx()` 函数)。由于 C# 不支持顶层函数,这些函数位于一个 [`Methods` 静态类](api-reference/Methods-Class)中。 ## .Net 非阻塞多任务 对动作等阻塞操作,使用协程异步可获得更好的开发体验。 > 有关基于协程的并行,参见[任务并行库的文档](https://docs.microsoft.com/zh-cn/dotnet/standard/parallel-programming/task-parallel-library-tpl)。 我们现在提供三个异步函数,对应耗时的初始化和两类*动作*。 > 参见 [API 参考](api-reference/AsyncMethods-Class)。